A comprehensive, multi-site Computerised Maintenance Management System built for bakery and food production operations. The system manages the full maintenance lifecycle — from problem reporting through work order execution, preventive maintenance scheduling, certifications tracking, and inventory control — across multiple locations with support for internal teams and external contractors. Fully bilingual (English and Polish) with dark mode and granular role-based access control.
The dashboard provides an at-a-glance overview with stat cards for open requests, work orders, overdue items, low stock, and expiring certifications. Role-specific widgets show relevant information to each user type.
Maintenance across multiple bakery and shop sites was managed informally — problems reported by word of mouth, no history of repairs, no way to track parts usage or recurring faults. Equipment breakdowns caused production delays, certifications expired without notice, and there was no visibility into what work was pending, in progress, or overdue. External contractors had no structured communication channel for scheduling inspections.
A purpose-built web application that anyone can use to report a problem — including scanning a QR code on equipment. Supervisors triage requests, create work orders, and assign technicians or contractors. The system handles preventive maintenance scheduling with a visual calendar, tracks certifications with automated email reminders, manages parts inventory with stock validation, and provides a granular permissions matrix for fine-tuned access control.
Requests tracked through their full lifecycle with priority colour-coding and status filter pills.
Work order execution with task checklists, parts usage (with stock validation), time logging, and file attachments.
FullCalendar-powered monthly view with colour-coded PM events: green (upcoming), blue (eligible for early completion), orange (due today), red (overdue).
PM task detail showing fixed/floating schedule, checklist template, counter-based triggers, and completion history with on-time tracking.
Full asset register with 136 real assets imported from QRMaint. Categories, criticality levels, and maintenance history per asset.
Parts inventory with real-time stock tracking, low-stock highlighting, progress bars, and supplier links.
Asset detail page with custom fields, compatible parts, work order history, and document attachments including PDF manuals.
Reorder report grouped by supplier with contact details and "Order Online" buttons linking to supplier shops. Emailable as PDF.
Track inspections, audits, licences, and insurance with expiry dates and status badges. Filter by active, expiring, or expired.
Three-tier automated email reminders (30, 14, 3 days before expiry). Last reminder marked URGENT. Renewal workflow resets all reminders.
Visual permissions matrix — 13 modules with CRUD toggles across 5 roles. Per-user overrides allow granting or denying individual permissions.
User management with role badges, team assignments, and "Login as" impersonation for testing permissions without the user's password.
Address book for email recipients with category filters. Used for certification reminders and emailing PDF reports.
Full-stack development — database architecture (22 models with complex relationships), backend logic (13 Flask blueprints, 151 routes), frontend interface (Bootstrap 5 with dark mode), PM scheduling engine, certification reminder system, email integration, PDF generation, QR code system, and deployment. Built with a focus on mobile usability for non-technical staff and operational portability across hosting environments.
Designing a system that serves two very different user groups — non-technical staff who just need to report a problem quickly, and maintenance professionals who need detailed execution tools — required careful progressive disclosure. The multi-site architecture with shared parts inventory, cross-site contractor access, and per-site custom fields added complexity to the data model. Building a granular permissions system that coexists with legacy role-based decorators while allowing per-user overrides required a layered approach with per-request caching. The certification reminder engine with three urgency levels, customisable email templates, and automated CLI scheduling demonstrated real-world operational automation.
A production-ready maintenance system managing 136 real assets across 4 sites with 22 database models, full bilingual support, and automated compliance tracking. The system demonstrates multi-tenant architecture, granular RBAC, real-time inventory control, automated email workflows, and modern UI patterns (dark mode, AJAX interactions, searchable selectors). Currently in active use for bakery maintenance operations.