Ứng dụng quản trị cho hệ thống bán laptop, xây dựng bằng Flutter, tập trung vào các nghiệp vụ vận hành dành cho admin.
- Xây dựng ứng dụng quản trị di động cho đội vận hành.
- Chuẩn hóa giao tiếp frontend-backend theo nhóm API
api/v1/admin. - Tổ chức code theo hướng dễ mở rộng, tách rõ presentation - business - data.
- Flutter
- BLoC
- Dio
- GoRouter
- GetIt
- SharedPreferences
- Cloudinary (upload ảnh quản trị)
- Dashboard tổng quan: doanh thu, đơn hàng, người dùng, biểu đồ trạng thái đơn.
- Quản lý đơn hàng: xem danh sách, chi tiết, cập nhật trạng thái.
- Quản lý sản phẩm: CRUD sản phẩm.
- Quản lý thương hiệu: CRUD brand.
- Quản lý mã giảm giá: CRUD coupon.
- Quản lý đánh giá: duyệt ẩn/hiện và phản hồi review.
- Quản lý người dùng/staff: xác minh user, tạo/sửa/xóa staff.
- Quản lý báo cáo: xem summary và export báo cáo.
- Quản lý hồ sơ admin.
Splash->Login->AdminShell.- Module chính trong shell:
DashboardOrder ManagementProduct ManagementCoupon ManagementReview ManagementUser ManagementReportsProfile
Tất cả route admin đi qua middleware authenticate + requireAdmin.
GET /api/v1/admin/dashboardGET /api/v1/admin/ordersGET /api/v1/admin/orders/:idPUT /api/v1/admin/orders/:id/statusGET /api/v1/admin/productsPOST /api/v1/admin/productsPUT /api/v1/admin/products/:idDELETE /api/v1/admin/products/:idGET /api/v1/admin/brandsPOST /api/v1/admin/brandsPUT /api/v1/admin/brands/:idDELETE /api/v1/admin/brands/:idGET /api/v1/admin/couponsPOST /api/v1/admin/couponsPUT /api/v1/admin/coupons/:idDELETE /api/v1/admin/coupons/:idGET /api/v1/admin/reviewsPUT /api/v1/admin/reviews/:id/visibilityPUT /api/v1/admin/reviews/:id/replyGET /api/v1/admin/reports/summaryGET /api/v1/admin/reports/exportGET /api/v1/admin/usersPUT /api/v1/admin/users/:id/verifiedPOST /api/v1/admin/staffsPUT /api/v1/admin/staffs/:idDELETE /api/v1/admin/staffs/:id
adminDashboardRepository: tải số liệu dashboard.adminOrderRepository: tải danh sách đơn + cập nhật trạng thái.adminProductRepository: CRUD sản phẩm + thương hiệu.adminCouponRepository: CRUD coupon.adminReviewRepository: duyệt/ẩn và phản hồi review.adminUserRepository: quản lý user xác minh và tài khoản staff.adminReportRepository: tổng hợp và export báo cáo.
Project tổ chức theo hướng feature-first kết hợp BLoC + Repository pattern để dễ scale và dễ maintain.
core/: các thành phần dùng chung toàn app, không phụ thuộc feature cụ thể.features/: chia theo nghiệp vụ (auth,admin), mỗi feature tự chứa data + presentation.shared/: UI component tái sử dụng giữa nhiều feature.- Luồng dữ liệu chuẩn:
UI (Page/Widget)->Bloc(Event)->Repository->ApiClient->Bloc(State)->UI.
flutter/
├── lib/
│ ├── core/
│ │ ├── navigation/ # Router, shell, route constants
│ │ ├── network/ # ApiClient (Dio), endpoints, ApiResult/ApiStatus
│ │ ├── services/ # Base service, local storage, media upload, snack bar
│ │ ├── environment/ # App environment (dev/prod/testing)
│ │ ├── blocs/ # Base bloc abstractions
│ │ └── di/ # GetIt container, register repository/bloc theo module
│ ├── features/
│ │ ├── auth/
│ │ │ ├── data/
│ │ │ │ ├── models/ # DTO/auth models
│ │ │ │ └── repositories/ # Auth repository gọi API
│ │ │ └── presentation/
│ │ │ └── pages/ # Login/Register/OTP/Forgot/Reset
│ │ └── admin/
│ │ ├── dashboard/ # module dashboard (models/repository/bloc/page/widgets)
│ │ ├── orders/ # module quản lý đơn hàng
│ │ ├── products/ # module quản lý sản phẩm + brand
│ │ ├── coupons/ # module quản lý mã giảm giá
│ │ ├── reviews/ # module duyệt/phản hồi đánh giá
│ │ ├── users/ # module quản lý user/staff
│ │ ├── reports/ # module báo cáo & export
│ │ ├── profile/ # module hồ sơ admin
│ │ └── shared/ # widget dùng chung giữa các module admin
│ ├── shared/
│ │ ├── ui_kit/ # Button, style primitives
│ │ └── widgets/ # Loading/empty/OTP và widget tái sử dụng
│ ├── constants/ # Hằng số toàn app
│ └── theme/ # App theme, màu sắc, typography
├── env/
│ └── dev.json
└── pubspec.yaml
- Tách lớp rõ giữa
presentationvàdata, giúp code dễ test và thay backend dễ hơn. - BLoC theo module nghiệp vụ nên state management rõ ràng, tránh logic dồn trong UI.
core/network+core/servicestái sử dụng tốt, giảm trùng lặp khi thêm feature mới.di_containertập trung giúp kiểm soát vòng đời dependency nhất quán.
cd ../BTVN_MOBILE/BE_BTVN
npm install
npm run devflutter pub get
flutter run --dart-define-from-file=env/dev.json- Đăng nhập admin.
- Dashboard tải đúng số liệu.
- Cập nhật trạng thái đơn hàng.
- CRUD sản phẩm/brand/coupon.
- Duyệt và phản hồi review.
- Tạo/sửa/xóa staff, xác minh user.
- Export report.
Dự án được phát triển theo định hướng của môn Lập trình di động nâng cao, từ phân tích yêu cầu đến triển khai thực tế.
Nhóm mong muốn nhận thêm góp ý để tiếp tục nâng cao chất lượng ứng dụng.