Module 01 — Core

Tài khoản & Phân quyền

Nền tảng quản lý người dùng, đăng nhập và phân quyền truy cập cho toàn bộ hệ thống FieldFlow. Module đầu tiên cần triển khai — mọi module khác đều phụ thuộc.

6
Vai trò
15
Chức năng MVP
2
Entity chính
3
Phase phát triển
Giới thiệu

Module Core làm gì?

Trả lời 3 câu hỏi cốt lõi trước khi dùng hệ thống:

Ai được dùng?

Quản lý tài khoản — tạo, khóa, phân quyền người dùng. Mỗi người có 1 tài khoản duy nhất.

Ai là ai?

Đăng nhập bằng SĐT/Email + mật khẩu. Xác thực danh tính mỗi lần truy cập.

Được làm gì?

Phân quyền theo vai trò — mỗi người chỉ thấy và thao tác những gì cần thiết cho công việc.

Nguyên tắc tối thiểu

Mỗi người chỉ thấy và làm những gì cần thiết cho công việc của họ. Không thấy chức năng không liên quan.

01 — 6 Vai trò

Ai dùng hệ thống?

Hệ thống chia 6 vai trò, mỗi vai trò có quyền hạn khác nhau:

🔴
Admin

Quản trị hệ thống

Quyền cao nhất. IT support, đơn vị triển khai.

🟡
Manager

Giám đốc / Quản lý

Toàn quyền trong công ty. Quản lý NV, cài đặt, báo cáo.

🔵
Supervisor

Giám sát

Quản lý đội ngũ, duyệt đơn, giám sát tuyến.

Staff

Nhân viên chung

Vai trò cơ bản. Chỉ chấm công + xem profile.

🟢
Sales Rep

NV thị trường

Đi tuyến, check-in GPS, tạo đơn, nhập tồn kho.

🟠
Warehouse

NV kho

Quản lý kho, nhập/xuất hàng, kiểm kê.

Ví dụ thực tế: Công ty ABC (20 NV)

Vai tròAi?Công việc hàng ngàyNền tảng
AdminAnh Minh (IT)Quản lý hệ thống, backup, xử lý lỗiWeb
ManagerChị Lan (Giám đốc)Xem báo cáo, quản lý NV, cài đặtWeb
SupervisorAnh Hùng + Chị NgọcTheo dõi đội ngũ, duyệt đơn, quản lý tuyếnWeb + Mobile
Staff3 NV mới / văn phòngChấm công, xem thông tin cá nhânMobile
Sales Rep10 NV bán hàngĐi tuyến 8-10 điểm/ngày, check-in, tạo đơnMobile
Warehouse3 NV khoNhập/xuất hàng, kiểm kê, quản lý NVLWeb + Mobile
02 — Mô hình Dữ liệu

Entity & Thông tin lưu trữ

Module Core quản lý 2 entity chính: Công tyNgười dùng.

erDiagram
    Company ||--o{ User : "1:N (một công ty có nhiều NV)"
    User ||--o{ Session : "1:N (mỗi thiết bị = 1 phiên)"

    Company {
        text name "Tên công ty ✱"
        text address "Địa chỉ ✱"
        text industry "FMCG / Dược / VLXD ✱"
        text logo_url "Logo"
        text phone "SĐT liên hệ"
        text email "Email liên hệ"
    }
    User {
        text full_name "Họ tên đầy đủ ✱"
        text phone "SĐT đăng nhập ✱"
        text email "Email (thay thế)"
        text password_hash "Mật khẩu ✱"
        text role "6 vai trò ✱"
        text is_active "Hoạt động / Khóa ✱"
        text fcm_token "Token push notification"
        text last_login_at "Lần login cuối"
    }
    Session {
        text device_name "Tên thiết bị"
        text ip_address "Địa chỉ IP"
        text expires_at "Thời điểm hết hạn"
    }
    

Chi tiết thông tin Người dùng

Thông tin bắt buộc (khi tạo mới)

TrườngVí dụGhi chú
Họ tên đầy đủNguyễn Văn AHiển thị trên app/dashboard
Số điện thoại0901234567Dùng đăng nhập. Phải duy nhất trong công ty
Mật khẩuAbc@12345Tạo mặc định, NV tự đổi sau
Vai tròSales RepQuyết định quyền truy cập
Trạng tháiĐang hoạt độngHoặc "Tạm khóa"

Thông tin tùy chọn

TrườngVí dụGhi chú
Emailnva@company.comThay thế SĐT để đăng nhập
Ghi chú"NV khu vực Quận 1"Ghi chú nội bộ

Thông tin bổ sung (Phase 2+)

TrườngVí dụPhase
Ảnh đại diệnavatar.jpgPhase 2
Mã nhân viênNV-001Phase 2
Bộ phậnKinh doanhPhase 3
Ai tạo tài khoảnManager LanPhase 2

Trạng thái tài khoản

🟢
Đang hoạt động

Đăng nhập và sử dụng bình thường

🔴
Tạm khóa

Không đăng nhập được. Dữ liệu vẫn giữ.

Đã xóa

Ẩn khỏi danh sách. Lịch sử vẫn còn để tra cứu.

03 — Bảng Phân quyền

Ai được làm gì?

✅ = Được dùng  |  👁️ = Chỉ xem  |  ✏️ = Tạo/Sửa  |  — = Không truy cập

Chức năng 🔴 Admin 🟡 Manager 🔵 Supervisor ⚪ Staff 🟢 Sales Rep 🟠 Warehouse
🔐 Tài khoản & Cài đặt
Quản lý nhân viên (tạo/xóa/khóa)
Xem danh sách nhân viên👁️
Cài đặt hệ thống
Quản lý sản phẩm
Xem danh mục sản phẩm👁️👁️👁️👁️
Xem/sửa thông tin cá nhân
📦 Phân phối (DMS)
Dashboard tổng quan
Quản lý điểm bán✏️👁️
Thêm điểm bán mới (chờ duyệt)✏️✏️
Duyệt điểm bán mới
Quản lý tuyến bán✏️👁️
Check-in tại điểm bán (GPS)
Xem lịch sử ghé thăm👁️
Tạo đơn hàng✏️
Duyệt đơn hàng
Xem đơn hàng👁️👁️
Theo dõi GPS nhân viên
🏭 Kho hàng (Inventory)
Quản lý kho
Xem tồn kho👁️👁️
Nhập / Xuất kho✏️
⏰ Chấm công (Attendance)
Chấm công (check-in/out)
Xem bảng công👁️
Quản lý ca / Lịch làm việc✏️
📊 Báo cáo (Reports)
Báo cáo doanh số
Báo cáo tồn kho
Báo cáo chấm công👁️
Báo cáo hiệu suất NV
Xuất báo cáo (Excel/PDF)
04 — Luồng Nghiệp vụ

4 Quy trình nghiệp vụ chính

Flow 1: Đăng nhập

Mở app/web
Nhập SĐT (hoặc email)
Nhập mật khẩu
Ít nhất 8 ký tự
Xác thực
Hệ thống kiểm tra
Vào hệ thống
Màn hình theo vai trò
⚠️ Sai mật khẩu 5 lần liên tiếp → Khóa tài khoản tạm thời 15 phút

Mỗi người đăng nhập tối đa 5 thiết bị. Không dùng 7 ngày → phải đăng nhập lại.

Flow 2: Quản lý tạo tài khoản NV mới

Manager vào
"Thêm nhân viên"
Nhập thông tin
Tên + SĐT + MK + Vai trò
Kiểm tra
SĐT không trùng
Tạo thành công
Gửi SĐT + MK cho NV

Flow 3: Reset mật khẩu cho nhân viên

Chọn NV
Từ danh sách
"Reset mật khẩu"
Nhập MK mới hoặc tự tạo
Cập nhật
NV bị đăng xuất mọi thiết bị
Thông báo
Gửi MK mới cho NV

Flow 4: Đổi mật khẩu (tự làm)

"Đổi mật khẩu"
Nhập MK hiện tại
Nhập MK mới
8+ ký tự, có hoa + thường + số
Xác nhận
Nhập lại MK mới
Lưu
Đăng xuất thiết bị khác
05 — Lộ trình Phát triển

3 Phase: MVP → Nâng cao → Đầy đủ

gantt
    title Lộ trình Module Core
    dateFormat WW
    axisFormat Tuần %U

    section MVP (Phase 1)
    Đăng nhập SĐT/Email + MK     :m1, 01, 2w
    6 vai trò phân quyền          :m2, 01, 1w
    Quản lý NV (tạo/khóa/reset)  :m3, 01, 2w
    Session management            :m4, 01, 1w
    Trang đăng nhập + quản lý NV :m5, 02, 2w

    section Nâng cao (Phase 2)
    Push notification             :p1, 08, 1w
    OTP quên mật khẩu             :p2, 08, 1w
    Lịch sử hoạt động (audit)    :p3, 09, 1w
    Giả danh (impersonate)        :p4, 09, 1w
    Trang cá nhân NV              :p5, 09, 1w

    section Đầy đủ (Phase 3)
    Tự tạo vai trò dynamic        :f1, 22, 2w
    Xác thực 2 lớp (2FA)         :f2, 23, 1w
    Đăng nhập sinh trắc học       :f3, 23, 1w
    Đăng nhập Google/OAuth        :f4, 24, 1w
    Phân quyền theo nhóm          :f5, 24, 1w
    

Chi tiết từng Phase

Phase 1 — MVP (Tuần 1-2)
15 chức năng — đủ để bắt đầu sử dụng
#Chức năngMô tả
1Đăng nhậpSĐT/Email + mật khẩu
2Đăng xuấtĐăng xuất khỏi thiết bị hiện tại
3Đổi mật khẩuNV tự đổi
46 vai trò phân quyềnAdmin, Manager, Supervisor, Staff, Sales Rep, Warehouse
5Tạo tài khoản NVManager/Admin tạo mới
6Khóa/Mở khóa NVTạm ngưng, không xóa data
7Reset mật khẩuManager/Admin reset cho NV
8Xem danh sách NVFilter theo vai trò, trạng thái
9Gán vai tròThay đổi vai trò của NV
10Session managementTối đa 5 thiết bị, hết hạn 7 ngày
11Bảo vệ routeMỗi vai trò chỉ thấy chức năng được phép
12Thông tin công tyCập nhật tên, địa chỉ, logo
13Validation SĐT VN+84 / 0xx format
14Khóa tài khoản tạm thờiSai MK 5 lần → khóa 15 phút
15Trang đăng nhậpGiao diện web + mobile
Phase 2 — Nâng cao (Tuần 7-12)
7 chức năng — Bổ sung bảo mật & tiện ích
  • Push notification — Thông báo đẩy qua app
  • OTP quên mật khẩu — Gửi mã xác nhận qua SMS
  • Trang cá nhân NV — Tự xem và sửa thông tin
  • Lịch sử hoạt động — Ghi nhận login, đổi MK, thay vai trò
  • Giả danh (Impersonate) — Manager xem hệ thống dưới góc nhìn NV
  • Đăng xuất từ xa — Manager đăng xuất NV khỏi thiết bị khác
  • Ảnh đại diện — Upload ảnh profile cho NV
Phase 3 — Đầy đủ (Sau MVP)
10 chức năng — Hệ thống hoàn chỉnh
  • Tự tạo vai trò — Manager tạo vai trò tùy chỉnh, gán quyền từ UI
  • Xác thực 2 lớp (2FA) — Bắt buộc cho Admin/Manager
  • Đăng nhập sinh trắc học — Vân tay, Face ID
  • Đăng nhập Google/GitHub — OAuth providers
  • SMS gateway — Tích hợp SpeedSMS/eSMS (local VN)
  • Phân quyền theo nhóm — Supervisor chỉ thấy data team mình
  • Quản lý bộ phận — Phân NV theo bộ phận
  • API keys — Token cho tích hợp hệ thống khác
  • Vòng đời tài khoản — Mời → Kích hoạt → Sử dụng → Khóa
  • Dashboard audit — Báo cáo hoạt động người dùng
So sánh nhanh
MVP (Phase 1)Nâng cao (Phase 2)Đầy đủ (Phase 3)
Chức năng15+7 = 22+10 = 32
Đăng nhậpSĐT/Email + MK+ OTP quên MK+ 2FA, sinh trắc học, OAuth
Phân quyền6 vai trò cố địnhGiống MVPTự tạo vai trò + dynamic permissions
Quản lý NVTạo/Khóa/Reset+ Audit log, impersonate+ Bộ phận, API keys, lifecycle
TimelineTuần 1-2Tuần 7-12Sau tuần 21
06 — Câu hỏi cho đối tác

Cần xác nhận trước khi triển khai

❓ Vai trò & Phân quyền
  1. 6 vai trò đủ chưa? Cần thêm Kế toán, IT staff?
  2. Supervisor thấy team mình hay toàn công ty?
  3. Staff dùng cho ai? NV mới / NV văn phòng / base role?
❓ Đăng nhập & Bảo mật
  1. SĐT đăng nhập đúng nhu cầu chưa? Cần email không?
  2. Khóa sau mấy lần sai MK? Đề xuất: 5 lần → 15 phút
  3. Session hết hạn khi nào? Đề xuất: 7 ngày
  4. Cần OTP SMS cho MVP không? Hiện tại: chỉ MK
❓ Quản lý người dùng
  1. NV tự đăng ký? Hay chỉ quản lý mới tạo?
  2. Manager được giả danh NV? Xem app từ góc nhìn NV
  3. Đăng xuất từ xa cần không? Khi NV mất điện thoại
❓ Quyết định kỹ thuật
  1. SMS gateway? SpeedSMS (VN, rẻ) / Twilio / Không cần MVP
  2. Thông tin bắt buộc khi tạo NV? Chỉ: tên + SĐT + MK + vai trò?

FieldFlow — Core Module: Tài khoản & Phân quyền — Tháng 6/2026
← Quay lại Tổng quan Dự án