Building End-to-End FastAPI Social Media API
I started this project while following the comprehensive 19-hour FastAPI course by freeCodeCamp — but my goal wasn’t just to build a “social media API.”
I’m building a solid, production-ready backend that can power a variety of applications — from NLP-driven platforms to computer vision web apps, not just social media. This project is my starting point for mastering end-to-end machine learning solutions.
Tech Stack:
- Backend: FastAPI (Python)
- Database: PostgreSQL (production), SQLite (local)
- ORM & Migrations: SQLAlchemy + Alembic
- Auth: JWT, OAuth2
- Deployment: Heroku, Ubuntu VM, NGINX, Gunicorn
- Testing: Pytest
- Containerization: Docker & Docker Compose
Current Features:
- Secure User Authentication & Authorization (JWT, OAuth2)
- CRUD Operations for Posts
- Voting system (upvote/downvote)
- Pagination & Search
- Database migrations with Alembic
- Designed for SQLite (easy local setup) and PostgreSQL (production-ready)
What I’m Learning & Planning to Implement Next:
- Alembic migrations on production (Heroku, Ubuntu VM)
- Deployment pipelines with GitHub Actions and CI/CD best practices
- Production setup: Gunicorn, NGINX, SSL, Domain configuration, Firewall
- Containerization: Docker, Docker Compose, Postgres containerization
- Automated testing: Pytest with fixtures, parametrization, test databases
- Caching strategies using Redis for improved performance
- Continuous improvements to project structure and security
This project is still pre-v1 — a foundation I’m continuously building on as I deepen my skills and prepare to integrate advanced ML features on top.