Multipurpose discord bot
- Node.js - JavaScript runtime
- TypeScript - JavaScript superset
- Discord.js - Discord API wrapper
- MongoDB - Database
- Mongoose - MongoDB object modeling
- Zumito Framework - Zumito's self-made framework
- FFMPEG - Audio processing for music commands
- Node.js (16.X or higher) and NPM
- Discord bot token, clientID and client secret
- MongoDB database
To start editing the bot you need to download the project
git clone https://github.com/fernandomema/Zumito.git
cd Zumito
Next steep is to download project dependencies
npm install
And finally copy .env.example to .env and edit your tokens and DB info.
cp .env.example .env
To start bot you just need to run that command on project root
npm start
We have a lot of work and need for a lot of help. For this reason any help is welcome and we have organized some of the main options in which you can contribute with your grain of sand. Please note that if you have any other ideas on how to contribute we are all ears, we are not limited to the following list.
If you found an error using the bot feel free to open issue and tell us what happen. Is important you provide as much details as you can, cause we need to be able to reproduce the error in order to find a solution.
Ideas are always welcome, inspiration is something that cannot be bought. So if you have any idea for the bot feel free to tell us what you think opening a new issue
Knowledge of a language is a great way to open doors to the whole world, so if you know a language you can always bring Zumito to a lot of new people. Just create a pull request with the new language file and we will review it.
- The language files are located in
src/modules/[module name]/translations/[language code].json
- The language code must be in ISO 639-1 format
- The language file must be a valid JSON file
- The main language is english, so you can use it as a reference
- To add a new language you just need to create a new file with the correct language code, bot will automatically detect it
If you can code you can do almost everithing you want, just sumbit a pull request and we will review as fast as we can. If you want to contribute coding but you don't know what, you can check the projects tab. There is a lot of things to implement or fix. Feel free to open te task issue, assign to you and/or ask for more details on that task.
There is a little summary of how we work.
First, a command comes from an issue or a project task. If the description does not come with an example output (embeds, designs, etc), the task will be moved to "pendind definition
" status on our project board.
Durint this stage, we will recolect the needed info for start developing the command (embeds design/structure, required assets, etc) and define the posible inputs and outputs of that command. and then the task will be moved to "backlog status
"
Each time we complete the tasks unde the "current iteration
" status, we select the following tasks that we will work on. It is similar to an agile sprint, but since we work as a hobby there is no ETA for each sprint/iteration.
Each time we start working on a command, We assign ourselves to the issue and a bot will automatically create a branch for that issue. We work on it until development is done. Then we will create an pull request
using the new_command.md
template, filling the use case test with all posible inputs and outputs to verify all of them are working properly. Finally before merge it into main branch at least one member of the repo will review and approve the request to ensure the pull request will not break the bot.