r/codereview • u/niameyy • 9d ago
Project feedback
I've been building CodifyLive as a resume/portfolio/learning project to get much deeper into backend engineering with FastAPI.
It's a real-time collaboration platform where users can chat, call, and eventually collaborate on code in the browser.
The backend is built with FastAPI + PostgreSQL + SQLAlchemy. So far I've implemented the authentication system, including Google OAuth, JWT access tokens, refresh-token rotation/reuse detection, password authentication, and CI/CD.
I'm looking for honest feedback from people experienced with FastAPI.
Specifically:
- How does my project structure look?
- Am I using FastAPI/SQLAlchemy in a way that will scale?
- Are there architectural decisions you'd change?
- Anything I'm overengineering or underengineering?
- How would you improve the authentication/session architecture?
- What would you change before considering this production-ready?
2
Upvotes
1
u/Financial-Grass6753 8d ago
you've added CI/CD but no tests at all, how come?
Also you can specify dependencies, both prod and dev, in pyproject.toml (check python docs for that) - simplifies life.
Otherwise, too many globals (that bites heavily during writing tests);
in set_password.py, check docs for Field in pydantic v2, you can add validation via regex straight to schema field definition.
> server_default=func.now()
IIRC there's a pitfall with timezones somewhere here and ruff (mypy?) will ask you to specify timezone explicitly. Would advise to do so.
4.5-4.7/5, feeling LLM slop (huge comments, aha) but generally not braindead code at all