Safety Pro Edition
Universal safety management system for any industry (manufacturing, offices, construction, logistics, etc.).
Overview
The Safety Pro Edition is a standalone safety management system that works independently of logistics and warehouse features. It provides comprehensive incident reporting, checklist management, training tracking, and compliance monitoring.
Features
1. Incident Center
Universal incident reporting and management system.
Key Features:
- Report incidents with multiple categories (injury, near_miss, hazard, property_damage, chemical, haccp, hygiene, machine_failure)
- Severity levels: low, medium, high, critical
- Free-text location support (not tied to zones)
- Optional zone integration for warehouse tenants
- Attachment support (images, documents)
- Action item tracking with due dates
- Status management (open, in_progress, done)
Access:
- Workers/Drivers: Can report incidents
- Safety Officers/Admins: Full access to all incidents and actions
2. Checklist Designer
Create and manage safety checklists for various categories.
Categories:
- Hygiene
- PPE (Personal Protective Equipment)
- Machine Check
- Vehicle Check
- Construction Site
- Office Safety
Features:
- Create custom checklists with multiple questions
- Mark questions as required/optional
- Reorder questions
- Category-based organization
Access:
- Safety Officers/Admins: Can create and manage checklists
- All users: Can view available checklists
3. Checklist Execution
Mobile-friendly checklist execution for workers.
Features:
- Simple Yes/No/N/A answer options
- Automatic score calculation
- Mobile-optimized interface
- Real-time submission
- Completion tracking
Access:
- All users: Can execute checklists
4. Safety Trainings
Training management and completion tracking.
Training Types:
- Unterweisung: Safety briefings
- Schulung: Training sessions
- E-Learning: Online training modules
Features:
- Training content management
- Digital signature support
- Completion tracking
- User progress monitoring
Access:
- Safety Officers/Admins: Can create and manage trainings
- All users: Can view and complete trainings
5. Compliance Dashboard
KPI dashboard for safety compliance metrics.
Metrics:
- Open incidents count
- Critical incidents count
- Overdue actions count
- Checklist compliance percentage
- Training completion percentage
Features:
- Visual charts and graphs
- Incident category distribution
- Export to PDF (coming soon)
Access:
- Safety Officers/Admins: Full access
Roles & Permissions
Safety Officer (Sicherheitsbeauftragter)
Permissions:
- Full control over Safety module
- Create and manage checklists
- Manage incidents and actions
- Create and manage trainings
- View compliance dashboard
Admin
Permissions:
- Full access to all safety features
- Same as Safety Officer
Worker
Permissions:
- Report incidents
- Complete checklists
- Complete trainings (Unterweisungen)
- View own incident reports
Driver
Permissions:
- Report incidents
- View safety information
- Access Driver Safety Dashboard
- Complete assigned checklists (vehicle, PPE)
- View safety training videos
- View safety alerts
- View own incident history
Worker & Driver Safety Dashboards
Driver Safety Dashboard
Location: /driver/safety
Features:
- Report Incident: Quick incident reporting interface
- My Checklists: View and complete assigned safety checklists
- Vehicle checks (daily inspections)
- PPE (Personal Protective Equipment) checks
- Forklift safety checks
- Safety Trainings: Access training videos and materials
- Safety Alerts: View alerts for dangerous zones or situations
- Incident History: View own reported incidents and their status
Access:
- Available to users with
driverrole - Minimal, focused interface optimized for mobile use
- No admin-only features or analytics
Worker Safety Dashboard
Location: /worker/safety
Features:
- All Driver Features (see above) plus:
- Report Hazards: Report potential hazards or unsafe conditions
- Safety Walks: Execute assigned safety walk tasks and inspections
- Corrective Actions: View and follow corrective actions assigned by admin
- Zone Documentation: Access zone-specific safety documentation
- Training Quizzes: Take training quizzes and assessments
Access:
- Available to users with
workerrole - Extended interface with additional worker-specific features
- No admin-only features or analytics
Role Matrix
| Feature | Driver | Worker | Admin |
|---|---|---|---|
| Report Incident | ✅ | ✅ | ✅ |
| View Checklists | ✅ (assigned only) | ✅ (all) | ✅ (all) |
| Complete Checklists | ✅ | ✅ | ✅ |
| View Trainings | ✅ | ✅ | ✅ |
| View Alerts | ✅ | ✅ | ✅ |
| View Own Incidents | ✅ | ✅ | ✅ |
| Report Hazards | ❌ | ✅ | ✅ |
| Execute Safety Walks | ❌ | ✅ | ✅ |
| View Corrective Actions | ❌ | ✅ | ✅ |
| Zone Documentation | ❌ | ✅ | ✅ |
| Training Quizzes | ❌ | ✅ | ✅ |
| Full Admin Access | ❌ | ❌ | ✅ |
Language Management
User Language Preferences
Each user can select their preferred language independently. The language preference is stored in the profiles.language column.
Supported Languages:
de(Deutsch / German) - Defaulten(English)bg(Български / Bulgarian)
Language Detection Priority:
- URL prefix (e.g.,
/de/,/en/,/bg/) - User preference (
profiles.language) - Tenant default (
tenants.default_language) - Browser language
- Fallback to
de(German)
Language Switcher:
- Available in user header area (compact icon + dropdown)
- Options:
Deutsch,English,Български - Saves choice instantly (optimistic update)
- Re-renders dashboard without page reload
- Preference persists across sessions
Storage:
- User language:
profiles.language(text, CHECK constraint: 'de'|'en'|'bg') - Tenant default:
tenants.default_language(optional) - Migration:
20250125000000_add_user_language_preference.sql
API:
getUserLanguage(): Get user's language preferenceupdateUserLanguage(language): Update user's language preferencegetTenantLanguage(): Get tenant's default languagedetectLanguage(): Detect language using priority chain
Edition Mapping
Safety Pro Edition
Available Modules:
- Safety module
- System Settings (basic)
Use Case:
- Standalone safety management for any industry
- No logistics/warehouse features required
Enterprise Edition
Available Modules:
- All modules including Safety Pro features
Use Case:
- Full-featured system with safety management
Pro Edition
Available Modules:
- Safety module (basic features)
- Other logistics modules
Use Case:
- Safety features alongside logistics operations
Database Schema
Tables
safety_incidents
id: UUID (Primary Key)tenant_id: UUID (Foreign Key to tenants)reported_by: UUID (Foreign Key to profiles)category: text (injury, near_miss, hazard, property_damage, chemical, haccp, hygiene, machine_failure)severity: text (low, medium, high, critical)description: textlocation: text (free text, universal)zone_id: UUID (optional, nullable for non-warehouse tenants)attachments: text[] (array of URLs)created_at: timestampupdated_at: timestamp
safety_actions
id: UUID (Primary Key)incident_id: UUID (Foreign Key to safety_incidents)assigned_to: UUID (Foreign Key to profiles, nullable)action: textdue_date: date (nullable)status: text (open, in_progress, done)completed_at: timestamp (nullable)created_at: timestampupdated_at: timestamp
safety_checklists
id: UUID (Primary Key)tenant_id: UUID (Foreign Key to tenants)name: textcategory: text (hygiene, ppe, machine_check, vehicle_check, construction_site, office_safety)created_by: UUID (Foreign Key to profiles)created_at: timestampupdated_at: timestamp
safety_checklist_items
id: UUID (Primary Key)checklist_id: UUID (Foreign Key to safety_checklists)question: textrequired: boolean (default: true)sort_order: intcreated_at: timestamp
safety_checklist_submissions
id: UUID (Primary Key)checklist_id: UUID (Foreign Key to safety_checklists)submitted_by: UUID (Foreign Key to profiles)result: jsonb (answers: { "item_id": "yes|no|na" })score: int (percentage)created_at: timestamp
safety_trainings
id: UUID (Primary Key)tenant_id: UUID (Foreign Key to tenants)title: textdescription: text (nullable)type: text (unterweisung, schulung, e-learning)content_url: text (nullable)created_at: timestampupdated_at: timestamp
safety_training_completion
id: UUID (Primary Key)training_id: UUID (Foreign Key to safety_trainings)user_id: UUID (Foreign Key to profiles)completed_at: timestampsignature_url: text (nullable)- Unique constraint on (training_id, user_id)
Row-Level Security (RLS)
All safety tables have RLS enabled with the following policies:
Tenant Isolation
- Users can only see data from their own tenant
- Super-admins can see all tenant data
Role-Based Access
- Safety Officers/Admins: Full CRUD access
- Workers: Can create incidents, submit checklists, complete trainings
- Drivers: Can create incidents (read-only for other data)
API Services
Incident Service
reportSafetyIncident(): Report new incidentgetSafetyIncidents(): Get all incidents (with filters)getSafetyIncidentById(): Get incident detailscreateSafetyAction(): Create action itemupdateSafetyAction(): Update action status
Checklist Service
createSafetyChecklist(): Create new checklistgetSafetyChecklists(): Get all checklistsgetSafetyChecklistById(): Get checklist detailssubmitSafetyChecklist(): Submit completed checklistgetSafetyChecklistSubmissions(): Get submission history
Training Service
createSafetyTraining(): Create new traininggetSafetyTrainings(): Get all trainingsgetSafetyTrainingById(): Get training detailscompleteSafetyTraining(): Mark training as completedgetSafetyTrainingCompletions(): Get completion recordshasCompletedTraining(): Check if user completed training
Mobile Usage
Checklist Execution
- Fully mobile-optimized interface
- Touch-friendly buttons
- Offline capability (coming soon)
Incident Reporting
- Camera integration for attachments
- Quick reporting workflow
- Location capture
Training Completion
- Digital signature support
- Mobile-friendly content viewing
Integration
Optional Zone Integration
- If warehouse modules exist, incidents can optionally reference zones
zone_idfield is nullable for universal support- Non-warehouse tenants use free-text
locationfield
Edition Gating
All safety features are protected by FeatureGate component:
<FeatureGate module="safety">
<SafetyComponent />
</FeatureGate>Best Practices
- Regular Checklist Execution: Encourage daily/weekly checklist completion
- Timely Incident Reporting: Report incidents immediately
- Action Follow-up: Monitor and complete action items before due dates
- Training Compliance: Ensure all users complete required trainings
- Compliance Monitoring: Regularly review compliance dashboard
Troubleshooting
Module Not Available
- Check tenant edition assignment
- Verify
safety_proorenterpriseedition is assigned - Contact super-admin for edition upgrade
Permission Denied
- Verify user role (safety_officer, admin, worker, driver)
- Check RLS policies
- Ensure user is assigned to correct tenant
Checklist Submission Fails
- Verify all required questions are answered
- Check network connection
- Ensure checklist is still active
Support
For issues or questions:
- Check this documentation
- Review RLS policies
- Contact system administrator
- Check edition assignment
Future Enhancements
- PDF export for compliance reports
- Email notifications for overdue actions
- Mobile app (PWA)
- Offline checklist execution
- Advanced analytics and reporting
- Integration with external safety systems