A url shortener app
Stack:
- Python3
- PynamoDB - DynamoDB interface
- FastAPI - Webframework
- Pydanic - API data validation
- Poetry - Dependency Manager
Architecure:
Wiki:
TODOs and ideas:
-
Add tooling:
- black auto-formatting hooks
- pyflakes / flake8 check hooks
- pytest checks
- pydocstyle checks
- CI build system
- Running multiple workers with gunicorn or some other WSGI server
- maybe make the whole thing serverless (AWS Lambda + API gateway)
- deployment system (maybe ArgoCD)
-
Improve tests:
- currently the test drob the DB manually this could be solved better with some scripting or tooling
- tests could be run in docker with a clean container, while devs can keep their localDB
-
Add authentication
-
Add API throttling
-
Make use of pseudo-threads for DB calls using InPynamoDB