Uploading Screen Recording 2025-09-28 132811.mp4…
Screen.Recording.2025-09-28.132811.mp4
This iteration targets CCTV classroom videos without audio. Faculty can upload videos; the system counts students and estimates attentiveness (via pose/body-language heuristics), then shows engagement stats and a per‑second timeline.
- Face recognition-based student identification
- Real-time check-in/check-out detection
- Manual override capabilities for backup scenarios
- Comprehensive attendance reporting and analytics
- Computer vision analysis for attention detection
- Head pose estimation and eye contact tracking
- Posture analysis for engagement scoring
- Audio-based participation measurement
- Live engagement metrics and trends
- Real-time alerts for low engagement periods
- Historical analytics and performance insights
- Student-specific engagement tracking
- Configurable engagement thresholds
- Proactive notifications for intervention
- Alert acknowledgment and response tracking
- Multi-level severity classification
- Node.js/Express (MERN) for faculty auth, video upload, analytics storage
- MongoDB (Mongoose models)
- Communicates with a separate Python AI server
- Framework: React 18.2 with modern hooks
- Styling: Tailwind CSS for responsive design
- Icons: Heroicons for consistent UI elements
- HTTP Client: Axios with interceptors and error handling
- Routing: React Router for SPA navigation
- Containerization: Docker and Docker Compose
- Real-time Communication: WebSocket for live updates
- Environment Management: Python virtual environments
- Process Management: Uvicorn ASGI server
CodeQuest/
├── backend/ # Node.js/Express backend (MERN)
│ ├── models/ (User, VideoSession, Student)
│ ├── routes/ (auth, videos, analytics)
│ ├── middleware/ (auth, upload)
│ ├── config/ (database connection)
│ ├── uploads/ (uploaded videos)
│ ├── app.js
│ └── package.json
├── ai-server/ # FastAPI AI server (Python)
│ ├── app/
│ │ ├── main.py
│ │ ├── routes/analyze.py
│ │ ├── models/ (video_processor, student_counter, engagement_analyzer)
│ │ └── utils/ (pose_analyzer, head_pose)
│ ├── test_videos/
│ ├── requirements.txt
│ └── run.py
├── frontend/ # React dashboard
│ ├── src/
│ │ ├── components/ (VideoUpload, AnalyticsDashboard, EngagementCharts, ...)
│ │ ├── pages/ (FacultyDashboard, ...)
│ │ └── services/api.js
│ └── package.json
├── database/ (init scripts, sample data)
├── docs/
├── docker-compose.yml
└── README.md
- Python 3.12 or higher
- Node.js 18+ and npm
- MongoDB (local installation or MongoDB Atlas)
- Git for version control
git clone https://github.com/yourusername/CodeQuest.git
cd CodeQuest# Navigate to backend directory
cd backend
# Install dependencies and start dev server
npm install
npm run devNode backend will be available at http://localhost:5000
- Health check:
http://localhost:5000/health
# In another terminal
cd ai-server
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python run.pyAI server will be available at http://localhost:9000
# Open new terminal and navigate to frontend
cd frontend
# Install Node.js dependencies
npm install
# Start the React development server
npm startThe frontend will be available at http://localhost:3000
# Start MongoDB (if running locally)
mongod
# Initialize collections (from database directory)
cd database
mongo < init_collections.jsFor MongoDB Atlas: Update the connection string in backend configuration.
# Build and start all services
docker-compose up --build
# Run in background
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down