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
categories
from 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
, usemake
command - tests:
tests/integration
,tests/unit
- tests are fully powered by
pytest
- code quality: only linter and chekcer in CI, use
make check
andmake quality
locally - 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.txt
reference: jazzband/pip-tools#2176
solution:
pip install "pip<25"