Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 4.42 KB

README.md

File metadata and controls

52 lines (38 loc) · 4.42 KB


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.

What is this repository for?

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.

Project Details

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.

Technical Details

Abstract Architecture diagram of the project.



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

How to set up this project in your local machine?

Summary of set up

  • 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 typing python3 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

Contact