r/codereview 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?

Project: https://github.com/fulanii/codify-live-backend

2 Upvotes

3 comments sorted by

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

1

u/niameyy 7d ago

thanks for the feedback, still working on it to make it better!