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
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