This is a whatsapp bot created initially for EPiC Devs (wait who?) but now widely used by 100+ '22 final year Computer Science students to make academic life a tiny bit easier. It uses a Whatsapp web library and acts just like a regular user. It was built on a node server and is currently deployed to Heroku in order to make it available 24/7...or so I thought. The bot uses a MongoDB cloud database to supplement its functionalities.
Timetables are always a pain to memorize, going through hundreds of messages from class group chats to filter out important information is equally tiresome. But worst of them all is trooping all the way to class just to find out it was cancelled a few minutes/hours prior. I'm also sure we've all been through that moment where almost everyone forgets what exactly the assignment given was about or the exact deadline. I'm not even going to talk about the number of times resources for a particular course can be requested in a single day 😭
But...
What if someone could always remind you when it's time for class on your favorite messaging platform? 😮
What if you don't have to ever memorize any timetable? 😪
What if someone always forwards important messages and links from class groups automatically to your dm? 🤯
What if someone always keeps track of your assignments and reminds you when it's close to the deadline?🥺
What if someone can consistently send all resources for a particular course anytime they are requested? 😲
.
.
.
Ladies and gentlemen, I present to you.... "Ethereal", a whatsapp personal assistant... or bot if you will.
Ethereal seeks to make life easier for '22 final year Computer Science students by:
- Forwarding important announcements and links from class groups to our dms.
- Reminding us individually about the times we have class.
- Getting our timetable for the week, and for the current day depending on the elective each of us offers in as little as 4 quick interactions (< 20secs) or by typing 1 command (< 10secs); As opposed to annoyingly asking someone else who may or may not be available at that moment.
- Sending all course materials (PDFs, powerpoints etc) for any course as and when requested.
- Reminding and giving us detailed descriptions of assignments we have for each course.
- Get timetable for the day (depending on elective) ✅
- Get timetable for the week (depending on elective) ✅
- Get course materials (ppt, docs, pdfs), etc ✅
- Get exams timetable ✅
- Receive reminders for classes daily (depending on elective) ✅
- Forward important announcements and links from class groups ✅
- Anti-spam ✅
- Blacklist users ✅
- Get current assignments and their details (depending on courses) 🚧 [WIP]
Command | Description |
---|---|
!acknowledge 💎 |
Remove users from blacklist |
!blacklist 💎 |
Get users who have been blacklisted |
!botadmins |
Get current bot admins |
!class |
Get the classes for the day, depending on user's elective |
!classgroup (add | remove) 💎 |
Recognize a whatsapp group as an official class group |
!classgroups |
Get a list of all the official whatsapp class group links |
!classes |
Get the classes for the week, depending on user's elective |
!demote 💎 |
Demote a bot admin |
!env 💎 |
Check the environment the bot is running in (Production/Development) |
!everyone 💎 |
Ping everyone in a group |
!exams |
Get the current exams timetable |
!grouplink |
Get the current group's invite link |
!help <cmd> |
Get more info on specific commands |
!ignore 💎 |
Blacklist a user |
!menu |
Get commands available to a user sent to their DM in a whatsapp list |
!mute 💎 |
Mute the bot |
!notifs status 💎 |
Get class notifications status |
!notifs (enable all | disable all) 💎 |
Enable/Disable all class notifications for the day |
!notify (enable | disable) |
Turn on/off class notifications |
!ping |
Check bot's response time in ms |
!promote 💎 |
Promote a user to be a bot admin |
!slides |
Get all courses materials (slides, books etc.) |
!sourcecode |
Get the bot's source code |
!status 💎 |
Get the bot's diagnostics |
!subs 💎 |
Get all users who have subscribed to be notified for class |
!unmute 💎 |
Unmute the bot |
💎 = Commands that can only be used when you are a bot admin.
- NodeJS
- Express
- MongoDB with Mongoose
- Whatsapp-web.js library
This was painfully done in a README in 2021 when we coined the name for our project :)
I definitely didn't take too much time on this :)))
We are a group of exquisitely talented, focused and diligent individuals who consistently exceed expectations. Credits to both of my colleagues for inspiring some of the features of the bot.
Check us out!:
Shout out to the following people for ideas and support:
- Mini-Sylar (Checkout his anime platform)
- Somya Mahapatra
This project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with WhatsApp or any of its subsidiaries or affiliates. The official WhatsApp website can be found at https://whatsapp.com . "WhatsApp" as well as names, brands, emblems and related images are registered trademarks of their respective owners.
I recommend Better Comments to see comments with keywords highlighted differently in order to have more insight into the codebase
Feel free to hit me up if you do have interest in it (📩Email)