# task management ## FE ### Features - Page - Sign in page - Home page: thể hiện task user ( task màu đỏ tới task màu vàng rồi tới task xanh ) - File Page - Dashboard: thể hiện số lượng task trong tuần, số lượng task tới hạn trong ngày, số lượng task hoàn thành đúng hạn... - user có role ceo hoặc user thuộc team hr được phép tạo tài khoản cho nhân viên mới => sau khi tạo, gửi mail cho nhân viên mới. Trong mail có đường link để đổi mật khẩu => - Page tạo tài khoản - Page đổi mật khẩu - user được giao task, gửi mail cho user - nếu công việc - tới hạn trong ngày: màu đỏ - còn 3 ngày: màu vàng - trên 3 ngày: màu xanh - task - tạo task - giao task - xóa task - hiển thị task list - cập nhật trạng thái của task - notification for user ## BE ### Features - ceo: có thể xóa manager, worker - get task list có page, limit - assigner: có thể giao task những assignee trong quyền quản lý của mình - chỉ có ceo và assigner (đã tạo task) được quyền cập nhật task và xóa task ### Model #### User - name - email - pass - role (ceo, manager, worker) - team require: false (ObjectId) :rocket: - imageUrl - phone1 - phone2 - mange [ObjectId User] - comp letedWork Count - đếm số công việc hoàn thành quá hẹn và đúng hẹn :rocket: - jobs Received Count <!-- - tasks [ObjectId] --> #### Task - name - description - assigner (ObjectId) - assignee [(ObjectId)] - status - isDeleted - review [{content}] - due - file [ObjectId] - progress Number max:100 min:0 default:0 - important: boolean - urgent: boolean #### File - name - link (Cloudinary) #### Team - name - manager: (ObjectId User) - workers [ObjectId User] #### Project - name - description - assigner (ObjectId) - status - isDeleted - tasks [ObjectId Task] ### Library - sendgrid: gửi email - charJs: vẽ biểu đồ - dayjs: làm việc với thời gian - socket io (chat) :rocket: