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.
- Created
tmg-sharednpm workspace for isomorphic Types/Schemas. - Established Frontend Architecture (React Router, Layouts, AuthContext).
- Built Composable Dashboard Engine using
react-grid-layoutand Registry Pattern. - Implemented Asset Management UI (DataGrid + Create Modal) connecting to API.
- Standardized UI with Material-UI (MUI) Theme.
- Implemented Dashboard Layout Persistence (Backend/Frontend).
- Integrated React Query (TanStack Query) for efficient server-state management.
- Added Global Error Handling (ErrorBoundary + Notification Context + Global API Catching).
- Optimized performance via Route-based Code Splitting and Loading Fallbacks.
- Created ISA-101 Compliant High-Performance HMI (Operator View Prototype).
- Hardened Docker configuration for monorepo workspace compatibility.
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