Back to Projects
January 2018 - November 2019 Full Stack

Ergonomic Device Management Platform

Full-stack engineer building an IoT device management platform for tracking and managing ergonomic furniture inventory with real-time MQTT communication.

A leading manufacturer of ergonomic furniture, monitor arms, and sit-stand workstations for healthcare and office environments

Project Overview

Built a full-stack web application for managing ergonomic furniture and device inventory. The platform enables tracking of smart sit-stand workstations, monitor arms, and other connected devices through integration with an IoT platform and real-time MQTT communication.

The Product

The Ergotron Device Management platform provides:

  • Device Inventory: Track and manage smart ergonomic devices
  • Organization Management: Multi-tenant hierarchy for enterprise customers
  • User Administration: Role-based access control for different user types
  • Real-Time Monitoring: Live device status via MQTT communication
  • Device Logs: Historical activity and telemetry data

Technical Architecture

Frontend (React/TypeScript)

Modern React application with full type safety:

  • Framework: React 15.4 with TypeScript
  • State Management: Redux with redux-thunk, redux-persist, redux-logger
  • UI Framework: Bootstrap 3 with SASS
  • Build Tools: Webpack with Grunt task runner
  • Type Safety: Comprehensive TypeScript throughout

Backend (Express/TypeScript)

RESTful API with IoT platform integration:

  • Framework: Express.js with TypeScript
  • Database: PostgreSQL with Knex query builder
  • IoT Platform: Xively (Telit) for device management
  • Real-Time: MQTT for device communication
  • Email: SendGrid for notifications
  • Serverless: AWS Lambda for background jobs

Key Contributions

React/TypeScript Frontend Development

Built the React frontend with full TypeScript implementation:

  • Developed device inventory management interface with Redux state management
  • Implemented redux-thunk, redux-persist, and redux-logger for comprehensive state handling
  • Built responsive UI with Bootstrap 3 and SASS
  • Set up Webpack build system with Grunt task runner

Express Backend & IoT Integration

Developed the Express.js backend with IoT platform integration:

  • Integrated Xively (Telit) IoT platform for device management
  • Built PostgreSQL database layer with Knex query builder and migrations
  • Implemented real-time MQTT device communication for telemetry
  • Set up SendGrid for user invitation emails
  • Created AWS Lambda functions for background processing

Multi-Tenant Organization System

Built comprehensive multi-tenant access control:

  • Developed organization hierarchy with nested groups
  • Implemented role-based access control (End Users, Cart Users, Quarantine Users)
  • Created group-level settings and member management
  • Built user invitation and password management flows

Device Simulation Tools

Created CLI tools for development and testing:

  • Built Vorpal-based interactive CLI for device simulation
  • Developed test data generation for device telemetry
  • Created manufacturing tool integration for hardware testing
  • Implemented TimeSeries generator for historical data population

Device Template System

Implemented support for multiple device types:

  • Built device templates for SV5X, HotSwap, and Battery models
  • Created device logs and activity reporting
  • Implemented quarantine capabilities for problematic devices
  • Developed device movement tracking between groups

Key Features

Device Management

Comprehensive device lifecycle management:

  • Create, view, edit, and delete devices
  • Multiple device templates (SV5X, HotSwap, Battery models)
  • Device logs and activity reporting
  • Device organization and movement between groups
  • Quarantine capabilities for problematic devices

Organization Hierarchy

Multi-tenant support for enterprise customers:

  • Organizational hierarchies with nested groups
  • Group creation and administration
  • Group-level settings and configurations
  • Member management within groups

User Management

Role-based access control:

  • User registration and JWT authentication
  • Multiple user roles (End Users, Cart Users, Quarantine Users)
  • User invitations via email
  • Password management and reset flows
  • Group membership tracking

Inventory Operations

Batch and individual device operations:

  • “Cart Users” feature for shared device management
  • Batch operations across multiple devices
  • Trash/inventory organization
  • Device movement between locations

Real-Time Communication

Live device interaction:

  • MQTT protocol for device telemetry
  • Real-time status updates
  • Device command dispatch
  • Activity logging and monitoring

IoT Integration

Xively Platform

Integration with Xively (now Telit) IoT platform:

  • Blueprint API for device templates
  • IDM (Identity Management) for authentication
  • Device provisioning and lifecycle
  • Telemetry data collection

MQTT Communication

Real-time device messaging:

  • Subscribe to device status updates
  • Publish commands to devices
  • Handle connection state changes
  • Process telemetry payloads

API Endpoints

RESTful API structure:

  • /api/devices/:deviceId - Device CRUD operations
  • /api/devices/:deviceId/logs - Device activity logs
  • /api/group/:groupId/invite - User invitations
  • /api/group/:groupId/invitations - Invitation management
  • /api/group/:groupId/users/:endUserId - User operations
  • /api/user/reset-password - Password reset
  • /api/user/change-password - Password management

Development Tools

Device Simulator

CLI tool for testing without physical hardware:

  • Vorpal-based interactive CLI
  • Simulate device behavior and responses
  • Generate test telemetry data
  • Manufacturing tool integration

TimeSeries Generator

Test data generation:

  • Create historical device data
  • Populate development databases
  • Performance testing scenarios

Technologies Deep Dive

The technology choices balanced enterprise requirements with IoT capabilities:

  • TypeScript provided type safety across the full stack, critical for IoT data structures
  • Xively offloaded IoT infrastructure complexity to a specialized platform
  • MQTT enabled lightweight, real-time device communication
  • Knex provided flexible database migrations and query building
  • Redux managed complex device state with predictable updates
  • AWS Lambda handled background processing without dedicated servers

Technologies

React TypeScript Redux Node.js Express.js PostgreSQL MQTT AWS Lambda Bootstrap Knex

Key Highlights

  • Built React/TypeScript frontend with Redux state management for device inventory
  • Developed Express.js backend with Xively IoT platform integration
  • Implemented real-time device communication using MQTT protocol
  • Created multi-tenant organization system with role-based access control
  • Built CLI tools for device simulation and manufacturing testing