Nerman is a Discord governance bot designed with the express purpose of improving Nouns community interactions, encouraging participation, and notifying community members of Noun proposals and sales.
To help develop Nerman, you will need the following:
- Git: For source code version control.
- Node.js: For the main development environment.
- MongoDB: For the database.
- Discord: To set up your own bot.
- Alchemy: To track Nouns' blockchain activity.
To install Nerman, simply execute the following commands in the terminal:
git clone https://github.com/JoeCars/Nerman.git
cd Nerman
npm install
- Create a Discord bot: Follow this guide on how to setup a Discord bot.
- Setup A Database: This can either be a cloud server or a locally-run MongoDB server.
- Add Environmental Variables: Ensure you add the appropriate environmental variables.
Once everything is ready, you can start the bot using npm start
.
For the bot to work, you need to give it the following permissions and scopes. The reasons for needing each scope is provided.
- guilds:
- Used to get all the active guild members before filtering them for role type in the voter threshold.
- guild.members.read:
- Nerman needs this in order to analyze the users in possessions of the voting role, which are needed for voting threshold calculations.
- bot:
- Need this to place the bot in the user's guild
- message.read:
- Nerman requires this scope so that it can read messages from all channels, rather than being restricted to just the guilds/channels created by the app.
- application.commands:
- This scope is added so that Nerman can use the slash commands available in the guild.
To invite the bot, you may be required to provide an OAuth2 URL. Please use the following template. Replace the #
symbols after client_id
with the client id value found in the Discord development portal.
https://discord.com/api/oauth2/authorize?client_id=##################&permissions=36507543616&redirect_uri=https%3A%2F%2Fwww.google.com&response_type=code&scope=guilds%20bot%20guilds.members.read%20applications.commands%20messages.read