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🚂📱