# duyhainguyen2010/_24ct1_nguyenduyhai architecture

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

- Interactive diagram: https://gitdiagram.com/duyhainguyen2010/_24ct1_nguyenduyhai
- Repository: https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai

## Overview

Ứng dụng Flutter tìm phòng trọ cho sinh viên, với đăng nhập và phân vai trò người thuê/chủ trọ, tìm kiếm phòng, đăng tin và quản lý thuê cùng hóa đơn. Luồng thuê được README mô tả: chủ trọ đăng phòng, tạo thông tin thuê bằng UID người thuê, lập hóa đơn theo tháng; người thuê xem phòng đã thuê và chi phí. Cấu trúc màn hình, kho dữ liệu và Firebase được thể hiện theo cây thư mục; các quan hệ dưới đây chỉ dựa trên README, không phải kiểm tra mã nguồn Dart.

Main entry points: [`lib/chuc_nang/thue_phong`](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/thue_phong) (Màn hình thuê), [`lib/chuc_nang/ung_dung/man_hinh_chinh.dart`](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/ung_dung/man_hinh_chinh.dart) (Ứng dụng), [`lib/chuc_nang/chu_tro`](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/chu_tro) (Đăng & quản lý phòng), [`lib/chuc_nang/tim_kiem/man_hinh_tim_kiem.dart`](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tim_kiem/man_hinh_tim_kiem.dart) (Tìm kiếm)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_account["Tài khoản &amp; điều hướng"]
  node_app["Ứng dụng"]
  node_auth_ui["Đăng nhập &amp; đăng ký"]
  node_auth_manager["Quản lý xác thực"]
  node_auth_store["Kho xác thực Firebase"]
end

subgraph group_discovery["Tìm và xem phòng"]
  node_home["Trang chủ"]
  node_search["Tìm kiếm"]
  node_search_manager["Quản lý tìm kiếm"]
  node_room_detail["Chi tiết phòng"]
  node_room_store["Kho phòng Firebase"]
end

subgraph group_landlord["Quản lý phòng trọ"]
  node_landlord_listing["Đăng &amp; quản lý phòng"]
end

subgraph group_rental["Thuê và hóa đơn"]
  node_rental_screens["Màn hình thuê"]
  node_rental_store["Kho thuê Firebase"]
  node_rental_data["Thuê &amp; hóa đơn"]
end

node_user(("Người dùng"))
node_firestore[("Firebase / Firestore")]

node_user -->|"mở ứng dụng"| node_app
node_app -->|"đăng nhập"| node_auth_ui
node_auth_ui -->|"xác thực"| node_auth_manager
node_auth_manager -->|"ủy quyền"| node_auth_store
node_app -->|"dùng chung"| node_home
node_app -->|"dùng chung"| node_search
node_user -->|"tìm phòng"| node_search
node_search -->|"lọc phòng"| node_search_manager
node_search -->|"tìm dữ liệu"| node_room_store
node_user -->|"xem phòng"| node_room_detail
node_landlord_listing -->|"đăng phòng"| node_room_store
node_user -->|"quản lý tin"| node_landlord_listing
node_landlord_listing -->|"tạo thông tin thuê"| node_rental_screens
node_rental_screens -->|"lập hóa đơn"| node_rental_store
node_rental_screens -->|"hiển thị thuê"| node_rental_data
node_rental_store -->|"đọc ghi thuê"| node_firestore
node_room_store -->|"đọc ghi phòng"| node_firestore
node_auth_store -->|"đọc ghi tài khoản"| node_firestore
node_user -->|"xem phòng đã thuê"| node_rental_screens
node_landlord_listing -->|"quản lý hóa đơn"| node_rental_screens

click node_app "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/ung_dung/man_hinh_chinh.dart"
click node_auth_ui "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/tai_khoan/man_hinh"
click node_auth_manager "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tai_khoan/quan_ly_xac_thuc.dart"
click node_auth_store "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tai_khoan/du_lieu/kho_xac_thuc_firebase.dart"
click node_home "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/trang_chu/man_hinh_trang_chu.dart"
click node_search "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tim_kiem/man_hinh_tim_kiem.dart"
click node_search_manager "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tim_kiem/quan_ly_tim_kiem.dart"
click node_room_detail "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/chi_tiet_phong/man_hinh_chi_tiet_phong.dart"
click node_room_store "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/phong_tro/du_lieu/kho_phong_firebase.dart"
click node_landlord_listing "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/chu_tro"
click node_rental_screens "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/thue_phong"
click node_rental_store "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/thue_phong/du_lieu/kho_thue_firebase.dart"
click node_rental_data "https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/thue_phong/mo_hinh"

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_auth_ui,node_auth_manager,node_auth_store toneBlue
class node_home,node_search,node_search_manager,node_room_detail,node_room_store,node_firestore toneAmber
class node_landlord_listing toneMint
class node_rental_screens,node_rental_store,node_rental_data toneRose
class node_user toneIndigo
```

## Components

### Tài khoản & điều hướng

- [Ứng dụng](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/ung_dung/man_hinh_chinh.dart): `lib/chuc_nang/ung_dung/man_hinh_chinh.dart`
- [Đăng nhập & đăng ký](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/tai_khoan/man_hinh): `lib/chuc_nang/tai_khoan/man_hinh`
- [Quản lý xác thực](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tai_khoan/quan_ly_xac_thuc.dart): `lib/chuc_nang/tai_khoan/quan_ly_xac_thuc.dart`
- [Kho xác thực Firebase](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tai_khoan/du_lieu/kho_xac_thuc_firebase.dart): `lib/chuc_nang/tai_khoan/du_lieu/kho_xac_thuc_firebase.dart`

### Tìm và xem phòng

- [Trang chủ](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/trang_chu/man_hinh_trang_chu.dart): `lib/chuc_nang/trang_chu/man_hinh_trang_chu.dart`
- [Tìm kiếm](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tim_kiem/man_hinh_tim_kiem.dart): `lib/chuc_nang/tim_kiem/man_hinh_tim_kiem.dart`
- [Quản lý tìm kiếm](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/tim_kiem/quan_ly_tim_kiem.dart): `lib/chuc_nang/tim_kiem/quan_ly_tim_kiem.dart`
- [Chi tiết phòng](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/chi_tiet_phong/man_hinh_chi_tiet_phong.dart): `lib/chuc_nang/chi_tiet_phong/man_hinh_chi_tiet_phong.dart`
- [Kho phòng Firebase](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/phong_tro/du_lieu/kho_phong_firebase.dart): `lib/chuc_nang/phong_tro/du_lieu/kho_phong_firebase.dart`

### Quản lý phòng trọ

- [Đăng & quản lý phòng](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/chu_tro): `lib/chuc_nang/chu_tro`

### Thuê và hóa đơn

- [Màn hình thuê](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/thue_phong): `lib/chuc_nang/thue_phong`
- [Kho thuê Firebase](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/blob/main/lib/chuc_nang/thue_phong/du_lieu/kho_thue_firebase.dart): `lib/chuc_nang/thue_phong/du_lieu/kho_thue_firebase.dart`
- [Thuê & hóa đơn](https://github.com/duyhainguyen2010/_24ct1_nguyenduyhai/tree/main/lib/chuc_nang/thue_phong/mo_hinh): `lib/chuc_nang/thue_phong/mo_hinh`

### Other components

- **Người dùng**
- **Firebase / Firestore**

## Connections

- Người dùng → Ứng dụng: mở ứng dụng (evidence: `README.md`)
- Ứng dụng → Đăng nhập & đăng ký: đăng nhập (evidence: `README.md`)
- Đăng nhập & đăng ký → Quản lý xác thực: xác thực (evidence: `README.md`)
- Quản lý xác thực → Kho xác thực Firebase: ủy quyền (evidence: `README.md`)
- Ứng dụng → Trang chủ: dùng chung (evidence: `README.md`)
- Ứng dụng → Tìm kiếm: dùng chung (evidence: `README.md`)
- Người dùng → Tìm kiếm: tìm phòng (evidence: `README.md`)
- Tìm kiếm → Quản lý tìm kiếm: lọc phòng (evidence: `README.md`)
- Tìm kiếm → Kho phòng Firebase: tìm dữ liệu (evidence: `README.md`)
- Người dùng → Chi tiết phòng: xem phòng (evidence: `README.md`)
- Đăng & quản lý phòng → Kho phòng Firebase: đăng phòng (evidence: `README.md`)
- Người dùng → Đăng & quản lý phòng: quản lý tin (evidence: `README.md`)
- Đăng & quản lý phòng → Màn hình thuê: tạo thông tin thuê (evidence: `README.md`)
- Màn hình thuê → Kho thuê Firebase: lập hóa đơn (evidence: `README.md`)
- Màn hình thuê → Thuê & hóa đơn: hiển thị thuê (evidence: `README.md`)
- Kho thuê Firebase → Firebase / Firestore: đọc ghi thuê (evidence: `README.md`)
- Kho phòng Firebase → Firebase / Firestore: đọc ghi phòng (evidence: `README.md`)
- Kho xác thực Firebase → Firebase / Firestore: đọc ghi tài khoản (evidence: `README.md`)
- Người dùng → Màn hình thuê: xem phòng đã thuê (evidence: `README.md`)
- Đăng & quản lý phòng → Màn hình thuê: quản lý hóa đơn (evidence: `README.md`)
