Skip to content

nitingera1996/tpo-forum-notification

 
 

Repository files navigation

IIT BHU TPO Forum Notification
===============================

I am trying to make a script to check if any new notifications have arrived on
the tpo portal.

This is essential because as of now, there is no way to know if any new notice
has arrived on tpo forum, other than manually checking it over and over.

I have no access to their database and would attempt to do it
using some web scripts. Let us see where it goes.

Dependencies
============

1. Requests - http://docs.python-requests.org/
2. BeautifulSoup - http://www.crummy.com/software/BeautifulSoup/
3. APScheduler - https://apscheduler.readthedocs.org
4. peewee - https://peewee.readthedocs.org
5. psycopg2 - https://pypi.python.org/pypi/psycopg2
6. [OPTIONAL] python-crontab - https://pypi.python.org/pypi/python-crontab

Before Running
==============

In order to prepare the environment for running this application, follow the
following steps.

0. Make sure pip is installed. If not, install it using,

	$ sudo apt-get install python-pip

1. Install virtualenv so that isolated environment can be made available for
this application to run in. Do this by,

	$ sudo pip install virtualenv

2. Make a new virtual environment for this application by running the following
in the applications directory

	$ virtualenv appenv

This creates a folder named appenv that acts as the pythonpath for this
application.

3. Activate the virtual environment using,

	$ source appenv/bin/activate

A (appenv) in front of the prompt marks success. To deactivate, simply,

	$ deactivate

4. Install the dependencies of this project as available in the
requirements.txt file. Do this by,

	$ pip install -r requirements.txt

Do not use sudo here.
You can confirm that everything is installed by looking through the appenv
directory.

5. Export required environmental variables - This application uses envronmental
variables for important variable. Set these by export commands as below. You can
also add these commands to ~/.bashrc so that they are auto exported every time a
terminal is opened.

	$ export TPO_BASEURL='http://url.of.tpo'
	$ export TPO_PASS='password'
	$ export TPO_USER='usename'
	$ export TPO_PB_AUTH='auth_code_op_pushbullet'
	$ export TPO_PB_CHANNEL='pushbullet channel name'
	$ export DATABASE_URL=postgres:///$(whoami)

The application is now ready to be run.

About Postgres
==============

The application has support for using postgres database to store its notices.

For usage of postgres :

1. export DATABASE_URL pointing to the postgres:// of the database
2. Use _db() functions for interacting with the database.

For testing on local system, this works.

	export DATABASE_URL=postgres:///$(whoami)

Deploy
======

This application is currently deployed on Heroku and uses its postgres add-on.

It does not support Google App Engine is not possible because of its restriction
on writing files. Even though a database can be used, write permission is
required to save the html file of the Notice Board.

About

Notification mechanism for IIT BHU TPO Forum notice board

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 56.2%
  • Python 43.8%