# moewefd215/application_13 architecture

> Architecture diagram of the GitHub repository moewefd215/application_13, 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/moewefd215/application_13
- Repository: https://github.com/moewefd215/application_13

## Overview

This Flutter app presents a student job marketplace UI, with documented authentication, job, location, chat, review, notification, reporting and image-upload capabilities. Its principal flow is user sign-in, browsing or posting work, selecting a job location, and viewing job details; other screens support completing and managing work. The README also describes escrow, but the listed tree contains no wallet service or wallet screen, so that subsystem cannot be mapped precisely. Several service connections below follow README documentation; source excerpts were limited to platform setup files.

Main entry points: [`lib/screens/post_job_screen.dart`](https://github.com/moewefd215/application_13/blob/main/lib/screens/post_job_screen.dart) (Post a job), [`lib/services/auth_service.dart`](https://github.com/moewefd215/application_13/blob/main/lib/services/auth_service.dart) (Authentication), [`lib/services/job_service.dart`](https://github.com/moewefd215/application_13/blob/main/lib/services/job_service.dart) (Job operations), [`lib/main.dart`](https://github.com/moewefd215/application_13/blob/main/lib/main.dart) (UI preview)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["App screens"]
  node_preview["UI preview<br/>[main.dart]"]
  node_auth_ui["Login and signup<br/>[login_screen.dart]"]
  node_home["Home and jobs<br/>[home_screen.dart]"]
  node_post_job["Post a job"]
  node_job_detail["Job details"]
  node_location_picker["Pick location"]
  node_job_map["Job map"]
  node_profile["Profile and history"]
  node_verification["Identity verification"]
  node_chat_ui["Chat<br/>[chat_screen.dart]"]
  node_reviews_ui["Reviews<br/>[review_screen.dart]"]
  node_notifications_ui["Notifications"]
  node_report_ui["Problem reports"]
end

subgraph group_services["App services"]
  node_auth_service["Authentication<br/>[auth_service.dart]"]
  node_job_service["Job operations<br/>[job_service.dart]"]
  node_location_service["Location operations"]
  node_upload_service["Image upload"]
  node_chat_service["Chat operations<br/>[chat_service.dart]"]
  node_review_service["Review operations"]
  node_notification_service["Notification operations"]
  node_report_service["Report operations"]
end

subgraph group_models["Domain models"]
  node_job_model["Job and status<br/>[job_model.dart]"]
  node_user_model["User and role"]
  node_application_model["Job applications"]
  node_review_model["Review data<br/>[review_model.dart]"]
  node_chat_model["Chat data<br/>[chat_models.dart]"]
end

node_user(("User"))
node_firebase[("Firebase services")]
node_cloudinary["Cloudinary"]
node_maps["Google Maps"]

node_user -->|"opens"| node_preview
node_preview -->|"opens screen"| node_auth_ui
node_preview -->|"opens screen"| node_home
node_user -->|"enters credentials"| node_auth_ui
node_auth_ui -->|"authenticates"| node_auth_service
node_auth_service -->|"reads and writes"| node_firebase
node_home -->|"loads jobs"| node_job_service
node_post_job -->|"creates job"| node_job_service
node_post_job -->|"opens picker"| node_location_picker
node_location_picker -->|"returns coordinates"| node_post_job
node_post_job -->|"uploads images"| node_upload_service
node_verification -->|"uploads documents"| node_upload_service
node_upload_service -->|"uploads image"| node_cloudinary
node_job_detail -->|"opens map"| node_job_map
node_job_map -->|"gets distance"| node_location_service
node_location_service -.->|"uses maps"| node_maps
node_profile -->|"signs out"| node_auth_service
node_chat_ui -->|"uses"| node_chat_service
node_reviews_ui -->|"uses"| node_review_service
node_notifications_ui -->|"uses"| node_notification_service
node_report_ui -->|"uses"| node_report_service
node_job_service -->|"uses job state"| node_job_model
node_auth_service -->|"uses role"| node_user_model
node_chat_service -->|"uses"| node_chat_model
node_review_service -->|"uses"| node_review_model
node_job_service -->|"uses"| node_application_model

click node_preview "https://github.com/moewefd215/application_13/blob/main/lib/main.dart"
click node_auth_ui "https://github.com/moewefd215/application_13/blob/main/lib/screens/login_screen.dart"
click node_home "https://github.com/moewefd215/application_13/blob/main/lib/screens/home_screen.dart"
click node_post_job "https://github.com/moewefd215/application_13/blob/main/lib/screens/post_job_screen.dart"
click node_job_detail "https://github.com/moewefd215/application_13/blob/main/lib/screens/job_detail_screen.dart"
click node_location_picker "https://github.com/moewefd215/application_13/blob/main/lib/screens/location_picker_screen.dart"
click node_job_map "https://github.com/moewefd215/application_13/blob/main/lib/screens/job_map_screen.dart"
click node_profile "https://github.com/moewefd215/application_13/blob/main/lib/screens/profile_screen.dart"
click node_verification "https://github.com/moewefd215/application_13/blob/main/lib/screens/verification_screen.dart"
click node_chat_ui "https://github.com/moewefd215/application_13/blob/main/lib/screens/chat_screen.dart"
click node_reviews_ui "https://github.com/moewefd215/application_13/blob/main/lib/screens/review_screen.dart"
click node_notifications_ui "https://github.com/moewefd215/application_13/blob/main/lib/screens/notification_screen.dart"
click node_report_ui "https://github.com/moewefd215/application_13/blob/main/lib/screens/report_problem_screen.dart"
click node_auth_service "https://github.com/moewefd215/application_13/blob/main/lib/services/auth_service.dart"
click node_job_service "https://github.com/moewefd215/application_13/blob/main/lib/services/job_service.dart"
click node_location_service "https://github.com/moewefd215/application_13/blob/main/lib/services/location_service.dart"
click node_upload_service "https://github.com/moewefd215/application_13/blob/main/lib/services/upload_service.dart"
click node_chat_service "https://github.com/moewefd215/application_13/blob/main/lib/services/chat_service.dart"
click node_review_service "https://github.com/moewefd215/application_13/blob/main/lib/services/review_service.dart"
click node_notification_service "https://github.com/moewefd215/application_13/blob/main/lib/services/notification_service.dart"
click node_report_service "https://github.com/moewefd215/application_13/blob/main/lib/services/report_service.dart"
click node_job_model "https://github.com/moewefd215/application_13/blob/main/lib/models/job_model.dart"
click node_user_model "https://github.com/moewefd215/application_13/blob/main/lib/models/app_user_model.dart"
click node_application_model "https://github.com/moewefd215/application_13/blob/main/lib/models/job_application_model.dart"
click node_review_model "https://github.com/moewefd215/application_13/blob/main/lib/models/review_model.dart"
click node_chat_model "https://github.com/moewefd215/application_13/blob/main/lib/models/chat_models.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_preview,node_auth_ui,node_home,node_post_job,node_job_detail,node_location_picker,node_job_map,node_profile,node_verification,node_chat_ui,node_reviews_ui,node_notifications_ui,node_report_ui,node_user toneBlue
class node_auth_service,node_job_service,node_location_service,node_upload_service,node_chat_service,node_review_service,node_notification_service,node_report_service,node_firebase toneAmber
class node_job_model,node_user_model,node_application_model,node_review_model,node_chat_model toneMint
class node_cloudinary,node_maps toneIndigo
```

## Components

### App screens

- [UI preview](https://github.com/moewefd215/application_13/blob/main/lib/main.dart): `lib/main.dart`
- [Login and signup](https://github.com/moewefd215/application_13/blob/main/lib/screens/login_screen.dart): `lib/screens/login_screen.dart`
- [Home and jobs](https://github.com/moewefd215/application_13/blob/main/lib/screens/home_screen.dart): `lib/screens/home_screen.dart`
- [Post a job](https://github.com/moewefd215/application_13/blob/main/lib/screens/post_job_screen.dart): `lib/screens/post_job_screen.dart`
- [Job details](https://github.com/moewefd215/application_13/blob/main/lib/screens/job_detail_screen.dart): `lib/screens/job_detail_screen.dart`
- [Pick location](https://github.com/moewefd215/application_13/blob/main/lib/screens/location_picker_screen.dart): `lib/screens/location_picker_screen.dart`
- [Job map](https://github.com/moewefd215/application_13/blob/main/lib/screens/job_map_screen.dart): `lib/screens/job_map_screen.dart`
- [Profile and history](https://github.com/moewefd215/application_13/blob/main/lib/screens/profile_screen.dart): `lib/screens/profile_screen.dart`
- [Identity verification](https://github.com/moewefd215/application_13/blob/main/lib/screens/verification_screen.dart): `lib/screens/verification_screen.dart`
- [Chat](https://github.com/moewefd215/application_13/blob/main/lib/screens/chat_screen.dart): `lib/screens/chat_screen.dart`
- [Reviews](https://github.com/moewefd215/application_13/blob/main/lib/screens/review_screen.dart): `lib/screens/review_screen.dart`
- [Notifications](https://github.com/moewefd215/application_13/blob/main/lib/screens/notification_screen.dart): `lib/screens/notification_screen.dart`
- [Problem reports](https://github.com/moewefd215/application_13/blob/main/lib/screens/report_problem_screen.dart): `lib/screens/report_problem_screen.dart`

### App services

- [Authentication](https://github.com/moewefd215/application_13/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`
- [Job operations](https://github.com/moewefd215/application_13/blob/main/lib/services/job_service.dart): `lib/services/job_service.dart`
- [Location operations](https://github.com/moewefd215/application_13/blob/main/lib/services/location_service.dart): `lib/services/location_service.dart`
- [Image upload](https://github.com/moewefd215/application_13/blob/main/lib/services/upload_service.dart): `lib/services/upload_service.dart`
- [Chat operations](https://github.com/moewefd215/application_13/blob/main/lib/services/chat_service.dart): `lib/services/chat_service.dart`
- [Review operations](https://github.com/moewefd215/application_13/blob/main/lib/services/review_service.dart): `lib/services/review_service.dart`
- [Notification operations](https://github.com/moewefd215/application_13/blob/main/lib/services/notification_service.dart): `lib/services/notification_service.dart`
- [Report operations](https://github.com/moewefd215/application_13/blob/main/lib/services/report_service.dart): `lib/services/report_service.dart`

### Domain models

- [Job and status](https://github.com/moewefd215/application_13/blob/main/lib/models/job_model.dart): `lib/models/job_model.dart`
- [User and role](https://github.com/moewefd215/application_13/blob/main/lib/models/app_user_model.dart): `lib/models/app_user_model.dart`
- [Job applications](https://github.com/moewefd215/application_13/blob/main/lib/models/job_application_model.dart): `lib/models/job_application_model.dart`
- [Review data](https://github.com/moewefd215/application_13/blob/main/lib/models/review_model.dart): `lib/models/review_model.dart`
- [Chat data](https://github.com/moewefd215/application_13/blob/main/lib/models/chat_models.dart): `lib/models/chat_models.dart`

### Other components

- **User**
- **Firebase services**
- **Cloudinary**
- **Google Maps**

## Connections

- User → UI preview: opens
- UI preview → Login and signup: opens screen
- UI preview → Home and jobs: opens screen
- User → Login and signup: enters credentials
- Login and signup → Authentication: authenticates
- Authentication → Firebase services: reads and writes
- Home and jobs → Job operations: loads jobs
- Post a job → Job operations: creates job
- Post a job → Pick location: opens picker
- Pick location → Post a job: returns coordinates
- Post a job → Image upload: uploads images
- Identity verification → Image upload: uploads documents
- Image upload → Cloudinary: uploads image
- Job details → Job map: opens map
- Job map → Location operations: gets distance
- Location operations → Google Maps: uses maps
- Profile and history → Authentication: signs out
- Chat → Chat operations: uses
- Reviews → Review operations: uses
- Notifications → Notification operations: uses
- Problem reports → Report operations: uses
- Job operations → Job and status: uses job state
- Authentication → User and role: uses role
- Chat operations → Chat data: uses
- Review operations → Review data: uses
- Job operations → Job applications: uses
