Yanma Maintenance Reports
Monthly maintenance paperwork for a building's CCTV and fire-alarm systems, from photos per floor to signed handovers and attendance sheets, generated instead of typed.
Under its YANMA maintenance contract, TAM looks after a building's safety and security systems floor by floor. Every month the client expects a stack of documents: photos of each system on each floor, handover reports with inspection checklists, service records, and attendance sheets for the on-site engineers, all in fixed formats.
This app is where that month's work is recorded, and where the documents come from. Engineers upload photos against a floor and a device; supervisors check them off; and the finished Word reports and Excel sheets are generated from templates in one click.
What a month is made of
Documentation periods
Each month is a period that moves from draft to review to completed, holding photos for every device on every floor.
Handovers
Monthly device handovers, each with floor inspections: date, time window, supervisor and a checklist of items with quantities, ticks and notes.
Service records
Dated service visits listing the devices serviced, drafted and then finalised.
Attendance
Attendance lists for each on-site engineer over a date range, approved by a supervisor and exported to Excel.
Templates per system
Every system (the CCTV, the fire alarm and so on) carries its own Word templates: one for the monthly documentation and one for handovers, uploaded from the app. docxtemplater fills them with the period's data and drops each floor's photos in at the right size, so a new system or a changed format is a template upload, not a code change. Floors and devices can each be configured with their own titles and descriptions, and attendance sheets are written with ExcelJS.
At a glance
5
Roles: admin, on-site engineer, supervisor, technician, guest
17
Data models, one Prisma file each
2
Generated formats: Word reports and Excel sheets
Built with
- Next.js 16
- TypeScript
- Prisma (multi-file schema)
- PostgreSQL
- Clerk
- docxtemplater
- ExcelJS
- shadcn/ui
- React Hook Form
- Zod
Related Work
