You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TaskFlow is a SwiftUI field operations app that combines Firebase-backed task management, Supabase media storage, and rich on-device tooling to help teams plan, execute, and document work from an iOS device.
Tech Stack
SwiftUI & SwiftData for the primary UI layer and local persistence of tasks, checklists, and attachments.
Firebase (Auth & Firestore) with Google Sign-In for authentication and cloud synchronization of task records.
Supabase Storage to mirror task media between the device and the cloud, preventing duplicate uploads and downloads.
MapKit, CoreLocation & Network frameworks for location selection, monitoring, and connection-aware syncing.
PhotosUI, AVKit & PDFKit to capture on-site evidence and render shareable PDF reports.
UserNotifications for deadline reminders that respect user preferences.
Features
Secure authentication – Email/password sign-in & sign-up with validation, error messaging, and Google Sign-In funnel users into the workspace once authenticated.
Tabbed workspace – A five-tab layout jumps between the dashboard, task list, location tools, reports, and settings screens.
Dashboard metrics & syncing – Visual task counts, quick shortcuts, manual sync controls, and network-driven background sync keep data fresh.
Cloud-synced tasks – A dedicated sync manager mirrors SwiftData tasks (including location, checklists, and work items) to and from Firestore.
Task management – Browse outstanding versus completed tasks, open detailed records, delete items, seed mock data (developer role), and let admins create new work.
Task creation with location intelligence – Guided forms validate required fields, capture map positions via search or current location, and optionally schedule deadline notifications.
Rich task details – Track progress states, edit to-do descriptions, manage review checklists, view or fullscreen media, advance workflow, or export the task as a PDF report.
On-site evidence capture – Add text notes, attach photos, and import videos, all persisted in SwiftData and synced to Supabase to keep remote copies in sync.
Automated reminders – Notification preferences drive scheduling or clearing of deadline alerts when new tasks are saved.
Report archive – Generate PDFs from task content, list them in-app, open a viewer, share externally, or delete outdated files.
Location overview – Inspect current coordinates alongside permission and service status when working in the field.
Personalized settings – Switch themes, fine-tune sync modes, toggle notifications, change the user role, or log out from one place.
Network awareness – App-wide environment values expose connectivity and interface type so the dashboard can react to offline states.
App lifecycle integration – Firebase configuration, notification permission requests, and network monitoring are wired up at launch.
Project Structure
TaskFlow/App/ – App and application delegate entry points that configure Firebase, notifications, and shared SwiftData storage.
TaskFlow/Shared/ – Shared models, UI components, enums, utilities, and services used across features.
Getting Started
Requirements – Xcode 15 or later with the iOS 17 SDK is recommended for SwiftData and the latest SwiftUI APIs used in the project.
Firebase setup – Add your GoogleService-Info.plist to the TaskFlow target so FirebaseApp.configure() can load credentials, and enable Email/Password plus Google Sign-In in the Firebase console.
Build & run – Open TaskFlow.xcodeproj, select the TaskFlow scheme, and run on an iOS 17 simulator or device to launch the authentication flow and reach the tabbed workspace.
Optional services – Grant notification permission on first launch to test deadline reminders, and enable location access to use the map picker and location dashboard.