Registration Portal – Peraverse Crowd Management System
A complete RFID-based visitor registration and analytics platform
Team
- E/21/206, Paarkavi Jeyatheeswaran — email
- E/21/342, Saabith A.M.M — email
- E/21/375, Shagiththiah Kirupakaran — email
- E/21/386, Sivasuthan Jeganathan — email
Table of Contents
- Introduction
- Solution & Impact
- Features & Architecture
- Installation & Running
- Deployment
- Future Improvements
- Links
Introduction
The Registration Portal is a critical component of the Peraverse Crowd Management System, built to handle secure user authentication, RFID visitor onboarding, tag linking, and real-time analytics for large-scale exhibitions.
Designed for speed and scalability, the portal manages:
- School visitor groups
- University groups
- General visitors
- Multi-portal workflows (Portal 1, 2, 3)
It provides a smooth onboarding experience, enabling exhibition staff to manage thousands of visitors with accuracy and efficiency.
Solution & Impact
The system solves several real-world challenges:
✔ Faster onboarding
Batch registration + RFID linking drastically reduce waiting time.
✔ Accurate tracking
Every RFID tap is logged, matched, and validated before linking.
✔ Real-time admin visibility
Dashboards show visitor types, counts, and tag status instantly.
✔ High reliability
Cloud-hosted PostgreSQL + automated tag release ensures data consistency.
✔ Modular design
Each subsystem (auth, registration, tags, admin) is decoupled and scalable.
Features & Architecture
🔐 Authentication & Security
- JWT authentication
- PBKDF2 password hashing with salt
- Role-based access (staff / admin)
- Secure session maintenance
🧾 Registration Workflows
Individual Registration
- Province → District → Personal details
- Automatic RFID assignment
Batch Registration
- Supports School, University & General groups
- Uses SL datasets stored in
/data - RFID tap assigns each member
🏷 RFID Tag Management
- Link/unlink via logs
- EXITOUT watcher runs every 4 seconds
- Prevents duplicate tag assignment
- Ensures database consistency
📊 Admin Dashboard
- Visitor statistics (school/university/general)
- Tag availability
- Real-time analytics
- Zone & time-based graphs
Architecture Overview
High-Level System
FRONTEND
-----------------------
| React + Vite |
-----------------------
|
| HTTP (Axios)
V
BACKEND API
-----------------------
| Node.js + Express |
| REST Endpoints |
-----------------------
|
| SQL Queries (pg)
V
DATABASE
-----------------------
| PostgreSQL (Neon) |
| logs / tags / reg |
-----------------------
Additional Components:
- RFID Tap UI / Manual Tester —> Sends tag events to Backend
- Background Watcher ————–> Processes EXITOUT + tag release
Technology Stack
| Layer | Technologies |
|---|---|
| Frontend | React, Vite, Axios |
| Backend | Node.js, Express, JWT, PBKDF2 |
| Database | PostgreSQL (Neon Cloud) |
| Tools | Nodemon, pg.Pool, WebSocket |
Key Architectural Components
Frontend (React + Vite)
- Handles UI, forms, batch uploads, manual RFID testing
- Communicates with backend via Axios (HTTP + JSON)
- Portal selection system stored in session
- Modular components for maintainability
Backend (Express Services)
- Authentication service (JWT + PBKDF2)
- Registration service (individual + batch)
- Tag linking service (REGISTER/EXITOUT logic)
- Admin analytics service
- WebSocket service for RFID simulation
Database (PostgreSQL – Neon Cloud)
- Tables:
users,registration,members,logs,rfid_cards - Indexed for performance (tag_id, portal_id, status)
- Ensures consistency via SQL transactions
RFID Tag Lifecycle
[REGISTER Log] → [Check if Tag is Free] → [Link to Member] → [Active Tag]
EXITOUT Event Detected
↓
Automatic Tag Release
↓
Tag Returns to "available"
Data Flow Summary
Frontend → sends request → Backend → validates + executes SQL → returns JSON → UI