Edu-Hub is a smart education platform focused on building a modern attendance management system for classrooms. The project combines a web-based student/professor experience with a hardware prototype that uses two ESP32 boards to detect student presence through Bluetooth Low Energy (BLE).
The attendance system is the core of this project. It demonstrates how a classroom can move from manual attendance to an automated, real-time presence detection flow.
- A student ESP32 board acts as a BLE beacon.
- A second ESP32 board acts as a classroom scanner/receiver.
- When the scanner detects the student beacon, it sends attendance information to a local server endpoint.
- The attendance data can then be used by the web app to reflect student presence.
The current prototype uses two ESP32 devices:
- ESP32 Beacon Device: advertises a student identity over BLE.
- ESP32 Scanner Device: scans for nearby beacons, identifies the student, and sends the detection to a server.
This makes the project a practical proof-of-concept for contactless attendance tracking.
- Hardware/ESP32/blebeacon.ino — ESP32 beacon code
- Hardware/ESP32/bleserver.ino — ESP32 scanner code
- Hardware/server.py — local server for handling attendance detection
Watch the prototype demo here:
https://www.youtube.com/watch?v=XFTbfhly9-0
The Edu-Hub web app includes:
- Student and professor role-based login
- Student attendance dashboard
- Professor attendance views
- Timetable pages for both roles
- A separate collaborative whiteboard app
- index.html — main web app entry point
- studenthome.html and profhome.html — role-based dashboards
- attendancepage-stud.html and attendancepage-prof.html — attendance pages
- tt-stu.html and tt-prof.html — timetable pages
- my-whiteboard-app — React-based whiteboard application
- build — generated build assets
- Open the repository folder in a browser.
- Launch the app by opening index.html, or serve the folder using a simple static server such as Live Server in VS Code.
- Change into the my-whiteboard-app folder.
- Install dependencies:
npm install
- Start the development server:
npm start
- Upload Hardware/ESP32/blebeacon.ino to one ESP32 board.
- Upload Hardware/ESP32/bleserver.ino to the second ESP32 board.
- Update the Wi-Fi credentials, server URL, and student ID values in the scanner code as needed.
- Run the local server and test the BLE detection flow.
- HTML, CSS, and JavaScript
- Firebase Authentication
- React (for the whiteboard app)
- ESP32
- BLE and Wi-Fi communication
- The attendance system is currently a functional prototype and can be further improved for real-world deployment.
- Some features may require valid Firebase configuration and a working network connection.