Last active
December 11, 2020 07:28
-
-
Save bdviett/69bc36fffc276cecad4a9d6f408a6492 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## Mô tả | |
| Xây dựng trang web quản lý timesheet với các mô tả nghiệp vụ như sau: | |
| 1.1, Có 2 loại người dùng cơ bản: quản trị viên và nhân viên | |
| 1.2, Mỗi timesheet có các nội dung như sau: | |
| - Ngày (ví dụ 2018-08-14) | |
| - Các công việc đã làm trong ngày (multiple line). Mỗi line có dạng: | |
| - Task ID (nếu không có thì để là "N/A") | |
| - Nội dung task | |
| - Thời gian sử dụng | |
| - Các khó khăn gặp phải (text) | |
| - Các dự định sẽ làm trong ngày tiếp theo (text) | |
| 1.3, Mô tả use case quản trị | |
| - Tạo các tài khoản nhân viên | |
| - Mỗi tài khoản có các thông tin cơ bản như sau: | |
| - email, username, password, role, avatar, description, approve | |
| - Leader quản lý trực tiếp: là một trong những nhân viên đã có từ trước | |
| - Những người được notify timesheet: là một hoặc nhiều nhân viên đã có từ trước | |
| - QTV có quyền sửa đổi các thông tin sau: | |
| - email, username, password, role | |
| - QTV có quyền xóa tài khoản nhân viên | |
| - QTV có quyền cài đặt các setting chung cho hệ thống: | |
| - GIỜ_LÀM_TIMESHEET, mặc định là 17:00 | |
| - GIỜ_CHỐT_TIMESHEET, mặc định là 19:00 | |
| 1.4, Mô tả use case của nhân viên | |
| - Nhân viên có trang cá nhân, có thể sửa đổi các thông tin sau: | |
| - password, avatar, description | |
| - Mỗi ngày nhân viên cần phải vào trang web để tạo timesheet | |
| - Khi đến GIỜ_LÀM_TIMESHEET, nếu nhân viên chưa tạo timesheet trong ngày, hệ thống sẽ gửi mail thông báo đến email của nhân viên | |
| - Khi đến GIỜ_CHỐT_TIMESHEET, nếu nhân viên chưa tạo timesheet trong ngày, hệ thống sẽ gửi thông báo đến email của nhân viên để làm bổ sung | |
| - Hệ thống sẽ tự động ghi nhận: | |
| - Số lần nhân viên đăng ký timesheet trong tháng (kể cả làm đúng giờ hay làm bổ sung) | |
| - Số lần mỗi nhân viên chậm làm timesheet theo tháng | |
| - Sau khi tạo timesheet, nhân viên có quyền sửa nội dung timesheet | |
| - Nhân viên có thể truy cập trang danh sách, liệt kê các timesheet của mình theo tuần / tháng. | |
| 1.5, Mô tả các use case khác | |
| - Khi nhân viên tạo xong timesheet, hệ thống sẽ gửi email đến leader và những người được notify đã đăng ký từ trước | |
| - Một nhân viên A, người được đăng ký là leader trực tiếp của một nhân viên B, có quyền vào xem các timesheet mà B đăng ký. A không có quyền chỉnh sửa thông tin timesheet, tuy nhiên có quyền check "approve" hay không | |
| - Trường hợp nếu đã "approve" nhưng nhân viên B sửa nội dung timesheet, trạng thái "approve" sẽ tự hủy, hệ thống sẽ lặp lại quá trình gửi email và approve như trên | |
| ## Yêu cầu | |
| 2.1, Đọc hiểu mô tả nghiệp vụ. Vẽ biểu đồ use case cơ bản. | |
| 2.2, Xây dựng cấu trúc database. Tạo file GoogleSheet theo mẫu. | |
| https://docs.google.com/spreadsheets/d/1lhyZvU-bJPku-5yVCI7dbVoVx4nq9F-TG71w7fsd4A8/edit?usp=sharing | |
| 2.3, Tạo code base cơ bản: | |
| - PHP 7.2.x, MariaDB 10.1.x | |
| - Laravel 5.5 LTS, AdminLTE | |
| - migrations | |
| - layouts | |
| 2.4, Code chức năng quản trị viên hệ thống | |
| - Tài khoản QTV được thêm từ seeder | |
| - Màn hình QTV login | |
| - Màn hình thêm/sửa/xóa/xem tài khoản nhân viên | |
| - Màn hình sửa setting hệ thống | |
| 2.5, Code chức năng nhân viên | |
| - Màn hình nhân viên login | |
| - Màn hình tạo timesheet | |
| - Màn hình danh sách timesheet | |
| - Màn hình view chi tiết timesheet | |
| - Màn hình chỉnh sửa timesheet | |
| 2.6, Code chức năng khác | |
| - Tự động gửi email khi đến GIỜ_LÀM_TIMESHEET | |
| - Tự động gửi email khi đến GIỜ_CHỐT_TIMESHEET | |
| - Tự động gửi email khi nhân viên làm timesheet, sửa timesheet | |
| - Chức năng một nhân viên A xem và approve timesheet của nhân viên B | |
| ## Các yêu cầu khác | |
| TBD |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment