UNIVERSITY OF FRONTIER TECHNOLOGY, BANGLADESH

Course Code and Name: IRE 460, Mobile Platform for IoT Devices Sessional

Submitted by:

MD Naimur Rashid (2101042)
Sourav Chakraborty (2101031)

Submitted to:

Md. Rafiqul Islam
Lecturer, IRE

TapIn — Smart Attendance System

A full-stack IoT and Flutter ecosystem for seamless university attendance.

Student Dashboard

System Architecture

Macro Ecosystem Workflow

IoT Hardware

NodeMCU ESP8266
+ RC522 RFID Reader

Scans 13.56 MHz physical
cards. Sends HTTP POST
to Supabase.
Backend Cloud

Supabase Postgres
+ Edge Functions

Validates user, checks
schedule, inserts
attendance records.
Client Application

Flutter cross-platform
mobile app.

Real-time UI for Students
& Admins via
Supabase streams.

IoT Layer Deep-Dive

Hardware Node: Internal Logic

NodeMCU + RC522 Circuit Diagram
RC522 → NodeMCU Pins
RC522 GPIO Board
SDA (SS) GPIO 15 D8
RST GPIO 0 D3
MOSI GPIO 13 D7
MISO GPIO 12 D6
SCK GPIO 14 D5
GND GND GND
3.3V 3.3V 3V3
Reads 13.56 MHz RFID card UID
e.g., EBACC836
via SPI protocol.
3-Second Cooldown!
Prevents double-tap entries on the
same card.
Sends HTTP POST to Supabase Edge
Function with the
scanned UID.
Wait for Card
Read 13.56 MHz UID
(e.g., EBACC836)
HTTP POST
to Supabase
3-Second
Cooldown
Prevents
double-tapping

Backend Layer

Backend Cloud: Database & Logic

Database Schema
users
(Core Profiles)
subjects
(Academic Courses)
class_schedules
(Timetables)
attendance_logs
(Core Records)
leave_applications
(Requests)
The Edge Function
{"rfid_uid": "<CARD_UID>"}
↳ Looks up student
↳ Checks schedule
↳ Inserts log securely
Edge Function

Receives RFID UID
via HTTP POST:
{"rfid_uid":"EBACC836"}
Validates UID →
checks active schedule
→ inserts into
'attendance_logs'
Row Level Security
Students only see
their own records.
Admins see all.

Authentication Flow

Login Screen

App Screen

01 / 11

Summary

Key Design Decisions

90% Threshold

Minimum attendance
per subject = full
30/30 marks.
Approved leave = Present.
3-Second Cooldown

NodeMCU ignores same
card within 3 seconds
to prevent duplicate
DB inserts.
Intelligent Grouping

Last 3 digits of
University ID auto-assigns
to Lab G1 (≤25)
or G2 (>25).
Dark / Light Mode

Theme persisted via
shared_preferences
as single source
of truth.
Row Level Security

Supabase RLS ensures
students only view
their own
attendance records.
RFID Required

Admin must link
physical RFID UID
to student profile
before taps work.
TapIn Icon

Thank You!

Sourav Chakraborty

Sourav Chakraborty