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