Architecture & Detailed Implementation
MessMate is organized as a multi-client monorepo managed with NPM Workspaces, decoupling administrative tasks from public displays:
- Super Admin Dashboard (
apps/admin-ui): A Next.js portal enabling platform operators to manage organizations, messes, and subscriptions. - Mess Owner Portal (
apps/app-ui): A Next.js app allowing individual mess owners to configure menus, manage billing, and post notices. - Public Menu & Student App (
apps/menu-ui): A Next.js interface displaying real-time menus for students (adaptive mobile layout) and high-resolution TV displays (optimized for canteens). - Backend API (
backend/): Express.js server providing JWT-based authentication, menu storage, and billing webhooks.
+-----------------------------------+
| NPM Workspaces |
+-----------------------------------+
/ | \ \
/ | \ \
[admin-ui] [app-ui] [menu-ui] [backend]
| | | |
(Super) (Owners) (Students) (API)
Digital Signage & Signage Logic
The premium display interface features intelligent contextual switching based on timezone intervals:
- Meal Auto-Switching: Automatically detects the current hour to render Breakfast, Lunch, Hi-Tea, or Dinner.
- Midnight Logic: Dinner details are locked until 23:59, transitioning smoothly to tomorrow's preview at midnight to prevent confusion.
- Dynamic Flex Layout: Smart grid system that centers food items perfectly regardless of the count.
