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 pipenv shell
. After getting in the virtual environment run pipenv sync
to install all the depencdencies in new env.
python manage.py migrate
to create a new database.python manage.py createsuperuser
will let you create a new user to use the admin panel for testing.python manage.py runserver
to start a local server.flake8
to lint with flake8
.pylint_runner
to check for code style and other errors statically with pylint
in all files.It is recommended to set up your IDE with both pylint
and 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:
DJANGO_SETTINGS_MODULE
to backend.settings_test
NO_CELERY
to false
Full-Text Search is implemented with Sonic. To set up, install cargo
and sonic
and start it on localhost
. Then set the USE_SONIC
setting to True
.
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