Video Demo: https://youtu.be/bcZUduyOhNI
Checklist is a Flutter app that allows the user to create checklist templates, activate the checklists, complete the checklists, see after who did the checklist, which tasks were all completed and how long it took.
I had this idea when I saw a documentary on surgical mistakes and them being drastically reduced by the usage of checklists. I tried to create a minimal MVP version of a digital checklist system for a hospital.
The app has three main sections:
-
Templates: This is where you create and store your checklist templates. Think of these like blank forms that you can use again and again. Each template has a title and a list of steps that need to be completed.
-
Active: When you want to use a template, you "activate" it. In the Active section, you can see all the checklists that are currently being worked on. You can check off items as you complete them, and see how long the process has been running.
-
Archive: After a checklist is completed, it moves to the Archive. Here you can see the full history - who completed it, how long it took, which steps were checked off, and when each step was completed.
I used Flutter because it lets me create apps that work on both iPhone and Android. Here are the main files I created and what they do:
checklist_model.dart: This is the brain of the app. It handles all the data about checklists, how they're saved, and how they're loaded. I decided to use SharedPreferences to store the data locally on the phone instead of a server to keep things simple for this MVP.
templates_screen.dart: Shows all your templates and lets you create new onesactive_checklists_screen.dart: Shows checklists that are currently being worked onarchived_checklists_screen.dart: Shows completed checklistscreate_checklist_screen.dart: The screen where you make new templateschecklist_screen.dart: Where you actually work through a checklist
date_time_utils.dart: Helps format dates and times in a nice waydialog_utils.dart: Handles all the pop-up messages and confirmations
-
Local Storage: I chose to store everything on the phone using SharedPreferences instead of a server. This makes the app simpler and means it works without internet, which could be important in a hospital setting.
-
Three-Tab Design: I split the app into Templates, Active, and Archive because this matches how people actually use checklists - you create a template once, use it many times, and want to keep a record of completed checklists.
-
Flexible Completion: I made it possible to complete a checklist even if not every item is checked. In real life, sometimes certain steps might not apply, or might be handled differently. The app still shows which steps were and weren't completed in the archive.
-
Timestamps: I added timestamps for when each step is completed and how long the whole process takes. This helps track efficiency and could help identify where processes are getting stuck.
Building this app taught me a lot about state management in Flutter (using Provider), working with dates and times, and designing a user-friendly interface. The biggest challenge was managing the different states a checklist can be in (template, active, archived) and making sure the data stays consistent as checklists move between these states.
If I were to expand this MVP, I would add:
- User accounts and roles (admin, regular user)
- Cloud storage to share checklists between devices
- Statistics and reports about completion times
- Categories for different types of checklists
- The ability to add photos or notes to checklist items
The current version focuses on the core functionality of creating and using checklists, but there's a lot of potential to add features that would make it more useful in a real healthcare setting.