API in Django for InstiApp, the one platform for all student activities at Indian Institute of Technology, Bombay! InstiApp's features include upcoming events, placement blog, news and general information on every active club/body in the Institute.
To setup dependenices, install
pipenv and run
pipenv sync. You might want to run
export PIPENV_VENV_IN_PROJECT=true first to create the
virtualenv in the project folder. You can then activate the virtual environment with
python manage.py migrateto create a new database.
python manage.py createsuperuserwill let you create a new user to use the admin panel for testing.
python manage.py runserverto start a local server.
flake8to lint with
pylint_runnerto check for code style and other errors statically with
pylintin all files.
It is recommended to set up your IDE with both
flake8, since these will cause the CircleCI build to fail. Google's Python Style Guide is followed upto a certain extent in all modules.
Tests can be run in two configurations:
This is the recommended and default configuration, and should suffice for all developmental purposes except if you are working with async tasks or notifications. Simply use
python manage.py test --settings backend.settings_test to run automated tests.
This is the default configuration for
full-test GitHub builds. To test under this configuration, start a local PostgresQL and RabbitMQ server, and an instance of celery in background with
celery -A backend worker --pool=solo -l info. Once celery is processing background tasks, you can run tests as
python manage.py test --settings backend.settings_test --keepdb, ensuring that the database
test_instiapp is created in postgres beforehand. The following environment variables must be set:
Full-Text Search is implemented with Sonic. To set up, install
sonic and start it on
localhost. Then set the
USE_SONIC setting to
Autogenerated OpenAPI specification can be accessed at
http://server/api/docs/ (or at the official deployment)
Pull requests are welcome, but make sure the following criteria are satisfied