Innovating Attendance Tracking with RFID, IoT, and Full-Stack Solutions
Started February 2025 - Ended May 2025
Flutter
Dart
FastAPI
Python
Laravel
PHP
React.js
TypeScript
JavaScript
Electron.js
HTML5
CSS3
Tailwind CSS
MySQL
Swagger
RabbitMQ
Docker
Hostinger (VPS)
Raspberry Pi
RFID
Semaphore
Gradle
GitHub
Git
An RFID-based attendance system for kindergarten students, integrating IoT, SMS notifications, facial recognition, and mobile applications for seamless parent and admin monitoring.
Introduction
This project was commissioned by a client to address the need for a more efficient and secure attendance system for kindergarten students. Traditional logbooks and manual tracking often caused delays and lacked transparency for parents and administrators. By combining IoT devices with RFID technology, we built a system that instantly logs attendance when students scan their RFID tags. A mobile app for parents, a web-based dashboard for administrators, and a desktop Electron app for reporting and data management created a fully integrated ecosystem. The solution not only streamlined attendance but also enhanced security and communication through real-time notifications.
Objectives
The core objective was to modernize attendance monitoring for kindergartens while keeping parents and administrators informed in real time. Specific goals included: Implementing RFID-based scanning via Raspberry Pi for instant attendance logging. Developing a mobile app with Flutter for parents to monitor attendance and receive emergency alerts. Building a full-stack web dashboard with Laravel, React.js, and FastAPI for administrators. Integrating Semaphore SMS API for delivering notifications of emergencies and daily attendance logs. Ensuring reliability and scalability by introducing RabbitMQ for message queuing and fallback handling. Conducting code reviews and collaborating with another developer on the Electron desktop app to ensure maintainable and high-quality code.
Challenges
A major challenge was ensuring the system could handle real-time synchronization between IoT devices, backend services, and user-facing apps without data loss. Another hurdle was implementing secure facial recognition with Python libraries to cross-verify RFID scans, while keeping it lightweight enough for practical deployment. On the communication side, configuring Semaphore SMS to handle high-volume notifications during emergencies required careful load balancing. Designing a unified system where web, mobile, and desktop applications worked together seamlessly also demanded thorough architectural planning and clear coordination with teammates.
Overcoming Challenges
To tackle real-time issues, RabbitMQ was implemented as a reliable message broker, ensuring consistent data flow between IoT devices and backend APIs. For security and validation, facial recognition preprocessing was optimized with Python to ensure accuracy without significant performance cost. Docker containers were used to standardize deployments across different environments. The Semaphore SMS API integration was enhanced with retry and fallback mechanisms to guarantee message delivery even under network failures. Cross-platform consistency was achieved by carefully separating concerns: the Flutter app for parents focused on usability, while the Electron app for administrators prioritized report generation and management features. As part of this, I actively coordinated with another developer on the Electron app, reviewing code and aligning on best practices to keep the desktop solution stable and maintainable.
Technology Used
The system combined multiple technologies into a robust ecosystem. Raspberry Pi with an RFID module served as the entry point for attendance logging. FastAPI and Laravel powered the backend services, while React.js handled the dynamic web dashboard. Flutter and Dart were used to build the mobile app for parents. Electron.js provided a desktop solution for administrators to manage records and generate attendance reports. Semaphore delivered critical SMS notifications, and RabbitMQ ensured reliable communication between services. Supporting technologies like Docker, Hostinger VPS, and GitHub completed the ecosystem.
Skills Learned and Demonstrated
This project strengthened my ability to design end-to-end IoT solutions that integrate hardware, backend, and frontend components. I gained hands-on experience with RFID modules, facial recognition in Python, and queue-based architectures using RabbitMQ. On the software side, I improved my skills in building cross-platform applications with Flutter and Electron, and in developing secure APIs with Laravel and FastAPI. Managing deployment with Docker and VPS hosting also gave me valuable DevOps exposure. Additionally, I practiced code review and collaboration with another developer, ensuring that the Electron desktop app was built with clean, maintainable code. Beyond technical skills, I deepened my ability to manage system integrations and deliver client-commissioned solutions that balance usability, scalability, and security.
Conclusion
The RFID-Based Attendance Monitoring with IoT project successfully redefined how kindergarten attendance is tracked. Parents could now receive real-time updates, while administrators gained powerful tools to monitor and analyze student data. The combination of IoT hardware, robust backend systems, and user-friendly apps created a secure, scalable solution that addressed both convenience and safety. Looking forward, the system could be expanded with features like biometric verification or cloud-based analytics. Overall, this project demonstrated how thoughtful use of modern technologies, combined with collaborative development practices like code review, can deliver meaningful impact in education and childcare.
Gallery
The RFID attendance system generating a detailed PDF report.