A safety inspection management system for amusement parks, built with Flask that helps organisations digitise and streamline their daily equipment inspection workflows.
Problem
Many organisations still rely on paper checklists or scattered spreadsheets for equipment inspections. This leads to lost records, missed inspections, and difficulty demonstrating compliance during audits. There was a clear need for a centralized system that could track inspections with proper audit trails while being accessible to frontline workers.
Approach
I chose Flask for its simplicity and rapid development capabilities. The core concept revolves around carousel-groupings of related safety checks for a single carousel. SQLAlchemy was used for database modeling to keep the codebase maintainable. For user management, I implemented three distinct roles to separate concerns between system administration, inspection management, and field work. The option to store photos locally or in S3 came from a need to easy roll out with a ability to scale later.
Features
- Carousel Management: Create groups of safety checks for a single carousel
- Checklist Items: Add items with titles and descriptions for standardised inspections
- Completion Tracking: Record completions with timestamps, notes, and optional photo documentation
- Multiple Completions: Support multiple completions per item per day for shift-based operations
- History & Retirement: Maintain full history with retirement reasons for audit trails
- Role-Based Access: Three tiers (Owner, Admin, Editor) with appropriate permissions
- Storage Flexibility: Local file storage or S3-compatible cloud storage for photos
- REST API: Full programmatic access for integrations
What it offers
ParkInspect gives organisations a structured way to manage equipment inspections with proper documentation and traceability. The role-based access ensures data integrity while allowing frontline workers to perform their duties. Photo documentation provides visual evidence of equipment condition, and the REST API enables integration with existing maintenance systems.
Tech Stack:
- Backend: Python, Flask
- Database: SQLite (SQLAlchemy)
- Frontend: HTML templates with dark/light mode
- Features: Role-based access, picture upload (local/S3), REST API
Repository: git.jimmy-b.se/JimBer110/ParkInspect