# omarahmedx14/flutter_advanced_course architecture

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

- Interactive diagram: https://gitdiagram.com/omarahmedx14/flutter_advanced_course
- Repository: https://github.com/omarahmedx14/flutter_advanced_course

## Overview

This is a Flutter doctor-discovery app scaffold: users start at onboarding, can enter login or sign-up, and reach a home experience organized around medical specializations and doctors. The feature tree also shows separate presentation, state-management, repository, and API layers, backed by shared routing, dependency injection, networking, and preferences. The README offers no capability details, and the sampled source contains only platform runners; edges therefore show only the broad feature and layer relationships indicated by module organization, not verified method calls.

Main entry points: [`lib/features/home/ui/home_screen.dart`](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/home_screen.dart) (Home screen), [`lib/core/networking/api_service.dart`](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/networking/api_service.dart) (API service), [`lib/features/login/data/repos/login_repo.dart`](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/data/repos/login_repo.dart) (Login repository), [`lib/features/home/logic/home_cubit.dart`](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/logic/home_cubit.dart) (Home state)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_journey["User journey"]
  node_onboarding["Onboarding"]
  node_login["Login screen<br/>[login_screen.dart]"]
  node_signup["Sign-up screen"]
end

subgraph group_features["App features"]
  node_home["Home screen<br/>[home_screen.dart]"]
  node_specialties["Specializations"]
  node_doctors["Doctor list"]
  node_loginstate["Login state<br/>[login_cubit.dart]"]
  node_loginrepo["Login repository<br/>[login_repo.dart]"]
  node_signupstate["Sign-up state<br/>[sign_up_cubit.dart]"]
  node_signuprepo["Sign-up repository<br/>[sign_up_repo.dart]"]
  node_homestate["Home state<br/>[home_cubit.dart]"]
  node_homerepo["Home repository<br/>[home_repo.dart]"]
  node_homeapi["Home API"]
  node_specialtydata["Specialty model"]
end

subgraph group_shared["Shared runtime"]
  node_router["App routing<br/>[app_router.dart]"]
  node_di["Dependency injection"]
  node_network["API service<br/>[api_service.dart]"]
  node_preferences["Preferences"]
end

node_user(("User"))
node_backend(("API backend"))

node_user -->|"opens"| node_onboarding
node_user -->|"opens"| node_login
node_user -->|"opens"| node_signup
node_user -->|"views"| node_home
node_onboarding -->|"uses routes"| node_router
node_login -->|"uses state"| node_loginstate
node_loginstate -->|"delegates"| node_loginrepo
node_signup -->|"uses state"| node_signupstate
node_signupstate -->|"delegates"| node_signuprepo
node_home -->|"uses state"| node_homestate
node_homestate -->|"delegates"| node_homerepo
node_homerepo -->|"uses API"| node_homeapi
node_homeapi -->|"uses client"| node_network
node_network -.->|"requests data"| node_backend
node_specialties -->|"presents"| node_home
node_doctors -->|"presents"| node_home
node_homestate -->|"uses model"| node_specialtydata
node_di -->|"configures"| node_router
node_loginrepo -.->|"uses client"| node_network
node_signuprepo -.->|"uses client"| node_network
node_loginrepo -.->|"may persist"| node_preferences

click node_onboarding "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/onboarding/onboarding_screen.dart"
click node_login "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/ui/login_screen.dart"
click node_signup "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/ui/sign_up_screen.dart"
click node_home "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/home_screen.dart"
click node_specialties "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/widgets/specializations_list/speciality_list_view.dart"
click node_doctors "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/widgets/doctors_list/doctors_list_view.dart"
click node_loginstate "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/logic/cubit/login_cubit.dart"
click node_loginrepo "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/data/repos/login_repo.dart"
click node_signupstate "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/logic/sign_up_cubit.dart"
click node_signuprepo "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/data/repos/sign_up_repo.dart"
click node_homestate "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/logic/home_cubit.dart"
click node_homerepo "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/repos/home_repo.dart"
click node_homeapi "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/apis/home_api_service.dart"
click node_specialtydata "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/models/specializations_response_model.dart"
click node_router "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/routing/app_router.dart"
click node_di "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/di/dependency_injection.dart"
click node_network "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/networking/api_service.dart"
click node_preferences "https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/helpers/shared_pref_helper.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_onboarding,node_login,node_signup,node_user toneBlue
class node_home,node_specialties,node_doctors,node_loginstate,node_loginrepo,node_signupstate,node_signuprepo,node_homestate,node_homerepo,node_homeapi,node_specialtydata toneAmber
class node_router,node_di,node_network,node_preferences,node_backend toneMint
```

## Components

### User journey

- [Onboarding](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/onboarding/onboarding_screen.dart): `lib/features/onboarding/onboarding_screen.dart`
- [Login screen](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/ui/login_screen.dart): `lib/features/login/ui/login_screen.dart`
- [Sign-up screen](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/ui/sign_up_screen.dart): `lib/features/sign_up/ui/sign_up_screen.dart`

### App features

- [Home screen](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/home_screen.dart): `lib/features/home/ui/home_screen.dart`
- [Specializations](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/widgets/specializations_list/speciality_list_view.dart): `lib/features/home/ui/widgets/specializations_list/speciality_list_view.dart`
- [Doctor list](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/ui/widgets/doctors_list/doctors_list_view.dart): `lib/features/home/ui/widgets/doctors_list/doctors_list_view.dart`
- [Login state](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/logic/cubit/login_cubit.dart): `lib/features/login/logic/cubit/login_cubit.dart`
- [Login repository](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/login/data/repos/login_repo.dart): `lib/features/login/data/repos/login_repo.dart`
- [Sign-up state](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/logic/sign_up_cubit.dart): `lib/features/sign_up/logic/sign_up_cubit.dart`
- [Sign-up repository](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/sign_up/data/repos/sign_up_repo.dart): `lib/features/sign_up/data/repos/sign_up_repo.dart`
- [Home state](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/logic/home_cubit.dart): `lib/features/home/logic/home_cubit.dart`
- [Home repository](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/repos/home_repo.dart): `lib/features/home/data/repos/home_repo.dart`
- [Home API](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/apis/home_api_service.dart): `lib/features/home/data/apis/home_api_service.dart`
- [Specialty model](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/features/home/data/models/specializations_response_model.dart): `lib/features/home/data/models/specializations_response_model.dart`

### Shared runtime

- [App routing](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/routing/app_router.dart): `lib/core/routing/app_router.dart`
- [Dependency injection](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/di/dependency_injection.dart): `lib/core/di/dependency_injection.dart`
- [API service](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/networking/api_service.dart): `lib/core/networking/api_service.dart`
- [Preferences](https://github.com/omarahmedx14/flutter_advanced_course/blob/development/lib/core/helpers/shared_pref_helper.dart): `lib/core/helpers/shared_pref_helper.dart`

### Other components

- **User**
- **API backend**

## Connections

- User → Onboarding: opens
- User → Login screen: opens
- User → Sign-up screen: opens
- User → Home screen: views
- Onboarding → App routing: uses routes
- Login screen → Login state: uses state
- Login state → Login repository: delegates
- Sign-up screen → Sign-up state: uses state
- Sign-up state → Sign-up repository: delegates
- Home screen → Home state: uses state
- Home state → Home repository: delegates
- Home repository → Home API: uses API
- Home API → API service: uses client
- API service → API backend: requests data
- Specializations → Home screen: presents
- Doctor list → Home screen: presents
- Home state → Specialty model: uses model
- Dependency injection → App routing: configures
- Login repository → API service: uses client
- Sign-up repository → API service: uses client
- Login repository → Preferences: may persist
