- Django & DRF : for building the APIs
- Docker & Docker compose: Containerization
- Celery: For running background task
- Rabbit MQ: A message broker for celery
- Flower dashboard: For monitoring celery background tasks
- PostgreSQL: Relational DB
Create a .env file by copying the .env.sample provided and run:
docker compose build && docker compose up
to start the container. As an alternative, run:
docker compose -f docker-compose.dev.yml up --build
to build and run the container using the dev yaml file. Make sure to externalize the db instance to be used. It can be in another container.
Run descriptive tests in the container using:
docker compose exec <docker_container_name> pytest -rP -vv
Access the docs on:
http://localhost:8000/api/v1/doc
Create a virtual environment using:
mkvirtualenv <env_name>
Ensure you have installed virtualenv
on your system and install dev dependencies using
pip install -r app/requirements/dev.txt
Navigate to app directory and run migrations using:
python manage.py makemigrations
python manage.py migrate
Run the server using:
python manage.py runserver
Load permissions needed in app into the db
python manage.py loaddata */fixtures/*.json
Export Permissions from db
python manage.py dumpdata --format=json user.Permission -o core/fixtures/Permission.json
Access docs:
http://localhost:8000/api/v1/doc