Đây là một hệ thống ERP nội bộ phục vụ quản lý công việc và cộng tác trong doanh nghiệp. Khi tôi tham gia, hệ thống đã được khởi tạo và phát triển khoảng hơn một tháng, nhưng các workflow chính vẫn còn ở giai đoạn xây dựng; Task Management mới có một phần giao diện chi tiết và Kanban đang được triển khai, trong khi Meeting Management chưa bắt đầu.
Trong khoảng 12–14 tháng tham gia dự án, tôi chủ yếu triển khai các workflow phía frontend, đồng thời tham gia một số phần backend quan trọng như refactor authentication/session flow và phối hợp xử lý các rule nghiệp vụ liên quan đến task, permission, realtime update và meeting scheduling. Requirement thường được lead chuyển xuống ở mức business hoặc functional requirement; với các phần chưa đủ chi tiết, tôi cần tự làm rõ scope, đề xuất hướng triển khai và phối hợp cùng team để hoàn thiện solution.
Phạm vi chức năng chính
Hệ thống tập trung vào các workflow nội bộ như:
quản lý task theo project với Kanban, subtask, priority, labels/tags, saved tasks và bộ lọc nhiều tiêu chí;
theo dõi progress dựa trên trạng thái task/subtask và các rule đảm bảo consistency giữa parent task và subtask;
cập nhật Kanban và task detail gần real-time qua Socket.IO, kết hợp notification theo user;
phân quyền dựa trên role hierarchy, ownership và project/task context;
quản lý meeting với participant response, conflict detection, UTC-based scheduling và reminder bất đồng bộ qua BullMQ;
quản lý authentication/session bằng access token, refresh token và server-side session state.
Một số đặc điểm kỹ thuật đáng chú ý
Task workflow & realtime
Task không chỉ được quản lý theo trạng thái mà còn lưu thứ tự trong từng Kanban column. Khi drag/drop, backend xử lý việc đổi vị trí hoặc dịch chuyển order của các task liên quan; frontend chỉ reload các column bị ảnh hưởng. Realtime update được tách theo mục đích: project-scoped room cho view update và user-scoped room cho notification.
Authorization model
Frontend sử dụng global role và project-context data để kiểm soát action hiển thị, trong khi backend enforce lại quyền ở CRUD boundary và filter resource dựa trên role, ownership và hierarchy. Một số actor quan trọng như task creator, assignee, project owner/manager và các role quản lý cao hơn luôn được giữ trong phạm vi theo dõi phù hợp với business rule.
Authentication & session management
Flow authentication được refactor từ single JWT sang mô hình access token ngắn hạn + refresh token dài hạn, kết hợp session record phía server. Điều này cho phép revoke từng session và giảm phụ thuộc vào một token có lifetime dài. Ở client, các request cùng gặp access-token expiry có thể reuse một refresh operation đang in-flight trước khi retry.
Meeting scheduling & reminders
Meeting được kiểm tra xung đột theo lịch của từng user khi tạo, cập nhật thời gian hoặc khi participant phản hồi. Reminder được tạo thành delayed jobs trong BullMQ và có lifecycle tương ứng khi meeting đổi giờ, bị hủy hoặc member bị remove.
