Several communities have joined Discord, with over 6.7 million servers existing on discord, the need for proper form analytics has increased, while most communities use Google forms or other third-party forms to analyze and visualize data, I believe that we can leverage Discord API to allow users to fill forms without leaving discord while also providing useful analytics to the Admin who created the form. This helps admins and mods to view the data via the discord bot or web interface, whichever is convenient
What it does
Collection of form data is often not taken seriously, you are providing information to be collected by one organisation but you have no idea where all the data is going to be circulated, There needs to be transparency in regards to sharing of form data to the user. Formica allows sharing of collected form data among communities also notifying users and letting them know that the data submitted on a form is being shared to another community, So the user can chose to delete his data from the shared form data.
How we built it
- We built the backend using Django and Django Rest Framework. The frontend is built using React and Redux. To communicate with the Discord Bot we used Discord.py.
- We structured our sprint via a Notion document, used Github for code collaboration, and had team meetings twice a day to stay on track and keep each other updated.
- For deployment, we firstly containerized everything using Docker and then deployed via Azure
Challenges we ran into
- Since our project involves three components (the website, backend, and bot), integration was the hardest thing.
- In Discord API documentation, there was very little mention of different types of authorization for different route. -Our application was a bit complex, to be deployed by traditional free servers provided by Heroku or Netlify, So we had to choose Azure
What we learned
- Using Postman to Test API endpoints, Learn more about API headers and different Authorization headers.
- Creating custom Django Authentication System
- How the discord.py control flow works, discord authorization, and even a bit of regex in order to validate the responses received by the bot!
- Deploying to Azure
Accomplishments that we're proud of
- We're definitely proud of how well we were able to adhere to the project timeline. The whole team put in a steady and consistent amount of work and communicated well with each other!
- Despite the integration being tricky, We managed to have almost zero merge conflicts in all of our PRs, It's a confidence booster for our ability to structure and collaborate with the team
- This was Nhi's first time making a discord bot, so she is proud of the functionalities she was able to implement in the given amount of time.
What's next for Formica
- Production deploys; since we know that Discord has a number of trolls lurking, we want to be absolutely certain about the security of our application before we make our bot public
- There are a number of functions/features we want to add, to allow users to control their data with much more ease.