PropCare is a full-stack property-maintenance platform built around three roles — tenants raise maintenance tickets, managers triage and assign them, and technicians work and close them — with role-gated status transitions, a per-ticket activity audit trail and in-app notifications throughout. It's a modular Express API (auth, users, tickets, activity, notifications) over PostgreSQL with Prisma, a React + Vite SPA, JWT role-based access, and Multer-backed photo uploads for maintenance evidence.
Highlights
Enforced a strict ticket workflow — OPEN → ASSIGNED → IN_PROGRESS → DONE — with role-based permissions for tenants, managers, and technicians.
Wrote 19 integration tests with Jest and Supertest covering authentication, ticket workflows, and permission boundaries.
Built a per-ticket activity audit trail and an in-app notification system, so requests never get lost in texts.
Structured the backend as focused modules (auth, users, tickets, activity, notifications) on a type-safe Prisma schema with migrations and a demo seeder.
Added JWT role-based access control, Zod request validation, structured API errors, and Multer photo uploads for maintenance evidence.