Interactive classroom participation platform with forums, questions, teams, and participation tracking.
- Platform Overview
- Quick Start
- Architecture
- Setup
- Features
- API Endpoints
- Database Schema
- Contributors
- License
-
Frontend:
cd frontend npm run build -
Backend:
cd backend npm run dev -
Access at
http://localhost:8080
Course dashboard with student participation metrics
Live session control panel
Real-time response visualization and analytics
Professors can create courses, manage sessions, view real-time student responses, and access comprehensive analytics. The dashboard provides a complete overview of student participation and engagement metrics.
Student dashboard with enrolled courses and active sessions
Live session interface
Interactive question answering interface
Overall performance metrics across all courses
Detailed session-by-session performance breakdown
Students join live sessions, answer questions in real-time, view their performance metrics, and track participation across all enrolled courses.
TA dashboard with course overview
Live session monitoring
Response analytics and student engagement tracking
TAs have access to monitor live sessions, view student responses, and assist with course management while maintaining a view-only interface.
Full-screen presentation mode
Question display for classroom presentations
Real-time response visualization
Full-screen projector mode displays questions and real-time response visualizations for classroom presentations, updating automatically as students submit answers.
Forum - Piazza-style discussion boards with threaded replies, likes, and tags
Question Bank - Create and manage reusable questions (multiple choice, multiple select, likert scale, short response)
Question Creation - Question creation interface with time limits and point values
Teams - Team formation and management with automatic assignment options
Post-Class Analytics - Comprehensive analytics dashboard with participation rates, accuracy metrics, and session summaries
- Backend: Node.js/Express with TypeScript
- Frontend: React with TypeScript
- Database: MySQL
- Node.js 20+
- MySQL 8.4+ (local instance)
- Create the database:
mysql -u root -p -e "CREATE DATABASE course_platform;"- Run the schema:
mysql -u root -p course_platform < backend/schema.sql- Navigate to backend directory:
cd backend- Install dependencies:
npm install-
Configure environment variables in
backend/src/config/database.tsor set them in your environment. -
Run for development:
npm run dev- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Build for production:
npm run build- User Management: Students, TAs, and Professors with role-based access
- Courses: Course creation and enrollment management
- Forums: Piazza-style discussion boards with threaded replies
- Questions: Menti-style questions (multiple choice, multiple select, likert scale, short response)
- Teams: Team formation and management
- Analytics: Participation tracking and advanced queries
- Real-time Updates: Socket.io for live updates
GET /api- API infoGET /health- Health checkPOST /api/auth/google- OAuth loginGET /api/auth/me- Get current userGET /api/courses- List coursesGET /api/forums/course/:courseId- List forumsGET /api/questions/course/:courseId- List questionsGET /api/teams/course/:courseId- List teamsGET /api/analytics/course/:courseId/participation- Course analytics
See individual route files for complete API documentation.
See backend/schema.sql for complete database schema with all 8 tables plus question_responses.
- Adeetya Upadhyay
- Rona Oum
- Devansh Majithia
- Jonathan Chen
MIT


















