TapTag is a full-stack, real-time RFID-based attendance management system built with ESP32, Flutter, and Express.js. Designed for seamless wireless authentication, analytics, and centralized logs using WebSockets and MongoDB.
Actions
Features
- RFID-Based Authentication: Register and log attendance using RFID cards and tags.
- ESP32 + RC522: Microcontroller reads UID and encrypts using AES-256 before broadcasting over Wi-Fi.
- WebSocket Integration: Real-time encrypted UID transmission to frontend app.
- Wi-Fi Hotspot Mode: Reader runs a self-hosted access point.
- Flutter App: Displays attendance logs, user data, and analytics.
- Backend in Express.js: Built using TypeScript, connected to MongoDB Atlas via Mongoose.
- RESTful API & WebSocket: Secured with rate limiting and served over Vercel with HTTPS.
Project Structure
arduino/
- ESP32 firmware with RFID, AES encryption, and WebSocket transmission.flutter/
- Cross-platform mobile and web app for admin view.express/
- RESTful API with JWT auth, user, tag, and attendance routes.
Hardware Requirements
- ESP32 Dev Board
- RFID-RC522 Module
- RFID Cards/Tags
- 5V Power Supply
- Jumper Wires, Optional PCB
Software Requirements
- Arduino IDE (with ESP32 board support)
- Node.js & npm
- Flutter SDK
- MongoDB Atlas
- Postman (API testing)
Wiring Diagram
RFID RC522 Pin | ESP32 Pin |
---|---|
SDA (SS) | D5 |
SCK | D18 |
MOSI | D23 |
MISO | D19 |
IRQ | Not used |
GND | GND |
RST | D22 |
3.3V | 3.3V |
Setup & Installation
ESP32 Firmware
- Install required libraries:
WiFi
,WebSocketsServer
,MFRC522
,AESLib
,ArduinoJson
. - Upload
.ino
firmware using Arduino IDE. - Configure Wi-Fi SSID and password or run in AP mode.
- Firmware encrypts UID and broadcasts it via WebSocket on
port 81
.
Express Backend
cd express
npm install
# Set up .env with MONGODB_URI and JWT_SECRET
npm run dev
Hosted live at: https://api.taptag.s-m-quadri.me
Flutter App
cd flutter
flutter pub get
flutter run
Currently available for Web and Windows. Android version in development.
Backend & API
- Base URL:
https://api.taptag.s-m-quadri.me
- WebSocket Local URL:
ws://192.168.4.1:81
- Full Postman Docs: TapTag API Docs
API Endpoints
POST /auth/register
- Register new userPOST /auth/login
- JWT-based login- CRUD for
/user
,/reader
,/tag
,/attendance
Security & Rate Limiting
- TLS via Let’s Encrypt
- Rate limit: 15 req/min (general), 6 req/2min (auth)
- AES-256 encryption for UID transfer
Contributors & Acknowledgements
Finance & Presentation
- Pawan Ramesh (MT24F11F001)
- Yashashree S. Sawargaonkar (MT24F11F004)
- Shubham Madane (MT24F05F007)
Full Stack Development
- Syed Minnatullah Quadri (MT24F05F001)
Guide
- Dr. Sushama Agrawal, Associate Professor, E&TC Department, GCOE, Sambhajinagar
For questions, contact: dev.smq@gmail.com
💡
Some of my latest posts on LinkedIn
Last updated on