Bổ sung người thanh toán vào thêm địa điểm
This commit is contained in:
+119
-1
@@ -3,8 +3,126 @@
|
||||
Tài liệu này mô tả kiến trúc tổng thể, mô hình dữ liệu và các giải pháp kỹ thuật cho tính năng lập kế hoạch du lịch đa người dùng thuộc nền tảng **Travel**.
|
||||
|
||||
---
|
||||
|
||||
## 8. Cấu Trúc Thư Mục (Directory Structure)
|
||||
|
||||
```text
|
||||
/home/locpham/travelplanning/
|
||||
├── admin.guard.ts # Middleware kiểm tra quyền admin
|
||||
├── App.tsx # Component chính của ứng dụng frontend
|
||||
├── ARCHITECTURE.md # Tài liệu kiến trúc hệ thống
|
||||
├── CreateTourModal.tsx # Modal cho tạo tour
|
||||
├── dist/ # Thư mục build output
|
||||
├── .env # Biến môi trường
|
||||
├── ExpenseManager.tsx # Component quản lý chi phí
|
||||
├── ExploreMap.tsx # Component bản đồ khám phá
|
||||
├── index.tsx # Điểm vào ứng dụng frontend
|
||||
├── ItineraryTimeline.tsx # Component timeline lịch trình
|
||||
├── jwt-auth.guard.ts # Middleware xác thực JWT
|
||||
├── jwt.strategy.ts # Strategy xử lý JWT
|
||||
├── LandingPage.tsx # Trang landing page
|
||||
├── LoginModal.tsx # Modal đăng nhập
|
||||
├── main.ts # Điểm vào ứng dụng backend
|
||||
├── migrations/ # Migration cũ của ORM khác
|
||||
│ ├── 20260613030135_init_travel_planning_schema/
|
||||
│ │ └── migration.sql
|
||||
│ ├── 20260613091754_add_is_admin_field/
|
||||
│ │ └── migration.sql
|
||||
│ ├── 20260613112158/
|
||||
│ │ └── migration.sql
|
||||
│ ├── 20260613114646/
|
||||
│ │ └── migration.sql
|
||||
│ └── migration_lock.toml
|
||||
├── nest-cli.json # Cấu hình NestJS CLI
|
||||
├── node_modules/ # Thư mục dependencies
|
||||
├── package.json # Cấu hình project Node.js
|
||||
├── package-lock.json # Lockfile dependencies
|
||||
├── postcss.config.js # Cấu hình PostCSS
|
||||
├── prisma/ # Thư mục Prisma ORM
|
||||
│ ├── migrations/
|
||||
│ │ └── 0_init/
|
||||
│ │ └── migration.sql
|
||||
│ ├── schema.prisma # Schema dữ liệu chính
|
||||
│ └── prisma.service.ts # Service Prisma
|
||||
├── rbac.middleware.ts # Middleware phân quyền RBAC
|
||||
├── README.md # Tài liệu hướng dẫn dự án
|
||||
├── schema.sql # File SQL schema
|
||||
├── seed.ts # File seed dữ liệu mẫu
|
||||
├── SignupPage.tsx # Trang đăng ký tài khoản
|
||||
├── tailwind.config.ts # Cấu hình TailwindCSS
|
||||
├── TourDetailPage.tsx # Trang chi tiết tour
|
||||
├── tsconfig.build.json # Cấu hình TypeScript build
|
||||
├── tsconfig.json # Cấu hình TypeScript
|
||||
├── UITourDesign.md # Tài liệu thiết kế UI
|
||||
├── useTourStore.ts # State management Zustand cho Tour
|
||||
├── vite.config.ts # Cấu hình Vite bundler
|
||||
├── .gitignore # Git ignore rules
|
||||
├── .vscode/
|
||||
│ └── settings.json # Cấu hình VS Code
|
||||
└── index.css # Styles CSS toàn cục
|
||||
```
|
||||
|
||||
### Giải thích Cấu trúc Thư mục
|
||||
|
||||
**Frontend Layer:**
|
||||
- Các file `.tsx` (React components) xử lý giao diện người dùng: `LandingPage`, `TourDetailPage`, `CreateTourModal`, `ExpenseManager`, `ItineraryTimeline`, `ExploreMap`, `UserManagementModal`, `SignupPage`, `LoginModal`, `AddLocationModal`
|
||||
- Cấu hình TailwindCSS (`tailwind.config.ts`, `index.css`) cho styling
|
||||
- `useTourStore.ts` - State management với Zustand
|
||||
|
||||
**Backend Layer:**
|
||||
- `main.ts` - Entry point ứng dụng NestJS/Express
|
||||
- `expense-engine.service.ts` - Service tính toán và chia chi phí
|
||||
- `prisma.service.ts` - Service kết nối cơ sở dữ liệu
|
||||
- Guards & Middleware: `admin.guard.ts`, `jwt-auth.guard.ts`, `rbac.middleware.ts`
|
||||
- `jwt.strategy.ts` - Xác thực người dùng qua JWT
|
||||
|
||||
**Database Layer:**
|
||||
- `prisma/schema.prisma` - Định nghĩa schema dữ liệu
|
||||
- `prisma/migrations/` - Lịch sử thay đổi schema của Prisma
|
||||
- `migrations/` - Migration cũ (không dùng Prisma)
|
||||
- `seed.ts` - Chèn dữ liệu mẫu vào cơ sở dữ liệu
|
||||
|
||||
**Configuration:**
|
||||
- `tsconfig.json`, `tsconfig.build.json` - Cấu hình TypeScript
|
||||
- `vite.config.ts` - Config bundler Vite
|
||||
- `nest-cli.json` - Cấu hình NestJS CLI
|
||||
- `postcss.config.js` - Cấu hình PostCSS cho TailwindCSS
|
||||
- `.env` - Biến môi trường ứng dụng
|
||||
|
||||
**Documentation:**
|
||||
- `ARCHITECTURE.md` - Tài liệu kiến trúc hệ thống
|
||||
- `UITourDesign.md` - Tài liệu thiết kế giao diện người dùng
|
||||
- `README.md` - Hướng dẫn cài đặt và chạy dự án
|
||||
|
||||
**Tools & IDE:**
|
||||
- `.vscode/settings.json` - Cấu hình VS Code workspace
|
||||
- `.gitignore` - Quy tắc bỏ qua file Git
|
||||
|
||||
### Công nghệ trong Dự án
|
||||
|
||||
```json
|
||||
{
|
||||
"frontend": {
|
||||
"framework": "React + Vite",
|
||||
"styling": "TailwindCSS + PostCSS",
|
||||
"state_management": "Zustand",
|
||||
"map_engine": "Yêu cầu tích hợp Leaflet/Google Maps API"
|
||||
},
|
||||
"backend": {
|
||||
"framework": "NestJS/Express với TypeScript",
|
||||
"auth": "JWT Strategy + Guards",
|
||||
"orm": "Prisma",
|
||||
"database": "PostgreSQL + PostGIS"
|
||||
},
|
||||
"build_tools": {
|
||||
"bundler": "Vite",
|
||||
"compiler": "TypeScript"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 1. Kiến Trúc Tổng Quan (System Overview)
|
||||
|
||||
Hệ thống được thiết kế theo mô hình **Client-Server** kết hợp với kiến trúc **Modular Monolith** hoặc **Microservices** (tùy quy mô triển khai), chia làm 3 tầng chính:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user