Phresh Cleaning - Up and Running With FastAPI Tutorial Series
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
Roadmap and Completed Articles
- 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
✅ 🚂