Welcome to our project! We're thrilled that you're interested in contributing.
Please take a moment to review this document to understand how you can contribute effectively.
There are several ways you can contribute to our project:
- Reporting Bugs: If you find a bug, please open an issue and include as much detail as possible.
- Suggesting Enhancements: Have an idea to improve the project? Open an issue and share your suggestions!
- Submitting Pull Requests: You can contribute code changes by submitting pull requests.
Please review our Code of Conduct before contributing.
We use
pre-commit
hooks for code quality.
1.1. Download dependencies using Python:
pip install -r backend/requirements-dev.txt
pre-commit install
pre-commit run --all-files
If needed, use
--no-verify
option to commit without running the pre-commit hooks.
git commit -m "emergency! skipping hooks" --no-verify
Install the project first as lined out in the README.
Create and run database migrations with
python backend/manage.py makemigrations
python backend/manage.py migrate
Add the site URL in the database
python manage.py shell < scripts/update_site_domain.py
Start the development server with
python backend/manage.py runserver
We use drf-spectacular to autogenerate our OpenAPI spec.
Access the OpenAPI spec in three ways while running the django server:
- Download the spec from
/api/schema/
- Use Swagger UI at
/api/schema/swagger-ui/
- Use Redoc UI at
/api/schema/redoc-ui/
We use camelCase for our database tables and column names defined in models.py
.
Current issues that affect development are listed here for transparency.
DELETE -> /auth/users/me
not properly documented- Send
{"current_password":"<pass>"}
in the request body. Since OpenAPI doesn't support request bodies forDELETE
methods, the swagger/redoc pages won't pick up on this.
- Send