Smart India Hackathon, 2017, was orgarnized jointly by Ministry of Human Resource Development, All India Council for Technical Education (AICTE), Inter Institutional Inclusive Innovation Center (i4C), and Persistent Systems, as a unique initiative to identify new and disruptive digital technology innovations for solving the challenges faced by our country, India.
This repository showcases the work done by Team Extrapolate, Winners Smart India Hackathon 2017, for the project that was awarded to them by the All India Council for Technical Education, Government of India, after securing the first position in Smart India Hackathon'17 under the AICTE.
The process entailed extracting information from the unprocessed data AICTE collects from Institutes across the country to find useful insights. The generated plots are being presented in the form of a web application.
- The project has been architected to keep scalabilty as well as ease of development in mind.
- Python 3.x is the language used in the project, because of the ranges of web as well as machine learning libraries it supports for developemnt.
- Scientific computation libraries like Scikit-learn, Numpy and Scipy are used to support data-science related tasks.
- Django Web Framework has been used as the primary web framework for the project to handle HTTP/HTTPS traffic.
- The project uses HTML/CSS and JavaScript on front-end and Plotly for visualizations.
- Celery and Redis are used to support background jobs, and to keep the Django API server free of long running processes.
- For persistent storage, PostGreSQL is the primary relational database used.
- On production environment, Gunicorn is used as the primary WSGI server for the project.
- Nginx, is used as a reverse proxy, as well as used to serve static content for the project.
- Always work in a virtual environment, install virtual environment from
https://virtualenv.pypa.io/en/stable/
. - Install pip by typing
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
and then typingpython3 get-pip.py
, to install pip for Python3.x - Download and install virtual environment for Python3.x, by typing
pip install virtualenv
- To run the project, go to the root directory of the project run
virtualenv env
- Then install activate the virtual environment, using
source env/bin/activate
- Install the dependencies by
pip3 install -r requirements.txt
- Install and configure PostgreSQL, as the relational database.
- For more follow this - blog
- If you are configuring the project for the very first and all the database setup steps have been implemented successsfully please run the following to populate the relational db schema to the database created, type
python3 manage.py migrate
. - To run the server
python3 manage.py runserver
. - To deactivate the virtual environment
deactivate
. - Deployment instructions
- For queries, you can reach us out at:
[email protected]