All projects
Full Stack case study

Accellum

An IoT operations platform that turns MQTT card and gateway signals into device health, checkpoints, access history, and live dashboards.

Accellum original reports and statistics dashboard UI
Original Accellum codebase UI running locally with fictional attendance and building seed data.

Project introduction

Accellum is an IoT access and attendance operations platform. Bluetooth cards and gateway devices publish signals that are translated into device status, checkpoints, movement, and auditable access history.

What I worked on

  • Built MQTT ingestion for device alive, gateway status, and checkpoint topics
  • Implemented WebSocket-driven dashboard updates alongside durable PostgreSQL records
  • Developed user, card, device, building, access-log, and role-permission workflows
  • Added validated Excel import/export for operational data
  • Supported TypeORM migrations, Docker services, Mosquitto, and MinIO-compatible storage

Architecture

NestJS subscribers validate MQTT payloads, resolve device and card identities, persist normalized records through TypeORM, and broadcast relevant updates over Socket.IO. The Nuxt/Vuetify admin provides role-aware monitoring and management while historical records remain searchable and exportable.

Outcome

The system turns low-level device traffic into a dashboard administrators can monitor and audit. Portfolio captures use fictional data and expose no real individual, facility, or access-event records.

Device-to-application flow

How a card detection becomes attendance data

BLE → MQTT → WebSocket

The card only broadcasts its identity. The gateway turns that radio observation into an application event; the backend then validates, interprets, stores, and publishes the result to operators.

Physical devicesEvent transportApplication logicDataUser interface
Check-in / check-out logic

Two detection modes, two session strategies

Monitor mode models presence from repeated signals and checks out on timeout. Checkpoint mode models an entry/exit session with a five-second debounce and explicit room-transfer handling.

MonitorBest for continuous room presence and occupancy counts.