Khởi động hệ thống

Ưu tiên đúng nghiệp vụ trước, rồi mới tối ưu giao diện.

Bản scaffold này ưu tiên đúng rule nghỉ phép: duyệt nhiều tầng, chỉ trừ phép khi admin duyệt cuối, một tài khoản một session, hỗ trợ sửa tay số phép và lấy số phép tổng hợp hiện tại làm nguồn sự thật.

Kiến trúc

  • Next.js App Router cho cả giao diện và API trong cùng một repo.
  • MongoDB phù hợp cho giai đoạn MVP hoặc chạy nội bộ.
  • Mongoose quản lý các bảng người dùng, session, đơn nghỉ và balance.
  • Rule nghiệp vụ được tách riêng trong `modules/leave` để dễ kiểm thử.

Luồng duyệt

Nhân viên gửi đơnQuản lý duyệtTrưởng bộ phận duyệtAdmin duyệt cuốiHoàn tất

Phép chỉ bị trừ sau bước admin duyệt cuối cùng.

Chính sách phiên đăng nhập

1 phiên

Đăng nhập trên thiết bị mới sẽ vô hiệu phiên cũ.

Nguồn dữ liệu ưu tiên

Balance

`leave_balances` được ưu tiên cao hơn lịch sử request cũ.

Mục tiêu triển khai

Web nội bộ

Phù hợp để dùng với domain riêng và chi phí thấp.

Mốc tích phép theo tháng

ThángSố ngày tích lũy
11
21
32
43
54
65
76
87
98
109
1110
1211

Việc cần làm tiếp

  • Tạo `.env.local` từ `.env.example`.
  • Cài Node.js 20+ rồi chạy `npm install`.
  • Cấu hình MongoDB local hoặc MongoDB Atlas.
  • Chạy local và test lần lượt các case theo file rule mới.