Mục đích: thống kê từng nav item của 5 role theo 3 tiêu chí để tự quyết định thứ tự ưu tiên làm trước/sau.
Ngày: 2026-05-18 · Phạm vi: frontend/src/navigation/menus/*.tsx + route trong App.tsx
Chú giải
Trạng thái trang:
REAL — trang thật, đầy đủ chức năng
VIEW — trang thật nhưng chỉ xem (dashboard/report read-only)
STUB — có UI nhưng control bị disable / không gắn API
PLACEHOLDER — chỉ là FeaturePlaceholderPage (“Sắp ra mắt”)
Cần thiết (đề xuất, theo bối cảnh IoT thủy sản — core = giám sát thiết bị/nước/vụ nuôi):
🔴 Cao — giá trị cốt lõi, người dùng cuối cần ngay
🟡 TB — hữu ích nhưng không chặn vận hành
⚪ Thấp — chưa cấp thiết ở giai đoạn này (vd: quản trị SaaS khi chưa có nhiều tenant)
Tên đúng? ✅ khớp · ⚠️ lệch nhẹ · ❌ sai/gây hiểu nhầm Trùng? component/route dùng chung với nav khác
1. SUPER ADMIN (7 mục) — menu có nhiều vấn đề nhất
Nav (label)
Path
Trạng thái
Cần thiết
Tên đúng?
Trùng lặp
Bảng điều khiển
/dashboard
REAL
🔴 Cao
✅
Dùng chung 4 role (role-dispatch — OK)
Tổ chức
/admin/organizations
REAL
🔴 Cao
✅
Không
Nhật ký hoạt động
/system/audit-logs
PLACEHOLDER
⚪ Thấp
✅ (vừa đổi)
Cùng domain với admin “Nhật ký & Chỉnh sửa”
Thiết bị toàn hệ
/devices/list
REAL (DeviceList)
🟡 TB
⚠️ DeviceList là CRUD theo org, không thật sự “toàn hệ thống”
Cùng component với admin “Phân bổ thiết bị”
Tài khoản quản trị
/users
REAL (UsersPage)
🔴 Cao
⚠️ “quản trị” nhưng UsersPage là user chung
Cùng UsersPage với admin/owner
Phân bổ thiết bị
/devices
REAL (DeviceDashboard)
⚪ Thấp
❌ Tên = gán thiết bị, thực tế chỉ là dashboard xem, không có workflow phân bổ
Trùng concept với “Thiết bị toàn hệ” ngay trong menu này
Gói dịch vụ & Thanh toán
/financial
REAL (FinancialDashboard)
⚪ Thấp
❌ Tên = billing SaaS, thực tế là tài chính trang trại (doanh thu/chi phí nuôi)
Cùng FinancialDashboard với admin/owner
Vấn đề lớn: menu Super Admin phần lớn là trang cấp trang-trại bị gắn nhãn quản trị SaaS sai. Super Admin thiếu hẳn chức năng SaaS thật (billing gói dịch vụ, gán thiết bị cho tổ chức).
2. ADMIN (13 mục)
Nav (label)
Path
Trạng thái
Cần thiết
Tên đúng?
Trùng lặp
Bảng điều khiển
/dashboard
REAL
🔴 Cao
✅
role-dispatch (OK)
Trang trại
/farms
VIEW (FarmDashboard)
🔴 Cao
✅
Chỉ admin dùng
Ao nuôi
/farms/ponds
REAL (PondList)
🔴 Cao
✅
Dùng chung admin/owner/staff (OK)
Chủ Farm & Nhân viên
/users
REAL (UsersPage)
🔴 Cao
✅
Cùng UsersPage 3 role
Vụ nuôi
/cycles
VIEW (CyclesDashboard)
🔴 Cao
✅
Dùng chung 3 role (OK)
Quản lý thiết bị
/devices
VIEW (DeviceDashboard)
🔴 Cao
⚠️ “Quản lý” nhưng /devices chỉ xem; quản lý thật ở /devices/list
DeviceDashboard chung 4 role
Phân bổ thiết bị
/devices/list
REAL (DeviceList)
🟡 TB
❌ Không có workflow phân bổ; chỉ là DeviceList
/devices/list trùng super-admin “Thiết bị toàn hệ”; path↔label đảo ngược so với super-admin
Cảnh báo
/admin/alerts
PLACEHOLDER
🔴 Cao
✅
Song song owner/alerts, staff/alerts
Nhật ký & Chỉnh sửa
/admin/data-intervention
PLACEHOLDER
🟡 TB
⚠️ hơi mơ hồ
Phụ thuộc module audit
Báo cáo & Phân tích
/reports
VIEW (ReportsPage)
🟡 TB
✅
Cùng ReportsPage với owner
Chi phí & Lợi nhuận
/financial
REAL (FinancialDashboard)
🟡 TB
✅
Cùng với owner (OK)
Ticket hỗ trợ
/support/tickets
REAL (TicketListPage)
🟡 TB
✅
Chung 4 role (OK)
Cài đặt tổ chức
/settings
STUB
🟡 TB
✅
Không
3. OWNER (11 mục)
Nav (label)
Path
Trạng thái
Cần thiết
Tên đúng?
Trùng lặp
Bảng điều khiển
/dashboard
REAL
🔴 Cao
✅
role-dispatch (OK)
Ao nuôi
/farms/ponds
REAL (PondList)
🔴 Cao
✅
chung (OK)
Nhân viên
/users
REAL (UsersPage)
🟡 TB
✅
cùng UsersPage
Phân công công việc
/operations/tasks
PLACEHOLDER
🟡 TB
✅
Liên quan staff “Việc hôm nay”
Vụ nuôi
/cycles
VIEW
🔴 Cao
✅
chung (OK)
Thiết bị
/devices
VIEW (DeviceDashboard)
🔴 Cao
✅ (“Thiết bị” trung thực)
chung 4 role
Cảnh báo
/owner/alerts
PLACEHOLDER
🔴 Cao
✅
song song alerts role khác
Ticket hỗ trợ
/support/tickets
REAL
🟡 TB
✅
chung (OK)
Kho thức ăn
/inventory
VIEW (InventoryDashboard)
🟡 TB
⚠️ “thức ăn” nhưng Inventory là kho tổng (vật tư/NCC/lô)
Cùng /inventory với technical “Vật tư / Kho” — 2 nghĩa khác nhau
Chi phí & lợi nhuận
/financial
REAL
🟡 TB
✅
chung (OK)
Báo cáo
/reports
VIEW
🟡 TB
✅
cùng ReportsPage admin
4. STAFF (7 mục)
Nav (label)
Path
Trạng thái
Cần thiết
Tên đúng?
Trùng lặp
Việc hôm nay
/operations/checklist
PLACEHOLDER
🔴 Cao
✅
cụm operations
Ao của tôi
/farms/ponds
REAL (PondList)
🔴 Cao
⚠️ “của tôi” → cần filter theo ao được giao (phụ thuộc backend)
chung PondList
Nhập nhật ký
/cycles
VIEW (CyclesDashboard)
🔴 Cao
❌ Tên = nhập log nhanh, thực tế ra dashboard tổng quan; form nhập ở /cycles/:id/logs
chung CyclesDashboard (nhưng ý định khác hẳn admin/owner)
Ảnh hiện trường
/support/incidents
PLACEHOLDER
🟡 TB
⚠️ “ảnh” nhưng path là incidents (sự cố)
cụm support
Ticket hỗ trợ
/support/tickets
REAL
🟡 TB
✅
chung (OK)
Lịch sử công việc
/operations/history
PLACEHOLDER
🟡 TB
✅
cụm operations
Hồ sơ
/profile
REAL (ProfilePage)
🟡 TB
✅
cùng ProfilePage technical
5. TECHNICAL (8 mục)
Nav (label)
Path
Trạng thái
Cần thiết
Tên đúng?
Trùng lặp
Bảng điều khiển
/dashboard
REAL
🔴 Cao
✅
role-dispatch (OK)
Ticket của tôi
/support/tickets
REAL (TicketListPage)
🔴 Cao
⚠️ “của tôi” → cần filter theo KTV (phụ thuộc backend)
chung TicketListPage 4 role
Thiết bị
/devices
VIEW (DeviceDashboard)
🔴 Cao
✅
chung 4 role
Lịch bảo trì
/support/maintenance
PLACEHOLDER
🔴 Cao
✅
cụm support
Bản đồ
/support/map
PLACEHOLDER
🟡 TB
✅
Không
Vật tư / Kho
/inventory
VIEW (InventoryDashboard)
🟡 TB
⚠️ Inventory hiện thiên về thức ăn (owner)
Cùng /inventory với owner “Kho thức ăn”
Báo cáo dịch vụ
/support/service-reports
PLACEHOLDER
🟡 TB
✅
cụm support
Hồ sơ
/profile
REAL
🟡 TB
✅
cùng ProfilePage staff
TOP VẤN ĐỀ CẦN QUYẾT (xếp theo mức nghiêm trọng)
#
Vấn đề
Ảnh hưởng
Hướng xử lý gợi ý
1
Super Admin “Gói dịch vụ & Thanh toán” → FinancialDashboard (tài chính trang trại, KHÔNG phải billing SaaS)
Sai chức năng hoàn toàn
Đổi tên hoặc bỏ tới khi có module billing SaaS thật
2
“Phân bổ thiết bị” (cả super-admin & admin) không có workflow phân bổ — chỉ trỏ vào trang device sẵn có
Lừa kỳ vọng người dùng
Bỏ menu, hoặc build trang gán thiết bị→tổ chức thật
3
Device menu: path↔label đảo ngược giữa admin và super-admin
Bất nhất, khó bảo trì
Thống nhất: 1 nhãn “xem” → /devices, 1 nhãn “quản lý” → /devices/list cho mọi role
4
Staff “Nhập nhật ký” → CyclesDashboard thay vì form nhập log
Staff không nhập được log nhanh — chặn nghiệp vụ cốt lõi
Trỏ tới trang nhập DailyLogs hoặc làm trang quick-log riêng
5
/inventory dùng chung owner “Kho thức ăn” & technical “Vật tư / Kho” — 2 domain khác nhau
Lẫn dữ liệu thức ăn vs vật tư kỹ thuật
Tách route/filter theo loại kho, hoặc thống nhất 1 tên
6
11 route PLACEHOLDER, tập trung ở: Cảnh báo (3 role), Operations (3), Support (4), Audit (1)
Nhiều menu bấm vào trống
Ưu tiên theo cột “Cần thiết” bên dưới
Lưu ý: các route dùng chung qua DashboardRoute/UsersPage/PondList/CyclesDashboard/FinancialDashboard/TicketListPage/ProfilePage là role-dispatch có chủ đích — KHÔNG phải lỗi, không cần sửa.
PLACEHOLDER theo mức cần thiết (gợi ý ưu tiên build)