Tổng quan về kiến trúc
1. Mục đích và phạm vi
Tài liệu này mô tả quy trình phát triển Frontend cho dự án IMS, bao gồm:
- Thành phần công nghệ đang áp dụng.
- Quy trình tạo mới hoặc chỉnh sửa màn hình FE.
- Luồng dữ liệu từ giao diện đến API và ngược lại.
- Phương pháp kết nối giữa menu, route, layout và các page.
- Phương pháp gọi API Core Oracle và API Scheduler.
- Phương pháp lưu trữ, đọc và gắn token vào request.
Nội dung được viết theo hiện trạng source code hiện tại của dự án.
2. Thành phần công nghệ áp dụng
2.1 Nền tảng ứng dụng

| Thành phần | Công nghệ | Vai trò |
|---|---|---|
| Build tool | Vite 5 | Chạy dev server, build static FE |
| Framework UI | React 18 | Xây dựng component và page |
| Ngôn ngữ | TypeScript | Kiểm soát type cho props, store, service và API response |
| Routing | react-router-dom 6 | Định tuyến page, layout cha-con, lazy load page |
| Styling | Tailwind CSS 4, CSS variables | Xây dựng giao diện compact, theme light/dark, layout |
| State management | Zustand | Quản lý state global và state theo từng page/module |
| HTTP client | Axios | Cấu hình API client, interceptor, timeout, header và xử lý lỗi |
| Form/validation | react-hook-form, zod, validation helper nội bộ | Hỗ trợ validate form; nhiều page hiện dùng validateFormContainer |
| i18n | i18next, react-i18next | Quản lý ngôn ngữ vi/en |
| Icons | lucide-react | Icon cho button, menu, toolbar |
| Editor | CKEditor 5 | Soạn thảo nội dung template |
| UI nội bộ | BSS components | BSSInput, BSSGrid, BSSButton, BSSPopup, BSSCalendar, BSSToast, ... |
2.2 Cấu trúc thư mục chính
src/
main.tsx # Khởi tạo React app và health monitoring
App.tsx # BrowserRouter, toast global, hotkey Enter global
routes # Khai báo route
components/
layouts/ # MainLayout, Sidebar, Header
shared/ # BSS UI components dùng chung
core/
api/ # Axios clients, danh mục PROCEDURES
services/ # BaseService và service dùng chung
types/ # Type dùng chung
pages/ # Page nghiệp vụ theo module
module/ # Module nghiệp vụ
feature/ # Feature nghiệp vụ
components/ # Component nghiệp vụ
*.page.tsx # Page nghiệp vụ
*.store.ts # Zustand Store nghiệp vụ
*.service.ts # Service nghiệp vụ
*.types.ts # Type nghiệp vụ
stores/ # Zustand global stores
utils/ # Helper validation, date, grid, text
styles/, theme/ # CSS và theme tokens
locales/ # File ngôn ngữ
2.3 Minh họa cấu trúc các thành phần trong dự án
