- What is this?
- Why is this?
- Is it a need or want?
- What is the inspiration behind?
- System Setup
- How to install and run
- Changes to be made from your end
- Technical Details
- Cost Concern
- My proposal
- Contact
This is a end-to-end feasible, and deployable system, which aims to deliver every notification alert and new job update from the T&P portal to all BIT students to their email and sms (in case one doesn't have active internet).
Upon observing the activity of our T&P website, where notifications demand very quick response from students, and also there are companies which close their aplication portal very soon, there is really very narrowed scope for students. Especially in this time, where students face metered interenet connections, some miss applying to job, while others even after being fully eligible, miss a quick notification.
As for the student community, this is the prime need. When it comes to placement, everyone wants to be aware and notified about each and every happenings in the T&P. But missing out on this, due to low internet speed, or simply not checking the website every 10 minutes does a great damage.
Well, the inspiration is often great about projects, but this time it's not.
-
One of my batchmates, even after applied for a company, but couldn't sit for it because, the company wanted the resumes of all applicants within a timeframe of 2 hours a day before the exam. He missed to see the notification for the same, within those 2 very crucial hours.
-
One of my seniors, couldn't apply for a job he waited for, for last 3 years because the company closed the application window soon. This incident left a deep imprint. He was depressed, mentally unstable for few days, which cost him another company.
These incidents really broke my heart. I wanted to device a solution for this, so that no one in future face these unstandable situations.
The entire Project is open source. The auditors and technicals experts are recomended to give it a look.
Get into a linux instance, prefereably Debian based (Ubuntu, Elementary, Kali, etc.)
Prefer a cloud instance, it provides an exponential downloading speed.
Start a terminal session as a root user, and proceed further.
- Clone the repo
$ git clone https://github.com/greyhatlinux/BIT-tnp-alert.git
- Go into the Folder BIT-tnp-alert
$ cd BIT-tnp-alert/
- Permit the setup.sh file to run as an executable.
$ chmod +x setup.sh
- Run the bash file
$ ./setup.sh
-
Hang in, or take a tea break. The setup files are huge, may take more than 15 minutes on cellular networks.
-
Once the system is setup, you're expected to make few changes from your end, to make it run.
- In the file mods/logging.py, fill the sections with your T&P creds
- < registered email >
- < your password >
- In the file mods/broadcast.py, fill
- < registered email id with Twilio >
- < Twilio sendgrid API Key >
- In the file mods/notify.py, enter
- the desired email id(s) in the list mem
It uses selenium in the backend to reach out to the BIT tnp portal every 15 minutes. Selenium is a powerful and open-source browser automation toolkit. It provides a toolset for web browser automation that uses the best techniques available to remotely control browser instances and emulate a user’s interaction with the browser, giving a wide scope to the programmer to model the setup, as required.
For now, my setup is based on an AWS t2-micro instance. Its a dedicated server. But, this can be easily setup in any insatnce, of any size. Due to its minimilistic design, this can even be hosted on a shared insance, making sure that the port 80 is exclusively assigned to this application.
Available options for an instance :
- GCP
- Azure
- Linode
I've used twilio as my email broadcast service provider. My choice is based on the extreme performance it provides, as well as its easy-to-go integration technique. For personal use, its the best service as of now. However, for a large mass, this can be very costly because of the aforementioned reasons.
Available alternatives :
- Mailgun
- Mailchimp
The sms broadcast service isn't intergrated in the platform. Reason being, I couldn't find any ready-to-go other mass message service provider other than Twilio. Every service provider presented a "Contact" page, whose reply never came. Even for personal use case, twilio pricing was not feasible.
Alternatives :
- way2sms
- SpringEdge
Considering :
Subscription Charges :
As I mentioned before, twilio can be very costly for sms broadcast, as well as emailing. One can easily look for other alternatives.
I assure that the setup can be very efficient, and economical for small friend circles, almost at no cost at all, if utilised tactfully. Using the AWS first-year benifits (750 hour of Ec2 per month), along with Twilio Sendgrid's incentive (free 100 mails/day forver), the setup comes at no cost for the first year.
I encourage small college groups to setup the system for themselves for free atleast for the first year, and even later the cost will be negligible per-head.
The project is open for contributions from BIT students (since this caters specifically to them), for feature enhancement or bug fixes (if any). Feel free to open issues, or send your PR on this.