This repo holds the code used to create a FastAPI backend for a fake cleaning marketplace called "Phresh".
Each part of the application is built and tested in small, manageable chunks - accompanied by written tutorials.
The technology stack used to create the backend of this application is as follows:
- Framework
- FastAPI and Starlette
- ASGI Server
- Uvicorn and Gunicorn
- Containerization
- Docker
- Database
- Postgres
- Alembic
- encode/databases
- Authentication
- Bcrypt
- Passlib
- JWT Tokens with Pyjwt
- Testing
- Pytest
- Development
- flake8
- black
- vscode
β - Completed π - In progress π± - UI π - Backend
- Part 1: Up and running with FastAPI and docker β π
- Part 2: Configuring a postgresql db with your dockerized FastAPI app β π
- Part 3: Hooking FastAPI endpoints up to a postgres database β π
- Part 4: Testing FastAPI endpoints with docker and pytest β π
- Part 5: Resource management with FastAPI β π
- Part 6: Designing a robust user model in a FastAPI app β π
- Part 7: User auth in FastAPI with jwt tokens β π
- Part 8: Auth dependencies in FastAPI β π
- Part 9: Setting up user profiles in FastAPI β π
- Part 10: User owned resources in FastAPI β π
- Part 11: Marketplace functionality in FastAPI β π
- Part 12: Evaluations and SQL aggregations in FastAPI β π
- Part 13: Phresh frontend - bootstrapping a React app β π±
- Part 14: Frontend navigation with React router β π±
- Part 15: Managing auth state with redux β π±
- Part 16: Client-side protected routes and user registration β π±
- Part 17: Consuming a FastAPI backend from a React frontend β ππ±
- Part 18: Edit user-owned cleaning resources with React and FastAPI β π±
- Part 19: Creating and viewing job offers with React and FastAPI β π±
- Part 20: Approving and rejecting job offers with React and FastAPI β ππ±
- Part 21: Serving a paginated activity feed from FastAPI β ππ±
- Part 22: Designing a feed page for a FastAPI app β π±
- Part 23: Refactoring our React UI into composable hooks β π±
- Part 24: Refactoring our UI into hooks - Part II β π±
- Part 25: Populating cleaning jobs with user offers in FastAPI β π