A discord bot that gamifies studying by ranking your study hours against friends, displaying leaderboards, and giving you unique ranks based on how many hours you've studied and much more!
- I made a youtube video on this project
- Join the server here!
- Check out my other projects here!
- P.S. The code in this project is a mess, I am in the process of refactoring it here
Because of the quarantine and the growing popularity of online learning, I found myself lonely and unmotivated to study. Therefore, I decided to create a studying community known as Grind Time. With that, different ideas started to pop into my head on not only how to motivate myself but motivate others to study.
- It began with a levelling system where the more hours you study in the Grind Time voice channel, the higher your level / rank.
- Then came the streak system where each day you study, you increase your streak. However, you have to be in the voice channel for at least 12 minutes for it to update.
- Next came the leaderboards. You could now pit yourself against others in the server. See your rank and hours studied compared to others!
- Then popped the grind profile. A profile which displays your rank, hours studied, streaks, etc. all into one neat profile card individualized for each member.
- Finally, I decided to implement automated leaderboard posts where each week, month, and season, the top 20 members of the server gets recognized for their achievements.
Javascript, Discord.js, Node
Usage - Join the server
-
When you first join, you're presented with 4 channels. Click on the
Enter!channel to unlock the server -
Enter
Grind Timeto start tracking your hours! -
That's pretty much it. You can explore the server, but everything else is pretty much automated! Don't be shy to talk or ask me anything. I'm there everyday!
For a more comprehensive example of using this application, refer to this video
index.jscontains the main bulk of the functionality. It houses the time tracker, streaks, and role adding / removing.scheduled/contains different files that are run at certain time intervalsdaily-instrucions.js: will post daily instructions in different channels in case members forget commandsmonthly-leaderboard.js: will post the top 20 grinders and their hours at the end of each monthweekly-leaderboard.js: will post the top 20 grinders and their hours at the end of each weekseasonal/seasonal-leaderboard.js: will post the top 20 grinders and their hours at the end of each seasonQOTD/QOTD.js: each day, it will post a question and quote of the day.
I have a lot of ideas for this project, gamifying it even more, however this is the current finished build. Currently I am studying Python, and since the project is mainly in Javascript, I will revisit this project once I go back to learning Javascript.
- Some Future Ideas:
- Making a shop
- Making a story that unlocks after each rank
- Hidden ranks / special classes
- Making your own character
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Email: [email protected]
- Youtube
- Personal Website: https://davidcao.xyz/
- Project Link - https://github.com/dave-cao/[Study-Bot]