Hello everyone!
So this is just an RFC about a discord bot that I’ve hacked together and wanted to find out what other people make of this and if this is something that people will use?
Just a heads up, English isn’t my first language so there will be mistakes, my apologies.
What are we doing?
We are gonna build a discord pairing bot.Why are we doing it?
The idea behind the bot is to help people collaborate, learn and in the end make new friends. Especially now in the beginning where everything feels chaotic and you don’t know where to begin. The idea is that you can use the bot to see what other people are busy building and if they are available you can join and help build something awesome together.
This is also hopefully something we can add to other guilds. For example, the writing guild where people can write together.
How are we doing it?
So I’ve pretty much hacked a minimum viable product together by looking at what the discord resource bot team did, to create their bot. However, there is still a lot of work to be done.
Just to name a few things, this includes
- Improving the code quality (it’s horrible at the moment).
- Adding new features
- Making the bot available to other guilds
- Documentation
- Refactoring
Tech Stack:
- TypeScript
- Discord.js
- Supabase (PostgreSQL)
Available Commands
/add
The basic idea is that you will need to add yourself to the pairing database before you can do anything. All of these fields are required. I pretty much took the same fields from the pair hub excel spreadsheet.
/edit
With this command, it is possible to edit your profile. You just need to select the options you want and enter in their new value.
/available
So to prevent 24/7 invitations especially when you are busy. You are able to set yourself as available with an optional field. This goal optional field is used to tell other people, about what you want to work on or are currently busy working on at the moment. If you don’t set yourself available people won’t be able to invite you.
/developers
So this command is pretty straightforward. You get two subcommands where the first one lists all developers in the paring database and the second one only those who are available to pair. The bot will then reply with an ASCI table (see below). This is definitely not the optimal way to list developers.
/view
After seeing the list of developers that are available to pair you can view their profiles by using the /view command. The bot will then reply with the following message:
You then have the option to invite that person to pair up with. The bot will then send a direct message with your profile to that person. This person can then decide whether they would like to accept or just ignore it.
If they however do decide to accept. The bot will create a thread and invite both of you to that thread to start collaborating. The bot will also set both of your availability to false, to prevent other people from inviting you.
/invite
This command will just send an invite without viewing that person’s profile. However, the person you invite will still get to view your profile and decide whether they want to pair up or not.
/unavailable
Just a command to make yourself unavailable so that people can’t send you invites.
/remove
This will completely remove you from the pairing database.