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