Overview
A comprehensive fire safety inspection platform with a Flutter mobile app for field technicians and a Flask API backend. The system manages buildings, fire alarm systems, individual device testing, inspection reports, and service tickets — all with offline-first architecture so technicians can work in basements and mechanical rooms with no cell signal.
The Challenge
Fire inspection companies deal with a paper-heavy workflow. Technicians visit buildings, test dozens of devices (pull stations, smoke detectors, sprinkler flow switches), record results on paper forms, then someone back at the office transcribes everything into a report. It is slow, error-prone, and makes it nearly impossible to track compliance history across hundreds of buildings.
What I Built
- Flutter mobile app with offline-first SQLite storage — technicians capture inspection data even without connectivity, and it syncs automatically when they are back online
- Flask REST API backend with PostgreSQL, JWT authentication, and role-based access control
- Device barcode scanning for quick identification of fire alarm components
- Battery voltage testing capture with pass/fail thresholds
- QR code generation for public access to building inspection status
- ESP32 hardware integration for automated sensor data capture
- Celery task queue for PDF report generation and email delivery
Tech Stack
Flutter 3.x, Flask 3.0, PostgreSQL, SQLAlchemy, JWT, Celery/Redis, ESP32, SQLite (mobile), Provider state management
