A web application for running interactive team quiz sessions with real-time scoring.
- Three Teams: Chatsight, AI Tutor, and Coursegraph
- Team Members: Each team has 4 members
- Interactive Scoring: Click on a team member to add points
- Flexible Points: Award full points (1.0) or partial credit (e.g., 0.1, 0.5)
- Real-time Updates: Scores update immediately after awarding points
- Score Reset: Reset all scores to initial values
- React
- TypeScript
- Vite
- CSS3
- Python
- FastAPI
- SQLite
- Node.js (v16 or higher)
- Python 3.8 or higher
- pip
Open two terminal windows:
Terminal 1 - Backend:
./start-backend.shTerminal 2 - Frontend:
./start-frontend.shThe backend will start on http://localhost:8000 and the frontend on http://localhost:5173
- Navigate to the backend directory:
cd backend- Create a virtual environment (recommended):
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Run the backend server:
python main.pyThe backend will start on http://localhost:8000
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Run the development server:
npm run devThe frontend will start on http://localhost:5173
- Start both the backend and frontend servers
- Open your browser to
http://localhost:5173 - Click on a team member's name to select them
- A dialog will appear with:
- Default points: 1.0
- Input field to adjust points (e.g., 0.1 for partial credit)
- ✓ (checkmark) button to confirm and add points
- ✕ (X) button to cancel
- Click the checkmark to add points to the team
- Use the "Reset Scores" button to reset all teams to initial scores
- Chatsight: 11.5
- Minchan, Michelle, Lauren, Achintya
- AI Tutor: 12.6
- Sathvika, Preethi, Ayush, Ella
- Coursegraph: 15.1
- Andrew, Thaarak, Susana, Steven
GET /api/teams- Get all teams with members and scoresPOST /api/add-points- Add points to a team- Body:
{ "member_id": number, "points": number }
- Body:
POST /api/reset-scores- Reset all scores to initial values
The SQLite database (cookout.db) is automatically created on first run with initial data.
The app uses a modern gradient design with smooth animations and responsive layout.
MIT