This is a web app developed with Flask for managing workers, projects (cantieri), and photo of receipts for the purchase of construction materials. It includes Firebase-based authentication, worker task management, photo management, and Excel report generation. The app uses Firebase Realtime Database and Firebase Storage to handle and store data related to workers, projects, and work activities.
-
Firebase Authentication:
- Login and session management using Firebase Authentication.
-
Worker Management:
- Create new workers and assign them a specific role.
- Delete workers with automatic handling of accounts in Firebase Authentication.
- View all workers in the system.
-
Construction site Management:
- Create and delete Construction site.
- Handle Construction site names by replacing unsupported characters for Firebase.
-
Photo of the purchased materials Management:
- View and download photos of receipts for the purchase of construction materials captured for specific periods.
- Create ZIP files containing photos taken during a specified time frame.
-
Task Management:
- Record workers' activities, including project, work description, hours worked, etc.
- Edit and delete previously recorded activities.
-
Excel Report Generation:
- Generate Excel reports for accounting, detailed activity reports, and payrolls.
-
Worker Performance Charts:
- Display charts showing the number of photo of the purchased materials taken each month using Plotly.
- Bar charts are labeled with Italian month names, and the Y-axis displays "Photo Count".
Before running the app, ensure you have the following:
-
Python 3.x
-
Flask
-
Firebase Admin SDK
-
Plotly
-
XlsxWriter
-
dotenv
-
Python 3.x
-
Flask
-
Firebase Admin SDK
-
Plotly
-
XlsxWriter
-
dotenv