A centralized IoT dashboard designed to monitor, analyze, and control a fleet of physical and virtual machines.
The Meridian Grid (TMG) acts as a bridge between the physical world of mechatronics and modern software architecture. It provides real-time visualization of sensor data and remote actuation capabilities, serving as a comprehensive learning platform for full-stack development, containerization, and industrial communication protocols.
graph TD;
Browser["User Browser (localhost:8080)"] -- "Port 8080" --> Nginx["Nginx (Client Container)"];
Nginx -- "Proxy /api" --> Server["Express API (Server Container:3000)"];
Server -- "TCP" --> DB["PostgreSQL (DB Container:5432)"];
Nginx -- "Static Content" --> React["React App"];
- Docker & Docker Compose
- Clone the repository.
- Create a
.envfile in theTheMeridianGrid/directory (refer to.env.exampleif available). - Start the stack:
docker-compose up --build
- Access the application:
- Frontend: http://localhost:8080
- API Status: http://localhost:8080/api/hello
- Initialized Vite/React frontend and Express/TypeScript backend.
- Containerized both services using Docker.
- Orchestrated the stack with Docker Compose and Nginx reverse proxy.
- Established basic client-server communication.
- Conducted requirements gathering and BPA analysis.
- Designed the ERD and semantic data model (AAS/DTDL inspired).
- Implemented Prisma ORM with PostgreSQL.
- Created a modular API architecture (Service-Controller-Router).
- Implemented full CRUD for Asset Management with Zod validation.
- Enabled TimescaleDB and created
telemetryhypertable. - Implemented transactional Telemetry Ingestion Service.
- Built Rules Engine with synchronous evaluation and alert deduplication.
- Verified system with end-to-end Simulation Script.
- Refined architecture with Global Error Handling and PlantUML documentation.
- Implemented Secure Authentication (Argon2id + JWT + HttpOnly Cookies).
- Established Role-Based Access Control (RBAC) with
ADMINISTRATOR,INTEGRATOR,OPERATOR,VIEWERroles. - Built User Management API (CRUD) protected by RBAC.
- Refactored architecture with Centralized Dependency Injection (
AppContainer). - Implemented robust Integration Testing infrastructure with isolated Test Database.
The API is now protected. To access protected endpoints (like Asset Management), you must first login.
Default Credentials:
- Email:
admin@tmg.com - Password:
admin123
Login Request:
POST /api/auth/login
Content-Type: application/json
{
"email": "admin@tmg.com",
"password": "admin123"
}The server will set a token HttpOnly cookie automatically.
- Frontend: React, TypeScript, Vite, Nginx
- Backend: Node.js, Express, TypeScript
- Database: PostgreSQL (TimescaleDB Extension)
- Orchestration: Docker Compose