M

← Back to Projects
Project 02v1.0.0

University Housekeeping Management System

Role-Based Campus Housekeeping & Facility Compliance Platform

74+
API Endpoints
15
DB Tables
16
Migrations
5
Buildings Covered
4
User Roles
6
AI Features
The Problem

University campuses rely on paper-based cleaning logs and manual checklists. No real-time visibility into which areas have been cleaned, no photographic proof of completion, no centralised complaint tracking, and no data for supply management. Shift handovers are error-prone and admins cannot verify compliance without physically walking every floor.

The Solution

Four-role platform (Admin / Supervisor / Staff / Resident) with tailored dashboards. Supervisors select a building and floor to mark each facility Cleaned (photo required) or Not Cleaned (comment required). Per-washroom digital checklists capture 6 line-items with individual photo uploads. Resident complaints are auto-analyzed by a Python AI sidecar - priority classification, sentiment analysis, response suggestions, predictive maintenance lookahead. An 8-hour facility reset enforces per-shift discipline. Supply levels (soap, tissue, sanitizer) tracked as 0-100% integers per washroom point.

Architecture

Monolith + optional AI sidecar on Render.com: Express server (Node.js 18) handles all 74+ API endpoints across 10 route modules → Knex.js query builder → PostgreSQL 15 on Neon.tech (15 tables, 16 migrations, UUID PKs, JSONB for checklist data) + Redis optional cache layer (30-min TTL for AI results). Python AI microservice called over HTTP with 15-second timeout, degrades gracefully to rule-based keyword matching when unavailable. Two background schedulers run on worker ID 1: facility auto-reset (every 8 hours) and reminder checker (every 60 seconds). Mobile: React Native + Expo WebView wrapper pointing to production URL, built to APK via EAS Build.

Key Features
Facility Cleaning Tracker with Photo Proof

Supervisors see a live grid of all facilities (rooms, washrooms, corridors, pantries, lobbies) per building and floor. Each facility is marked Cleaned (mandatory photo upload) or Not Cleaned (written comment required). All records auto-reset every 8 hours at shift change so each new shift starts from zero.

Per-Washroom Hygiene Checklists

Supervisors submit digital checklists covering 6 line-items per washroom: floor mopping, sink cleaning, dustbin cleared, soap refill, tissue refill, and sanitizer refill. Each item supports an individual photo upload. Completion data is stored as a JSONB object and admins can filter all records by building, floor, and date.

AI-Powered Complaint Management

Residents submit maintenance requests with description and optional photo. The Python AI microservice auto-categorizes the complaint, assigns urgency (urgent / high / medium / low), analyzes sentiment, and generates response templates in three tones. Admins can batch-analyze up to 10 complaints at once. Full lifecycle: pending → in_progress → resolved.

Supply Inventory Tracking

Washroom supply levels for soap, tissue, and sanitizer stored as 0–100% integers per washroom point. Staff update levels during cleaning rounds and the admin dashboard aggregates supply health across all buildings. A separate supply_inventory table tracks stock by item name, quantity, unit, and low-stock threshold.

Staff Work Submission & Approval Workflow

Staff submit work completion records with optional photo evidence, entering a supervisor approval queue. Supervisors approve or reject submissions. A pending-count endpoint gives supervisors an at-a-glance view of outstanding approvals and creates an auditable per-shift work record.

Role-Based Dashboards with Live Stats

Four distinct role views each expose role-filtered data through dedicated dashboard endpoints. The admin dashboard shows cross-building stats: room counts, complaints by status, staff and resident counts, average resolution hours, and AI-generated insights. A public /api/home-stats endpoint serves live counts for the landing screen without authentication.

Tech Stack
Node.js 18+Express 4Knex.js 3JWT Authbcrypt + HelmetWinston LoggerPostgreSQL 15 (Neon)Redis (optional)React NativeExpo + EAS BuildMulter (file uploads)Python AI MicroserviceComplaint ClassifierPredictive MaintenanceRender.comNeon.tech
backendfrontendmldbinframobile