50 lines
1.3 KiB
Markdown
50 lines
1.3 KiB
Markdown
# Todo API
|
|
|
|
## Frontend
|
|
|
|
### Development dependencies
|
|
|
|
- `prettier`: Formatter
|
|
|
|
### Frontend Technical Write-up
|
|
|
|
Inside the `backend\` folder
|
|
|
|
## Backend
|
|
|
|
### Development workflow
|
|
|
|
- Depends on the state of the database, run `pdm run recreate-db` to regenerate database.
|
|
- Run `eval (pdm venv activate in-project)` (if you are using Fish shell) or `eval $(pdm venv activate in-project)` (if you are using bash/zsh) at the `backend` folder root to get into the backend python virtual environment.
|
|
- Run tests, lints, formats with `pdm run {test, lint, format}`.
|
|
|
|
### Dependencies
|
|
|
|
#### Python dependencies
|
|
|
|
- `quart`: a micro-webframework, async version of Flask.
|
|
- `black`: Code formatter.
|
|
- `isort`: Import formatter.
|
|
- `mypy`: Type checking.
|
|
- `flake8`: General Python bugs.
|
|
- `vulture`: Find unused code in Python programs.
|
|
- `pytest`: For testing (turbocharged with `async`).
|
|
- `bcrypt`: Hashing and salting password.
|
|
- `zxcvbn`: Test password strength.
|
|
- `freezegun`: Check for expired token.
|
|
- `quart-rate-limiter`: Rate limiting.
|
|
- `pydantic` and `quart-schema`: Request/Response validation.
|
|
- `httpx`: send HTTP POST requests from our app.
|
|
|
|
#### SQL Dev-deps
|
|
|
|
- `bandit`: Check for SQL injection vulnerabilities.
|
|
|
|
#### Miscs Dev-deps
|
|
|
|
- `djhtml`: Generate jinja templates html for emails.
|
|
|
|
### Backend Technical Write-up
|
|
|
|
Inside the `backend\` folder
|