A real-time polling system that integrates ESP32 hardware with a web-based dashboard for interactive classroom voting and attendance tracking, built under the guidance of Dr. Binod Kumar.
This project enables instructors to create live polls that students can participate in using ESP32 devices with physical buttons. The system provides real-time feedback and analytics through a web dashboard.
- Real-time poll creation and management
- ESP32 hardware integration for physical voting
- Web-based instructor dashboard
- Student attendance tracking
- Live vote counting and results display
- MongoDB data persistence
- CORS-enabled API for cross-origin requests
- Backend: Node.js with Express.js framework
- Database: MongoDB with Mongoose ODM
- Frontend: HTML/CSS/JavaScript with real-time updates
- Hardware: ESP32 microcontroller with WiFi connectivity
- Deployment: Render-ready configuration
- Node.js 14.0.0 or higher
- MongoDB database
- ESP32 development board
- Arduino IDE for ESP32 programming
-
Clone the repository
-
Install dependencies:
npm install
-
Configure environment variables:
cp .env.example .env # Edit .env with your MongoDB connection string -
Seed sample student data:
npm run seed
-
Start the server:
npm start
- Open
esp_code/esp_code.inoin Arduino IDE - Update WiFi credentials and server URL
- Upload code to ESP32 device
- Monitor serial output for connection status
GET /health- Health check endpointPOST /poll- Create new pollPOST /vote- Submit voteGET /poll- Get current active pollPOST /end-poll- End current pollPOST /register- Register new userPOST /login- User authentication
- Register with master code:
IITJPM2025
DDDDDD- Shaurya DwivediBBBBBB- Samruddha JadhavAAAAAA- Atharva AjmeraCCCCCC- Kushagra KhareABCDDD- Kunal Singh
├── server/ # Backend application
│ ├── models/ # MongoDB data models
│ ├── config/ # Database configuration
│ └── scripts/ # Utility scripts
├── public/ # Frontend files
├── esp_code/ # Arduino code for ESP32
├── docs/ # Documentation
└── config/ # Application configuration
npm start- Start production servernpm run dev- Start development servernpm run seed- Populate database with sample datanpm test- Run tests (not configured)
The project includes Render deployment configuration. See QUICKSTART.md for detailed deployment instructions.
docs/DEPLOYMENT.md- Deployment guidedocs/CONFIG.md- Configuration detailsdocs/DATABASE_SCHEMA.md- Database schemadocs/MONGODB_SETUP.md- MongoDB setup guide
ISC