A discord bot that collects and analyzes form data

pushedAt 1 year ago


formica banner

Project Description

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

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.

Web Interface

Discord Bot

Backend and Frontend Setup

# Add Client ID and Secret Key 
cd formica/backend/API
touch .env
nano .env
CLIENT_ID= <ClientID> 
CLIENT_SECRET= <ClientSecret> 

#Run using Docker
cd formica
docker-compose build 
docker-compose up

Discord Bot Setup

#Add Bot Secret key
cd formica/bot
touch .env 
nano .env 
TOKENT = <BotToken>

#Run the bot 
python formica_bot.py

Contribution Guidelines 🏗

Are we missing any of your favorite features, which you think you can add to it We invite you to contribute to this project and improve it further

To start contributing, follow the below guidelines:

🌟. Star🌟 the project to bookmark and appreciate the work.

Take a look at the existing issues or create your own issues. Wait for the Issue to be assigned to you after which you can start working on it.

1. Fork this repository.

2. Clone your forked copy of the project.

git clone --depth 1 https://github.com/<your_user_name>/formica.git

3. Navigate to the project directory 📁 .

cd formica

4. Add a reference(remote) to the original repository.

git remote add upstream https://github.com/felixfaisal/formica.git

5. Check the remotes for this repository.

git remote -v

6. Always take a pull from the upstream repository to your master branch to keep it at par with the main project(updated repository) and install the requirements to run the code.

git pull upstream main
npm install

7. Create a new branch.

git checkout -b <your_branch_name>

8. Perform your desired changes to the code base.

9. Track your changes✔️ .

git add . 

10. Commit your changes .

git commit -m "Relevant message"

11. Check for your changes .

git status

12. Push the committed changes in your feature branch to your remote repo.

git push -u origin <your_branch_name>

13. To create a pull request, click on compare and pull requests. Please ensure you compare your feature branch to the desired branch of the repo you are suppose to make a PR to.

14. Add appropriate title and description to your pull request explaining your changes and efforts done.

15. Click on Create Pull Request.

16. Voila You have made a PR to the website 💥 . Sit back patiently and relax while the project maintainers review your PR. Please understand, at timesthe time taken to review a PR can vary from a few hours to a few days.

Project Demo

Formica is a project for Sprint 2 of the MLH Fellowship. Here's a demo video that was made for the submission. This might help you understand the project better. Demo Video


Check out our Contributions Guidelines

Code of Conduct

Click to read


MIT License

Our Valuable Contributors

📌 Opensource Programs

This project received various contributions from the following open source programs for students

Let's Grow More Summer of Code