frontend/
├─ .angular/
├─ .vscode/
├─ node_modules/
├─ public/
├─ src/
│ ├─ app/
│ │ ├─ admins/
│ │ │ ├─ components/
│ │ │ └─ pages/
│ │ │ | ├─ general-dashboard/
│ │ │ | ├─ management-contents/
│ │ │ | ├─ management-customers/
│ │ │ | ├─ management-events/
│ │ │ | ├─ management-orders/
│ │ │ | ├─ management-products/
│ │ │ | ├─ management-voucher/
│ │ │ | ├─ management-warehouse/
│ │ │ | ├─ management-warranty/
│ │ │ | ├─ reports/
│ │ │ | └─ support-customers/
│ │ │
│ │ ├─ components/
│ │ │ ├─ account-settings/
│ │ │ | ├─ header-profile/
│ │ │ | ├─ settings-breadcrumb/
│ │ │ | ├─ settings-sidebar/
│ │ │ ├─ card-product/
│ │ | ├─ home/
│ │ │ | ├─ best-seller-products/
│ │ │ | ├─ blog-section/
│ │ │ | ├─ faq/
│ │ │ | ├─ features/
│ │ │ | ├─ hero-section/
│ │ │ | ├─ new-product/
│ │ │ | └─ testimonial/
│ │ │
│ │ | ├─ layout/
│ │ │ | ├─ admin-layout/
│ │ │ | ├─ auth-layout/
│ │ │ | ├─ client-layout/
│ │ │ | ├─ footer/
│ │ │ | ├─ header/
│ │ │ | └─ setting-layout/
│ │ ├─ pages/
│ │ │ ├─ blogs/
│ │ │ ├─ blogs-details/
│ │ │ ├─ cart/
│ │ │ ├─ change-password/
│ │ │ ├─ events/
│ │ │ ├─ home/
│ │ │ ├─ my-orders/
│ │ │ ├─ my-payment-method/
│ │ │ ├─ my-promotions/
│ │ │ ├─ my-reviews/
│ │ │ ├─ policy/
│ │ │ ├─ product-details/
│ │ │ ├─ products/
│ │ │ ├─ requests-warranty/
│ │ │ ├─ sign-in/
│ │ │ ├─ sign-up/
│ │ │ ├─ support/
│ │ │ ├─ user-profile/
│ │ │ ├─ user-settings/
│ │ │ └─ verify-email/
│ │ │
│ │ ├─ app.config.ts
│ │ ├─ app.css
│ │ ├─ app.html
│ │ ├─ app.routes.ts
│ │ └─ app.ts
│ │ ├─ services
│ ├─ assets/
│ │ ├─ data/
│ │ │ ├─ color.json
│ │ │ ├─ fabric_name.json
│ │ │ ├─ material.json
│ │ │ ├─ product_image.json
│ │ │ ├─ product_variants.json
│ │ │ ├─ product.json
│ │ │ └─ upholstery.json
│ │ └─ home/
│ │
│ ├─ interface/
│ │ └─ index.ts
│ │
│ ├─ index.html
│ ├─ main.ts
│ └─ styles.css
│
└─ .editorconfig
Thư mục gốc của phía client, xây dựng bằng Angular, chịu trách nhiệm giao diện người dùng (UI/UX) cho cả khách hàng và quản trị viên.
- Thư mục nội bộ do Angular CLI sinh ra.
- Lưu cache build, metadata phục vụ quá trình phát triển.
- ❌ Không chỉnh sửa thủ công.
- Chứa cấu hình dành riêng cho VS Code:
- Format code
- Debug
- Extensions gợi ý cho dự án
- Chứa toàn bộ thư viện được cài bằng
npm. - ❌ Không commit lên Git.
- Chứa các tài nguyên public tĩnh (favicon, robots.txt, assets dùng chung…).
- Được truy cập trực tiếp từ trình duyệt.
Thư mục chính của frontend, chứa toàn bộ source code Angular.
Chứa các module, component, page và cấu hình cốt lõi của ứng dụng.
Chứa toàn bộ chức năng dành cho quản trị viên.
- Component dùng riêng cho admin (bảng, modal, form quản trị…)
- Các trang quản trị:
general-dashboard– Tổng quan hệ thốngmanagement-products– Quản lý sản phẩmmanagement-orders– Quản lý đơn hàngmanagement-customers– Quản lý khách hàngmanagement-warehouse– Quản lý khomanagement-warranty– Quản lý bảo hànhmanagement-voucher– Quản lý khuyến mãireports– Báo cáo & thống kêsupport-customers– Hỗ trợ khách hàng
Các component tái sử dụng trong toàn bộ ứng dụng client.
account-settings– Chứa các thành phần trong trang settings của người dùngheader-profile– Thành phần trong trang settings - Phần header người dùng trong trang settingsettings-sidebar– Thành phần trong trang settings - sidebar trong trang settingssettings-breadcrumb- Thành phần trong trang settings - Phần breadcrumbs giúp chuyển đổi qua lại giữa các trangcard-product– Thẻ hiển thị sản phẩm ở trang sản phẩm
Các component dùng riêng cho trang chủ:
hero-sectionbest-seller-productsnew-producttestimonialfaqblog-section
Định nghĩa layout cho từng khu vực:
admin-layout– Giao diện adminclient-layout– Giao diện người dùngauth-layout– Đăng nhập / đăng kýsetting-layout– Cài đặt người dùngheader/footer
Các trang chính của người dùng:
home- Trang chủproducts- Trang sản phẩmproduct-details- Trang sản phẩm chi tiếtcart- Trang giỏ hàngblogs/blogs-details- Trang bài viết và chi tiết bài viếtsign-in/sign-up- Trang đăng nhập, đăng kíuser-profile- Trang thông tin cá nhân người dùngmy-orders- Trang các đơn đặt hàng của người dùngmy-promotions- Trang các sản phẩm khuyến mãimy-reviews- Trang đánh giá của khách hàngpolicy- Trang các chính sách bảo mật và quyền riêng tưrequests-warranty- Trang yêu cầu bảo hànhsupport- Trang liên hệ, giải đáp thắc mắcverify-email- Trang xác nhận emailchange-password- Trang thay đổi mật khẩumy-payment-method- Phương thức thanh toán của khách hàng
| File | Mô tả |
|---|---|
app.config.ts |
Cấu hình ứng dụng |
app.routes.ts |
Routing chính |
app.ts |
Root component |
app.html |
Template gốc |
app.css |
Style gốc |
Chứa các API kết nối backend tương ứng cho từng thực thể
Chứa tài nguyên tĩnh.
- File JSON giả lập dữ liệu:
- sản phẩm
- màu sắc
- vật liệu
- biến thể
- Ảnh và tài nguyên dùng cho trang chủ
- Định nghĩa các TypeScript interface
- Giúp type-safe khi gọi API
| File | Vai trò |
|---|---|
index.html |
Entry HTML |
main.ts |
Bootstrap Angular |
styles.css |
Global styles |
backend/
├── app/
│ ├── config/
│ ├── controllers/
│ ├── models/
├── constants/
├── middlewares/
├── node_modules/
├── routes/
├── services/
├── utils/
├── .env
├── .gitignore
├── package-lock.json
├── package.json
├── server.js
└── swagger.json
2️⃣ Backend (Server – Node.js / Express) 📂 backend/
Chứa toàn bộ logic phía server, API và kết nối cơ sở dữ liệu.
📂 app/
Thư mục lõi theo mô hình MVC.
🔹 config/
Cấu hình hệ thống:
database
swagger
env
🔹 controllers/
Nhận request từ client
Validate input
Gọi service xử lý nghiệp vụ
🔹 models/
Định nghĩa schema dữ liệu (MongoDB / Sequelize / Mongoose…)
📂 constants/
Lưu các hằng số dùng chung:
HTTP status
message response
role, permission
📂 middlewares/
Middleware Express:
Auth
JWT
Error handling
Logging
📂 routes/
Định nghĩa API endpoint
Mapping route → controller
📂 services/
Xử lý nghiệp vụ chính
Logic phức tạp (order, payment, warehouse…)
📂 utils/
Hàm tiện ích:
format response
logger
upload file
pagination
📄 File cấu hình
| File | Mô tả |
|---|---|
.env |
Biến môi trường |
server.js |
Entry server |
swagger.json |
Tài liệu API |
package.json |
Dependencies |
- Frontend: Component-based, tách rõ Admin & Client
- Backend: MVC + Service Layer
- Dễ mở rộng – dễ bảo trì – chuẩn đồ án & sản phẩm thật