# usmanhaider7/taskmanagementapp architecture

> Architecture diagram of the GitHub repository usmanhaider7/taskmanagementapp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/usmanhaider7/taskmanagementapp
- Repository: https://github.com/usmanhaider7/taskmanagementapp

## Overview

Task Manager App is a Flutter mobile app for email/password sign-in and user-scoped task management. The user enters through the app and authentication gate, then can view and manage tasks whose updates sync through Cloud Firestore. The README documents authentication, real-time sync, and task CRUD; the tree identifies the corresponding screens, provider, model, and services. Dart implementation excerpts were not provided, so detailed call ownership and screen-to-screen wiring cannot be verified and are not inferred here.

Main entry points: [`lib/providers/task_provider.dart`](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/providers/task_provider.dart) (Task provider), [`lib/services/auth_service.dart`](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/auth_service.dart) (Auth service), [`lib/services/database_service.dart`](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/database_service.dart) (Database service), [`lib/main.dart`](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/main.dart) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_app["App entry<br/>[main.dart]"]
  node_splash["Splash screen<br/>[splash_screen.dart]"]
end

subgraph group_identity["Authentication"]
  node_authgate["Auth gate<br/>[auth_gate.dart]"]
  node_login["Login screen<br/>[login_screen.dart]"]
  node_signup["Signup screen<br/>[signup_screen.dart]"]
  node_authservice["Auth service<br/>[auth_service.dart]"]
end

subgraph group_tasks["Task management"]
  node_home["Home screen<br/>[home_screen.dart]"]
  node_tasklist["Task list screen"]
  node_addtask["Add task screen"]
  node_tasktile["Task tile<br/>[task_tile.dart]"]
  node_provider["Task provider<br/>[task_provider.dart]"]
  node_model["Task model<br/>[task_model.dart]"]
end

subgraph group_backend["Firebase services"]
  node_firebaseauth{{"Firebase Auth"}}
  node_dbservice["Database service"]
  node_firestore[("Cloud Firestore")]
end

node_user(("User"))

node_user -->|"opens"| node_app
node_app -->|"starts"| node_authgate
node_user -->|"signs in"| node_login
node_user -->|"registers"| node_signup
node_login -->|"authenticates"| node_authservice
node_signup -->|"creates account"| node_authservice
node_authgate -->|"checks session"| node_authservice
node_authservice -->|"uses"| node_firebaseauth
node_user -->|"manages tasks"| node_home
node_home -->|"views tasks"| node_tasklist
node_user -->|"creates task"| node_addtask
node_tasklist -->|"requests tasks"| node_provider
node_addtask -->|"submits task"| node_provider
node_tasktile -->|"toggles status"| node_provider
node_provider -->|"task operations"| node_dbservice
node_dbservice -->|"reads and writes"| node_firestore
node_firestore -->|"streams updates"| node_dbservice
node_provider -->|"uses task data"| node_model

click node_app "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/main.dart"
click node_authgate "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/auth_gate.dart"
click node_login "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/login_screen.dart"
click node_signup "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/signup_screen.dart"
click node_authservice "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/auth_service.dart"
click node_splash "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/splash/splash_screen.dart"
click node_home "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/home/home_screen.dart"
click node_tasklist "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/tasks/task_list_screen.dart"
click node_addtask "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/tasks/add_task_screen.dart"
click node_tasktile "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/home/widgets/task_tile.dart"
click node_provider "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/providers/task_provider.dart"
click node_model "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/models/task_model.dart"
click node_dbservice "https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/database_service.dart"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_splash,node_user toneBlue
class node_authgate,node_login,node_signup,node_authservice toneAmber
class node_home,node_tasklist,node_addtask,node_tasktile,node_provider,node_model toneMint
class node_firebaseauth,node_dbservice,node_firestore toneRose
```

## Components

### App entry

- [App entry](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/main.dart): `lib/main.dart`
- [Splash screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/splash/splash_screen.dart): `lib/views/splash/splash_screen.dart`

### Authentication

- [Auth gate](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/auth_gate.dart): `lib/views/auth/auth_gate.dart`
- [Login screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/login_screen.dart): `lib/views/auth/login_screen.dart`
- [Signup screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/auth/signup_screen.dart): `lib/views/auth/signup_screen.dart`
- [Auth service](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`

### Task management

- [Home screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/home/home_screen.dart): `lib/views/home/home_screen.dart`
- [Task list screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/tasks/task_list_screen.dart): `lib/views/tasks/task_list_screen.dart`
- [Add task screen](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/tasks/add_task_screen.dart): `lib/views/tasks/add_task_screen.dart`
- [Task tile](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/views/home/widgets/task_tile.dart): `lib/views/home/widgets/task_tile.dart`
- [Task provider](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/providers/task_provider.dart): `lib/providers/task_provider.dart`
- [Task model](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/models/task_model.dart): `lib/models/task_model.dart`

### Firebase services

- **Firebase Auth**
- [Database service](https://github.com/usmanhaider7/taskmanagementapp/blob/main/lib/services/database_service.dart): `lib/services/database_service.dart`
- **Cloud Firestore**

### Other components

- **User**

## Connections

- User → App entry: opens
- App entry → Auth gate: starts
- User → Login screen: signs in
- User → Signup screen: registers
- Login screen → Auth service: authenticates
- Signup screen → Auth service: creates account
- Auth gate → Auth service: checks session
- Auth service → Firebase Auth: uses
- User → Home screen: manages tasks
- Home screen → Task list screen: views tasks
- User → Add task screen: creates task
- Task list screen → Task provider: requests tasks
- Add task screen → Task provider: submits task
- Task tile → Task provider: toggles status
- Task provider → Database service: task operations
- Database service → Cloud Firestore: reads and writes
- Cloud Firestore → Database service: streams updates
- Task provider → Task model: uses task data
