MS
Back to all projects
Hospitality · Property Technology20262 Weeks Build

Hotel & Unit Management ERP

Centralized cloud ERP for hotel and property operations — projects, units, staff, vendors, and maintenance workflows on one platform.

Client EntityIndependent Product (Hospitality Operations)
My RoleFull-Stack Engineer & UI Architect
Delivery Time2 Weeks Build
Tech StackNext.js, TypeScript + 5 more
Hotel & Unit Management ERP Preview Banner
01 // The Problem

Friction, Inefficiency & System Barriers

Maintenance requests across hotel properties were tracked informally — issues got lost between shifts, nobody could prove completed work, and managers had zero visibility into resolution times or worker load.

02 // My Approach & Decisions

Architectural & UX Decisions

Designed a strict role-based system (Admin, Sub-admin, Manager, Worker) with a formal issue lifecycle — Open → In Progress → Resolved / Rejected — plus priority levels, worker project assignments, and mandatory before/after/verification photo proof on every ticket.

03 // Technical Depth

Code Moment: Engineered Core

Guarded Issue Status Transitions
typescript
1const ISSUE_TRANSITIONS: Record<IssueStatus, IssueStatus[]> = {
2 OPEN: ['IN_PROGRESS', 'REJECTED'],
3 IN_PROGRESS: ['RESOLVED', 'REJECTED'],
4 REJECTED: ['OPEN'],
5 RESOLVED: [],
6};
7
8export function canTransition(from: IssueStatus, to: IssueStatus): boolean {
9 return ISSUE_TRANSITIONS[from].includes(to);
10}
Maintenance tickets move through a strict lifecycle — the transition map makes illegal status jumps impossible, keeping every work order auditable.
04 // Measurable Results

Verified Production Benchmarks

4User Roles
4 StatesIssue Lifecycle
3Proof Stages
ZodForm Validation

Key Capabilities Delivered

  • Role-based workspaces for Admin, Sub-admin, Manager, and Worker
  • Maintenance issue lifecycle: Open → In Progress → Resolved / Rejected, with priority levels
  • Before/after/verification photo proof attached to every resolved ticket
  • Worker project assignments, operational dashboards, and resolution analytics

Full Technology Ecosystem

Next.jsTypeScriptTailwind CSSshadcn/uiZustandZodRecharts
Hire Saad