An RFID-based attendance and security system designed to automate student and teacher entry/exit using existing ID cards.
This project aims to make attendance marking, late tracking, and gate verification faster, paperless, and tamperproof, while ensuring student safety and accountability.
The system replaces manual processes currently used for:
- Daily student attendance on Veracross (handled manually by class teachers)
- Manual late marking lines every morning
- Paper-based sign-out sheets for student exit
- Manual teacher attendance registers
Instead, it enables RFID-based automated entry/exit tracking linked to a Firebase database.
- Students currently wait in a “late line” where teachers manually check names and mark strikes for lateness.
- Attendance is taken manually each morning by class teachers on Veracross.
- Students are sometimes able to leave school without permission or fake entries on exit sheets.
- Teacher sign-ins are done on paper sheets, wasting time and resources.
A tamperproof system using RFID entry and exit scanners integrated with a Firebase database, allowing:
- Automatic attendance marking when students tap their ID cards.
- Instant lateness detection (even by a second).
- Automatic strike tracking — on 3 strikes, the class teacher is informed.
- Gate-side verification for exit — showing if a student is authorized to leave (walk, car, or bus).
- Teacher attendance logging via the same system.
- Students and teachers tap their existing RFID ID cards on entry and exit.
- The ESP32 connects directly to Firebase to record:
- Entry time
- Mode of transport
- Lateness status
- Guards (bhaiyas) can verify permissions instantly from a display screen.
- Students forgetting ID cards can manually sign in at the office (and receive a strike).
- On 3 strikes in a learning cycle, a mail is sent to class teachers.
| Component | Purpose |
|---|---|
| ESP32 | Wi-Fi enabled microcontroller for database communication |
| RC522 RFID Module | Scans ID cards |
| TFT / LCD Screen | Displays messages for lateness and mode of transport |
| Custom PCB | Integrates all components into a single compact module |
| 3D Printed Case | Protects and houses the hardware, designed by me |
- The system uses Google Firebase for real-time data synchronization.
- Stores:
- Student & teacher IDs
- Entry/exit timestamps
- Mode of transport
- Strike counts
- Connected directly via ESP32’s Wi-Fi capabilities.
The PCB includes:
- ESP32 microcontroller sockets
- RC522 connection header
- Screen header for I2C/TFT pins
- Buzzer and power control
- USB and VIN power lines for standalone operation
Once the PCB design files (.sch, .brd, .gerber) are uploaded, they’ll appear here.
- Main.ino – the ESP32 firmware to flash with Arduino IDE/PlatformIO. It drives the SPI screen, buzzer, RFID reader, and posts scans to the backend.
- rfid_system/backend – a FastAPI service that stores roster data and attendance logs in JSON.
- rfid_system/frontend – a static dashboard that mirrors the SPI screen, records manual scans, and can log events to Firebase.
- Students and teachers must bring their ID cards daily.
- Guards will handle morning scanning duty.
- Backup manual entry at the office for missing cards.
Aiming to make Vasant Valley School safer, smarter, and more efficient through student-led innovation — eliminating wasted time, paperwork, and unsafe exits with technology.
Kushal Sachdeva Vasant Valley School
Firmware for the ESP32 lives in Main.ino. The supporting dashboard and local data service are
inside the rfid_system/ folder. To run the software pieces on a laptop (without flashing the
microcontroller), follow the step-by-step instructions in
rfid_system/GETTING_STARTED.md. That guide covers:
- Installing Python dependencies and starting the local backend service.
- Launching the dashboard in a browser.
- Typing RFID UIDs manually to see roster lookups and attendance logs update in real time.
- Connecting the dashboard to Firebase, including the Firestore security rules to paste into the Firebase console.
Use that document whenever you need to revisit the setup or reconfigure the environment.