Skip to content
This repository has been archived by the owner on Sep 30, 2022. It is now read-only.
/ Whatsapp-bot Public archive

My whatsapp bot/Personal assistant ~Ethereal~ Time active: [April 2022 - Sept 2022]

Notifications You must be signed in to change notification settings

CHR-onicles/Whatsapp-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Whatsapp-bot


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.


Table of contents


✍ Overview

The problem

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...

Wait for it



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.

Standing ovation


My solution

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.

🎥 Demo


✨ Features

  • 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]

⚡ Commands

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.


🧰 Built with


Who are EPiC Devs

EPiC Devs introduction


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!:


Credits

Shout out to the following people for ideas and support:


⚠ Disclaimer

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.


PS:

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)