# narturn/24ct1-tran_hoang_giao architecture

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

- Interactive diagram: https://gitdiagram.com/narturn/24ct1-tran_hoang_giao
- Repository: https://github.com/narturn/24ct1-tran_hoang_giao

## Overview

This is a Flutter student social-network app backed by Firebase. The intended user workflow is to authenticate, use the dashboard to reach social and community features, and create posts or reviews, upload documents, and purchase store items. The README documents Firestore transactions for those mutations and Firebase Authentication, Firestore, and Storage as enabled services. Dart implementation files were not sampled, so view-to-service calls and detailed routing are not verified; dashed edges mark those uncertainties.

Main entry points: [`lib/views/dashboard_view.dart`](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/dashboard_view.dart) (Dashboard), [`lib/views/forum_view.dart`](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/forum_view.dart) (Forum), [`lib/views/reviews_view.dart`](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/reviews_view.dart) (Reviews), [`lib/views/documents_view.dart`](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/documents_view.dart) (Documents)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Flutter app"]
  node_entry["App entry<br/>[main.dart]"]
  node_auth_views["Login and registration<br/>[login_view.dart]"]
  node_dashboard["Dashboard"]
  node_profile["Profile<br/>[profile_view.dart]"]
  node_admin["Admin panel"]
end

subgraph group_community["Community features"]
  node_forum["Forum<br/>[forum_view.dart]"]
  node_reviews["Reviews<br/>[reviews_view.dart]"]
  node_documents["Documents"]
  node_store["Cosmetic store<br/>[store_view.dart]"]
  node_chat["Facebook chat"]
  node_avatar["User avatar badge"]
end

subgraph group_services["Firebase services"]
  node_auth_service["Authentication service<br/>[auth_service.dart]"]
  node_database_service["Database service"]
  node_storage_service["Storage service"]
  node_firebase_auth["Firebase Auth"]
  node_firestore[("Cloud Firestore")]
  node_firebase_storage[("Firebase Storage")]
end

subgraph group_domain["Domain models"]
  node_user_model["User model<br/>[user_model.dart]"]
  node_post_model["Post model<br/>[post_model.dart]"]
  node_review_model["Review model<br/>[review_model.dart]"]
  node_document_model["Document model"]
  node_cosmetic_registry["Cosmetic registry"]
end

node_user(("Student"))

node_user -.->|"opens"| node_entry
node_entry -.->|"routes to"| node_auth_views
node_entry -.->|"routes to"| node_dashboard
node_user -.->|"authenticates"| node_auth_views
node_auth_views -.->|"uses"| node_auth_service
node_auth_service -.->|"authenticates with"| node_firebase_auth
node_dashboard -.->|"routes to"| node_forum
node_dashboard -.->|"routes to"| node_reviews
node_dashboard -.->|"routes to"| node_documents
node_dashboard -.->|"routes to"| node_store
node_dashboard -.->|"routes to"| node_profile
node_dashboard -.->|"routes to"| node_admin
node_forum -.->|"uses"| node_database_service
node_reviews -.->|"uses"| node_database_service
node_documents -.->|"uses"| node_storage_service
node_store -.->|"uses"| node_database_service
node_database_service -.->|"reads and writes"| node_firestore
node_storage_service -.->|"stores files"| node_firebase_storage
node_user -->|"creates posts"| node_forum
node_user -->|"creates reviews"| node_reviews
node_user -->|"uploads documents"| node_documents
node_user -->|"buys items"| node_store
node_forum -->|"transaction writes"| node_firestore
node_reviews -->|"transaction writes"| node_firestore
node_documents -->|"transaction rewards"| node_firestore
node_store -->|"transaction purchase"| node_firestore
node_profile -.->|"shows"| node_avatar
node_user -.->|"opens"| node_chat

click node_entry "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/main.dart"
click node_auth_views "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/login_view.dart"
click node_dashboard "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/dashboard_view.dart"
click node_profile "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/profile_view.dart"
click node_admin "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/admin_panel_view.dart"
click node_forum "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/forum_view.dart"
click node_reviews "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/reviews_view.dart"
click node_documents "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/documents_view.dart"
click node_store "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/store_view.dart"
click node_chat "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/widgets/facebook_chat_box.dart"
click node_avatar "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/widgets/user_avatar_badge.dart"
click node_auth_service "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/auth_service.dart"
click node_database_service "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/database_service.dart"
click node_storage_service "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/storage_service.dart"
click node_user_model "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/user_model.dart"
click node_post_model "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/post_model.dart"
click node_review_model "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/review_model.dart"
click node_document_model "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/document_model.dart"
click node_cosmetic_registry "https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/cosmetic_registry.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_entry,node_auth_views,node_dashboard,node_profile,node_admin toneBlue
class node_forum,node_reviews,node_documents,node_store,node_chat,node_avatar toneAmber
class node_auth_service,node_database_service,node_storage_service,node_firebase_auth,node_firestore,node_firebase_storage toneMint
class node_user_model,node_post_model,node_review_model,node_document_model,node_cosmetic_registry toneRose
class node_user toneIndigo
```

## Components

### Flutter app

- [App entry](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/main.dart): `lib/main.dart`
- [Login and registration](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/login_view.dart): `lib/views/login_view.dart`
- [Dashboard](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/dashboard_view.dart): `lib/views/dashboard_view.dart`
- [Profile](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/profile_view.dart): `lib/views/profile_view.dart`
- [Admin panel](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/admin_panel_view.dart): `lib/views/admin_panel_view.dart`

### Community features

- [Forum](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/forum_view.dart): `lib/views/forum_view.dart`
- [Reviews](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/reviews_view.dart): `lib/views/reviews_view.dart`
- [Documents](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/documents_view.dart): `lib/views/documents_view.dart`
- [Cosmetic store](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/views/store_view.dart): `lib/views/store_view.dart`
- [Facebook chat](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/widgets/facebook_chat_box.dart): `lib/widgets/facebook_chat_box.dart`
- [User avatar badge](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/widgets/user_avatar_badge.dart): `lib/widgets/user_avatar_badge.dart`

### Firebase services

- [Authentication service](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`
- [Database service](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/database_service.dart): `lib/services/database_service.dart`
- [Storage service](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/services/storage_service.dart): `lib/services/storage_service.dart`
- **Firebase Auth**
- **Cloud Firestore**
- **Firebase Storage**

### Domain models

- [User model](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/user_model.dart): `lib/models/user_model.dart`
- [Post model](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/post_model.dart): `lib/models/post_model.dart`
- [Review model](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/review_model.dart): `lib/models/review_model.dart`
- [Document model](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/document_model.dart): `lib/models/document_model.dart`
- [Cosmetic registry](https://github.com/narturn/24ct1-tran_hoang_giao/blob/main/lib/models/cosmetic_registry.dart): `lib/models/cosmetic_registry.dart`

### Other components

- **Student**

## Connections

- Student → App entry: opens
- App entry → Login and registration: routes to
- App entry → Dashboard: routes to
- Student → Login and registration: authenticates
- Login and registration → Authentication service: uses
- Authentication service → Firebase Auth: authenticates with
- Dashboard → Forum: routes to
- Dashboard → Reviews: routes to
- Dashboard → Documents: routes to
- Dashboard → Cosmetic store: routes to
- Dashboard → Profile: routes to
- Dashboard → Admin panel: routes to
- Forum → Database service: uses
- Reviews → Database service: uses
- Documents → Storage service: uses
- Cosmetic store → Database service: uses
- Database service → Cloud Firestore: reads and writes
- Storage service → Firebase Storage: stores files
- Student → Forum: creates posts (evidence: `README.md`)
- Student → Reviews: creates reviews (evidence: `README.md`)
- Student → Documents: uploads documents (evidence: `README.md`)
- Student → Cosmetic store: buys items (evidence: `README.md`)
- Forum → Cloud Firestore: transaction writes (evidence: `README.md`)
- Reviews → Cloud Firestore: transaction writes (evidence: `README.md`)
- Documents → Cloud Firestore: transaction rewards (evidence: `README.md`)
- Cosmetic store → Cloud Firestore: transaction purchase (evidence: `README.md`)
- Profile → User avatar badge: shows
- Student → Facebook chat: opens
