# Badge maker plugin

**URL:** https://meta.discourse.org/t/badge-maker-plugin/329043
**Category:** Development
**Created:** [October 2, 2024, 3:39pm UTC](https://meta.discourse.org/t/badge-maker-plugin/329043 "2024-10-02T15:39:58Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Timothy\_Vail](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/timothy_vail/32/90872_2.png) [@Timothy\_Vail](https://meta.discourse.org/u/Timothy_Vail)
#### Post date: [October 2, 2024, 3:39pm UTC](https://meta.discourse.org/t/badge-maker-plugin/329043/1 "2024-10-02T15:39:58Z")

</div>

I am attempting to build a plugin that allows badges to be created via a user interface, much like what was requested on this post:

> [@Does a plugin exist to create a gamification/badge UI?](https://meta.discourse.org/t/does-a-plugin-exist-to-create-a-gamification-badge-ui/36856):
>
> Hello everyone, I’m new to using Discourse and I am also not good at writing SQL queries. Does anyone know if there is a plugin out there that will allow for me to create badges using a UI instead of writing the query?

I have built what I think is the necessary logic and structure into the plugin, but for some reason there continues to be an issue with routes.rb and duplicate routes.

The git is here:  
[https://github.com/ordokr/badge\_maker/](https://github.com/ordokr/badge_maker/)

This is the error I’m getting, which includes a port error, which may be a separate issue:

````plaintext
> 1861:M 02 Oct 2024 15:32:58.660 # Failed listening on port 6379 (TCP), aborting.
> I, [2024-10-02T15:33:08.619145 #1] INFO -- : 
> I, [2024-10-02T15:33:08.622660 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
> Plugin name is 'badge maker', but plugin directory is named 'badgemaker'
> rake aborted!
> ArgumentError: Invalid route name, already in use: 'unique_badge_maker_plugin' (ArgumentError)
> You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here: 
> https://guides.rubyonrails.org/routing.html#restricting-the-routes-created
> 
> raise ArgumentError, "Invalid route name, already in use: '#{name}' \n" \
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^```
````
