Real-time, Anonymous Classroom Feedback System
EduPulse helps educators understand student confusion as it happens—without forcing students to speak up. A silent signal for better equity in education.
The demo database is currently offline. Follow the setup steps below to run it with your own Supabase project.
- About
- Features
- Tech Stack
- Getting Started
- Demo Credentials
- Project Structure
- Environment Setup
- Usage Guide
- SDG-4 Alignment
- Contributing
EduPulse addresses the "Silent Classroom" problem where 80% of confused students never ask questions due to:
- Fear of judgment
- Language barriers
- Fast-paced lectures
- Social anxiety
Our solution provides a one-click, anonymous feedback mechanism that gives educators real-time insights into classroom understanding.
- ✅ Anonymous Signaling - No login required, complete privacy
- 📍 Geofenced Access - Signals only work within campus boundaries
- ⚡ One-Click Feedback - "I'm Confused" button with optional context
- 🔒 Secure & Private - No tracking, no data collection on individuals
- 📊 Live Dashboard - Real-time confusion metrics and trends
- 🤖 AI Insights - Smart suggestions based on signal patterns
- 📈 Historical Trends - Visualize confusion over time (last hour)
- 🎯 Actionable Data - See location clusters and signal types
- 🗺️ Campus Geofencing - Configure campus boundaries (lat/lng/radius)
- 🎛️ Signal Management - Add/remove custom signal types
- 📊 System Overview - Monitor active sessions and usage stats
- 🔄 Data Reset - Password-protected demo data management
- Frontend: Next.js 16.1.1 (App Router), React, TypeScript
- Styling: Tailwind CSS (Vanilla CSS approach)
- Backend: Supabase (PostgreSQL)
- Icons: Lucide React
- Fonts: Inter (Google Fonts)
- Geolocation: Browser Geolocation API + Haversine formula
URL: http://localhost:3000/admin
Demo Admin Password: edupulse2026
Note: For production, change the admin password and use proper bcrypt hashing. The current setup is for demonstration purposes only.
To test geofencing, you'll need to:
- Update
campus_settingstable with your actual campus coordinates - Use browser developer tools to mock your location (if testing remotely)
- Or physically be within the configured radius
Mock Location in Chrome DevTools:
- Open DevTools (F12)
- Press
Ctrl+Shift+P→ Type "Sensors" - Select "Sensors" tab
- Choose "Other" and enter your campus lat/lng
edu-pulse/
├── app/
│ ├── actions/ # Server actions
│ │ ├── admin.ts # Admin operations
│ │ └── signals.ts # Signal operations
│ ├── admin/ # Admin dashboard
│ │ └── page.tsx
│ ├── educator/ # Educator views
│ │ └── dashboard/
│ │ └── page.tsx
│ ├── student/ # Student view
│ │ └── page.tsx
│ ├── impact/ # SDG-4 impact page
│ │ └── page.tsx
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Landing page
│ └── globals.css # Global styles
├── utils/
│ └── supabase/ # Supabase client setup
│ ├── client.ts
│ └── server.ts
├── middleware.ts # Route protection
├── .env.local # Environment variables (create this)
└── README.md
- Navigate to
/student - Allow browser location access
- Verify you're within campus boundaries
- Click "I'm Confused" when lost
- Optionally add room number and brief context
- Signal sent anonymously to educator dashboard
- Navigate to
/educator/dashboard - View live confusion pulse chart
- Monitor current confusion percentage
- Read AI-generated insights
- Check recent activity feed
- Adjust teaching based on real-time feedback
- Navigate to
/admin - Enter admin password:
edupulse2026 - Configure campus geofence coordinates
- Add/remove custom signal types
- Monitor system-wide statistics
- Reset demo data when needed
Sustainable Development Goal 4: Quality Education
Equity 🤝
- Removes barriers for shy, non-native speakers, or anxious students
- Ensures all voices are heard without fear of judgment
Inclusion 🌈
- Anonymous system protects vulnerable students
- No login requirement reduces technical barriers
Quality 📚
- Real-time feedback enables immediate teaching adjustments
- Data-driven insights help educators identify systemic issues
Access 🌐
- Browser-based, no app download required
- Works on any device with internet connection
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Write meaningful commit messages
- Test geofencing functionality before submitting
- Ensure mobile responsiveness
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for EDVentures 2026 Competition
- Inspired by the need for equitable classroom feedback
- Designed to support SDG-4: Quality Education
Project Maintainer: Kuldeep Mishra
For questions, feedback, or collaboration opportunities, please open an issue on GitHub.