Backend that i use to sell my courses
Configuration is stored in src/app/.env
, for examples see src/app/.env.ci
This project requires python3.6 and sqlite.
Install requirements:
cd src && pip install -r requirements.txt
cp app/.env.ci app/.env # default environment variables
./manage.py migrate
./manage.py createsuperuser
Testing:
# run unit tests
$ pytest
Development servers:
# run django dev server
$ ./manage.py runserver
- Obey django's style guide.
- Configure your IDE to use flake8 for checking your python code. For running flake8 manualy, do
cd src && flake8
- Prefer English over your native language in comments and commit messages.
- Commit messages should contain the unique id of issue they are linked to (refs #100500)
- Every model and a model method should have a docstring.
- KISS and DRY.
- Obey django best practices.
- Make models fat. No logic is allowed within the views or templates. Only models.
- Use PEP-484 type hints when possible.
- Prefer composition and GenericRelations over inheritance.
- Prefer Manager methods over static methods.
- Do not use signals for business logic. Signals are good only for notification purposes.
- No l10n is allowed in python code, use django translation.