Inspiration
Whenever you join a discord server, it can be rather intimidating to start talking with people since you will most likely know no one in it. SwampFriend can help those who might be scared to jump straight into a channel and offers a matchmaking system. SwampFriend gives the user an opportunity to seek and “explore the unknown” by reaching out to learn more about those in his or her community.
What it does
SwampFriend allows you to create an introduction message that the Discord bot reads and records in a database. After adding your introduction, others can fill out their own introduction message and will be matched with you if your interests and hobbies are similar enough.
How we built it
We built the SwampFriend Discord Bot using TypeScript, MongoDB Atlas, mongoose, and the Discord API. We worked using VSCode and JetBrains Webstorm.
Challenges we ran into
We ran into many problems.
- This was our first time using TypeScript for a sizable project. There were many, many bugs that arose.
- Discord.js was made for Javascript, so the documentation had to be interpreted into TypeScript.
- We found there was no specific structure to create a discord bot, and found ourselves finding 4 completely separate solutions we had to combine together.
- We had never used a database before, so many of the schema and model problems were difficult to navigate. Overall, we overcame them as a Software Engineer would.
Accomplishments that we're proud of
On day one, we all learned how to set up a Discord bot fully, diving deep into the API and syntax.
On day two, we split into two teams - 2 programmers frontend, 2 programmers backend. It was incredibly inspiring to see the frontend make complex Discord interactions to allow user input, while the backend slowly pieced together a MongoDB accessor that would allow user introductions to persist between SwampFriend’s many lives and servers.
What we learned
We learned almost the entire tech stack and their quirks.
- Javascript is flexible, but TypeScripts hard-typed nature and ESLint helps prevent logic and syntax errors along with providing a satisfying autocomplete.
- Discord API has extremely useful events, callbacks, and special interactions to make great bots. Always look past the documentation’s explicit code - they’ll often mention fixes that would save you hours.
- MongoDB and its accessor mongoose were useful and accessible. However, they require lots of asynchronous tasks and some of their commands are very tricky (we’ll be paying extra attention in our future Database class).
- Our team itself was almost part of the stack - we needed extra teamwork and coordination due to our equal inexperience and our 4 completely separate conclusions. Overall, we’d probably use it again. We'd do it much more effectively this time.
What's next for SwampFriend
A feature that could be added to SwampFriend in the future is a more robust matchmaking system. Perhaps with a command input the bot could fetch any user with a certain threshold of tag matches for easier look-up.
Built With
- discord
- mongodb
- mongoose
- typescript

Log in or sign up for Devpost to join the conversation.