Skip to Content
Support Palestine 🍉  ⬩  Know what's happening
ProjectsTaptag

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

  1. 🗃️ Download APK for Android ~v1.4.0

  2. YouTube: Trailer v1.4.1

  1. Open Google Drive folder to view all associated files and source.

  2. Open presentation in Google Slides.

  1. Open GitHub Repository source for this project.
  1. Open Postman collection for API testing.

  2. Open report in Google Docs.

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 PinESP32 Pin
SDA (SS)D5
SCKD18
MOSID23
MISOD19
IRQNot used
GNDGND
RSTD22
3.3V3.3V

Setup & Installation

ESP32 Firmware

  1. Install required libraries: WiFi, WebSocketsServer, MFRC522, AESLib, ArduinoJson.
  2. Upload .ino firmware using Arduino IDE.
  3. Configure Wi-Fi SSID and password or run in AP mode.
  4. 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 user
  • POST /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