How himanshuxreal/feedvote works
FeedVote lets team or classroom users register, submit ideas, vote on others’ ideas, and view a ranked leaderboard. The Streamlit interface makes HTTP requests to a FastAPI application; route handlers validate requests and delegate persistence and vote-counting operations to CRUD functions backed by SQLAlchemy models and a configured database. The excerpts show the API and data layer directly; the frontend excerpt is partial, so its complete page behavior is based on README documentation.
Main entry points: main.py FastAPI app · crud.py CRUD operations · users.py User routes · feedback.py Feedback routes
Components 11
User interface
- Streamlit app
frontend/app.py
API workflows
- FastAPI app
backend/app/main.py - User routes
backend/app/routes/users.py - Feedback routes
backend/app/routes/feedback.py - Vote routes
backend/app/routes/vote.py
Domain and persistence
- Request schemas
backend/app/schemas.py - CRUD operations
backend/app/crud.py - User, idea, vote
backend/app/models.py - DB sessions
backend/app/database.py - Relational database
backend/app/database.py
Other components
- Team member
Connections 18
- Team member → Streamlit app: uses
- Streamlit app → FastAPI app: HTTP requests
- FastAPI app → User routes: dispatches
- FastAPI app → Feedback routes: dispatches
- FastAPI app → Vote routes: dispatches
- User routes → Request schemas: validates
- Feedback routes → Request schemas: validates
- Vote routes → Request schemas: validates
- User routes → CRUD operations: calls
- Feedback routes → CRUD operations: calls
- Vote routes → CRUD operations: calls
- User routes → DB sessions: opens session
- Feedback routes → DB sessions: opens session
- Vote routes → DB sessions: opens session
- CRUD operations → User, idea, vote: queries and updates
- CRUD operations → Relational database: reads and writes
- DB sessions → Relational database: connects
- FastAPI app → Relational database: creates tables