Back to Projects03

RFID Attendance Scanner

A web-based RFID attendance system built and sold to a school, with real-time tracking and parent notifications.

JavaScriptMySQLNode.jsExpress.jsView on GitHub
Why I Built This

A school I knew needed a way to track attendance without a teacher manually taking roll call every single period. It sounded like a small problem until I actually sat with how much class time it was eating, every day, across every classroom.

So I built them a real system: RFID cards at the door, a teacher-facing dashboard with live and historical attendance, and a separate parent portal scoped to just their own kid's check-ins. Both update over WebSocket, not polling, so nobody's staring at a page waiting for it to refresh.

I ended up selling it to them instead of just shipping it as a portfolio piece: the first time something I built went from a personal project to a system real people used every day.

Process
How It Works

A tap at the door, live on two dashboards a second later.

01

An RC522 reader wired to an Arduino UNO reads each student's RFID card on tap.

02

The scan posts to a Node.js/Express backend, which logs it to MySQL and pushes it out over WebSocket.

03

Teacher and parent dashboards update live, no polling, no refresh.

How It Works
Demo
In Action

The scanner running end to end, card tap to dashboard update.

In Action

A card tap registering and showing up on the live attendance dashboard.

Gallery01 / 04
By the Numbers
About 1,000 AED

Revenue Generated

Real-Time

Sync, No Polling

1

School Deployed

Highlights
  1. 01

    Successfully developed and sold a web-based RFID attendance system for a school, generating approximately 1,000 AED in revenue.

  2. 02

    Developed a system with real-time student tracking and automated parent notifications.

  3. 03

    Designed and maintained the database using MySQL to manage student and attendance data efficiently.

  4. 04

    Implemented the backend with Node.js and Express.js, facilitating smooth interaction between server and frontend.