2022-11-18 16:08:50 -05:00
# Todo API
2023-11-01 23:48:43 -04:00
## To run
`docker-compose up -d`
2022-11-18 16:08:50 -05:00
## Frontend
2023-02-20 16:50:39 -05:00
### Development Workflow
2022-11-18 16:08:50 -05:00
2023-02-20 16:50:39 -05:00
- Format, lint and test with `npm run {format, lint, test}` .
### Dependencies
- React
2023-09-04 15:45:26 -04:00
- React helment async: manage changes to document head
- React router dom: route management
- Material UI: UI styled components
2023-02-20 16:50:39 -05:00
- Roboto font
2023-09-04 15:45:26 -04:00
- Formik: form management
- Yup: validate input data
2022-11-18 16:08:50 -05:00
2023-07-16 22:07:30 -04:00
### Frontend Technical Write-up
2023-07-16 23:45:09 -04:00
Inside the `frontend/` folder
2023-07-16 22:07:30 -04:00
2022-11-18 16:08:50 -05:00
## Backend
2023-02-20 16:50:39 -05:00
### Development Workflow
2022-12-10 18:46:51 -05:00
2023-07-12 10:34:17 -04:00
- Depends on the state of the database, run `pdm run recreate-db` to regenerate database.
2022-12-24 22:05:01 -05:00
- 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}` .
2022-12-10 18:46:51 -05:00
### Dependencies
2022-11-18 16:08:50 -05:00
2022-11-19 15:13:38 -05:00
#### Python dependencies
2022-11-18 16:08:50 -05:00
2022-11-19 15:13:38 -05:00
- `quart` : a micro-webframework, async version of Flask.
2022-12-15 09:40:38 -05:00
- `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` ).
2022-11-19 15:13:38 -05:00
- `bcrypt` : Hashing and salting password.
- `zxcvbn` : Test password strength.
- `freezegun` : Check for expired token.
2022-12-15 09:40:38 -05:00
- `quart-rate-limiter` : Rate limiting.
- `pydantic` and `quart-schema` : Request/Response validation.
- `httpx` : send HTTP POST requests from our app.
2022-11-18 16:08:50 -05:00
#### SQL Dev-deps
2022-12-15 09:40:38 -05:00
- `bandit` : Check for SQL injection vulnerabilities.
2022-11-18 16:08:50 -05:00
#### Miscs Dev-deps
2022-12-15 09:40:38 -05:00
- `djhtml` : Generate jinja templates html for emails.
2022-12-23 19:57:21 -05:00
### Backend Technical Write-up
2023-07-16 23:45:09 -04:00
Inside the `backend/` folder