Python + FastAPI asynchronous REST API. Authentication is implemented using JWT. Each user can add, modify and access their own notes ONLY using a valid JSON Web Token
Database=> Postgres + asyncpgDatabase migrations=> AlembicData validation=> PydanticORM=> SQLAlchemyAuthentication and authorization=> Python Jose
Run make run or docker compose up --build in root folder to apply all necessary migrations and start the project.
Swagger documentation with request/response body examples available at http://127.0.0.1:8000/docs after project startup
0.0.0.0:8080/authβ=>β POST β=>β Create new user0.0.0.0:8080/auth/tokenβ=>β POST β=>β Log in to get access token
0.0.0.0:8080/api/v1β=>β POST β=>β Add note to user0.0.0.0:8080/api/v1β=>β GET β=>β Get all notes for user0.0.0.0:8080/api/v1/{note_id}β=>β GET β=>β Get user's note by note id0.0.0.0:8080/api/v1/{note_id}β=>β PUT β=>β Update user's note by node id0.0.0.0:8080/api/v1/{note_id}β=>β DELETE β=>β Delete user's note by note id