Empowering students to ask questions and instructors to track participation in real time
Smart Classroom Q&A and Engagement Tracking System is a Smart Classroom system that solves a common problem in large lectures — students are often too shy or unsure to ask questions in front of their peers, leaving instructors unaware of who is struggling.
This platform lets students submit questions anonymously through the app, while instructors can answer them, monitor participation in real time, and review engagement reports after each class session.
For Students
- 🔐 Authentication — Secure login via Amazon Cognito
- 🏫 Join Class — Enter a class using a Course Code
- 💬 Submit Questions — Ask questions without speaking in front of the class
- 📬 Status Tracking — See whether your question is pending or answered
- 🔔 Email Notifications — Get notified when an instructor replies
For Instructors
- 🏗️ Class Management — Create classes and generate Course Codes
- 📋 Question Feed — View and respond to student questions
- 📊 Real-time Dashboard — Monitor participation as it happens
- 📈 Post-class Reports — Review engagement summaries after each session
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Next.js + TypeScript | Web application for students and instructors |
| Styling | Tailwind CSS | Utility-first CSS framework |
| Frontend Hosting | AWS Amplify | Deploy and host the frontend |
| Authentication | Amazon Cognito | Login and role-based token management |
| Backend | Python FastAPI | REST API + WebSocket API |
| Backend Runtime | Amazon EC2 (t3.micro) | Host the backend server |
| Containerization | Docker | Package backend as a container |
| Database | Amazon RDS for MySQL | Primary relational database |
git clone https://github.com/Gummy-168/CS232-Project-AWS-07.git
cd CS232-Project-AWS-07cd frontend
npm install
cp .env.example .env.local
npm run dev # http://localhost:3000cd backend
cp .env.example .env
docker build -t classq-backend .
docker run -p 5000:5000 --env-file .env classq-backend # http://localhost:5000frontend/.env.local
NEXT_PUBLIC_API_URL=http://localhost:5000/api
NEXT_PUBLIC_WS_URL=ws://localhost:5000
NEXT_PUBLIC_COGNITO_USER_POOL_ID=your_user_pool_id
NEXT_PUBLIC_COGNITO_CLIENT_ID=your_client_id
NEXT_PUBLIC_COGNITO_REGION=ap-southeast-1backend/.env
PORT=5000
DATABASE_URL=mysql://user:password@localhost:3306/classq_dev
COGNITO_USER_POOL_ID=your_user_pool_id
COGNITO_REGION=ap-southeast-1
SES_SENDER_EMAIL=noreply@yourdomain.com
AWS_REGION=ap-southeast-1CS232-Project-AWS-07/
├── frontend/ # Next.js Frontend
│ ├── app/ # Pages (App Router)
│ └── components/ # Reusable UI components
├── backend/ # FastAPI Backend
│ ├── routes/ # API endpoints
│ ├── models/ # SQLAlchemy ORM models
│ ├── schemas/ # Pydantic validation
│ ├── app.py # Entry point
│ └── Dockerfile
├── docs/ # Documentation
└── .github/workflows/ # CI/CD pipelines
GET|POST /api/questions
GET|PUT|DELETE /api/questions/{id}
PATCH /api/questions/{id}/status
GET|POST /api/classes
GET /api/classes/{id}/questions
GET /api/analytics/summary
GET /api/analytics/participation
POST /api/auth/register
POST /api/auth/login
POST /api/auth/refresh
Full interactive docs available at /docs (Swagger) or /redoc.
- GitHub: https://github.com/Gummy-168/CS232-Project-AWS-07
- Video Demo: Watch Demo
See full roles and responsibilities in CONTRIBUTING.md
- Fork the repository
- Create a feature branch —
git checkout -b feature/amazing-feature - Commit your changes —
git commit -m 'Add amazing feature' - Push —
git push origin feature/amazing-feature - Open a Pull Request
Follow PEP 8 for Python, use TypeScript for frontend, and write tests for new features.
This project is licensed under the MIT License — free to use, modify, and distribute.
Built with ❤️ for smarter classrooms
Making participation easier, one question at a time