I need a REST API to manage user settings, shared finances (transactions), observe analytics using this frontend client
INFRASTRUCTURE: python http application, relational database, cache
REASONING: I know Python, I need a good DB transactions engine, all systems need cache
APPRACHES: monolith, REST, DDD, CQS, Repository, asynchronous
TOOLS: FastAPI, PostgreSQL, memcached
- settings
- number of
last transactions - exclude
categoriesfrom costs calculations
- number of
- authorization
- if user credentials are not valid - return the WWW-Authorization HTTP header with details according to the RFC6750
- use JWT for security
- project python tools configurations:
pyproject.toml,.flake8 - dependencies are managed with
pip-tools - useful dev scripts are in the
Makefile, usemakecommand - tests:
tests/integration,tests/unit - tests are fully powered by
pytest - code quality: only linter and chekcer in CI, use
make checkandmake qualitylocally - CI/CD: github actions
# LOCAL
# activate
virtualenv --python python3 venv
source venv/bin/activate
pip insatll pip-tools
make install
# PRODUCTION
virtualenv --python python3 venv
source venv/bin/activate
pip install -r requirements/main.txtreference: jazzband/pip-tools#2176
solution:
pip install "pip<25"