Skip to content

Instantly share code, notes, and snippets.

@bdviett
Last active December 11, 2020 07:28
Show Gist options
  • Select an option

  • Save bdviett/69bc36fffc276cecad4a9d6f408a6492 to your computer and use it in GitHub Desktop.

Select an option

Save bdviett/69bc36fffc276cecad4a9d6f408a6492 to your computer and use it in GitHub Desktop.
## 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