1. Trang chủ
  2. » Tất cả

Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)

95 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Phần Mềm Timesheet
Tác giả Nguyễn Thị Hường
Người hướng dẫn GVC, TS. Nguyễn Hoài Anh
Trường học Học viện Kỹ thuật Quân sự
Chuyên ngành Hệ thống thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 95
Dung lượng 7,2 MB

Cấu trúc

  • 1.1 Mô tả hệ thống

    • 1.1.1. Nhiệm vụ cơ bản

    • 1.1.2. Cơ cấu tổ chức

    • 1.1.3. Quy trình xử lý

    • 1.1.4. Mẫu biểu

    • 1.2.2.Biểu đồ hoạt động

  • 2.1 Phân tích chức năng nghiệp vụ

    • 2.1.1 Mô hình hóa chức năng nghiệp vụ

    • 2.1.2 Sơ đồ luồng dữ liệu

    • 2.1.3.Đặc tả tiến trình nghiệp vụ

  • 2.2 Phân tích dữ liệu nghiệp vụ

    • 2.2.1.Mô hình dữ liệu ban đầu

    • 2.2.1.1.Xác định kiểu thực thể, kiểu thuộc tính

    • 2.2.1.2.Mô hình thực thể liên kết mở rộng

    • 2.2.2 Chuẩn hóa dữ liệu

    • 2.2.3 Đặc tả dữ liệu

  • 3.1. Thiết kế cơ sở dữ liệu

    • 3.1.1. Thiết kế bảng dữ liệu phục vụ bảo mật

    • 3.1.3 Mô hình dữ liệu hệ thống

    • 3.1.4.Đặc tả bảng dữ liệu

  • 3.2.Thiết kế giao diện

    • 3.2.1.Thiết kế hệ thống đơn chọn

    • 3.2.2 Thiết kế giao diện nhập liệu cho danh mục (Đặc tả chi tiết 2 danh mục và liệt kê các danh mục còn lại)

    • 3.2.3.Thiết kế giao diện nhập liệu cho nghiệp vụ ( Đặc tả chi tiết 2 nghiệp vụ và liệt kê các nghiệp vụ còn lại)

    • 3.2.4.Thiết kế báo cáo

  • 4.1 Cơ sở lý thuyết

    • 4.1.1. Ngôn ngữ sử dụng

    • 4.1.2. Hệ quản trị cơ sở dữ liệu

  • 4.2 Giới thiệu phần mềm

Nội dung

Mô tả hệ thống

Nhiệm vụ cơ bản

Các nhiệm vụ cơ bản của hệ thống là:

- Quản lý quy trình chấm công, vắng mặt, của nhân viên công ty.

- Thiết lập, quản lý, lưu trữ thông tin dự án, nhân viên tham gia dự án, khách hàng tương ứng của dự án.

- Thiết lập ngày nghỉ, ngày lễ Thiết lập lịch làm việc trong tuần

- Ghi nhận chính xác và giám sát tất cả các loại phép của nhân viên bao gồm nghỉ phép, không phép, ngày lễ, và những ngày bị ốm.

- Thống kê báo cáo chi tiết số công làm việc, thời gian nghỉ của nhân viên theo tháng, theo năm

Cơ cấu tổ chức

+Bộ phận quản lý nhân sự (HR)

+Bộ phận quản lý dự án (PM)

Nhiệm vụ của các bộ phận là :

+Bộ phận quản lý nhân sự (HR)

- Có nhiệm vụ tạo danh mục loại ngày nghỉ, loại phép

- Thiết lập ngày nghỉ, lịch làm việc của cty theo từng tháng.

- Thiết lập thông tin khách hàng, thông tin dự án tương ứng

- Mở khóa timesheets đối với những trường hợp quên không chấm công

- Thống kê, báo cáo thông tin chấm công và vắng mặt của tất cả nhân viên. + Bộ phận quản lý dự án

- Thêm nhân viên vào dự án, giao việc cho nhân viên theo nhiệm vụ trong dự án

- Tiếp nhận timesheets từ nhân viên tại dự án đang quản lý,phê duyệt hoặc từ chối timesheet của nhân viên từ chối

- Có đầy đủ thông tin timesheet của nhân viên trực thuộc.

- Xem được thông tin về số công, số ngày nghỉ, tổng số ngày đã nghỉ.

- Chấm công (log timesheet) theo ngày hoặc theo tuần và gửi yêu cầu phê duyệt.

- Tạo mới yêu cầu nghỉ phép, lịch tăng ca.

- Gửi yêu cầu nghỉ phép đối với mỗi lần xin nghỉ.

- Theo dõi được tình trạng timesheet của mình (từ chối hay được chấp nhận).

- Theo dõi tình trạng yêu cầu nghỉ phép (từ chối hay được chấp nhận).

- Theo dõi thống kê lịch sử nghỉ của chính mình.

- Xem được bảng chấm công cá nhân.

Quy trình xử lý

Sau khi nhận yêu cầu từ khách hàng, bộ phận nhân sự sẽ tạo dự án và thêm các task liên quan Người quản lý dự án sẽ được chỉ định để theo dõi và quản lý dự án, lựa chọn task phù hợp và phân công nhân viên vào dự án Quản lý dự án cũng sẽ thiết lập trạng thái hoạt động của dự án Nhân viên sau khi được phân công sẽ biết rõ dự án và nhiệm vụ của mình, từ đó có thể ghi lại thời gian làm việc cho các task đã được chỉ định Khi dự án hoàn thành, quản lý dự án có thể in báo cáo chi tiết dự án để gửi cho khách hàng.

Nhân viên chấm công bằng cách đăng nhập vào phần mềm khi kết thúc ngày làm việc, lựa chọn log timeSheet theo ngày hoặc tuần, chọn dự án và nhiệm vụ, sau đó nhập nội dung công việc và số giờ đã hoàn thành Có hai loại giờ làm việc để lựa chọn: giờ làm việc bình thường và giờ làm thêm, nhưng nhân viên không thể lưu timesheet nếu số giờ làm việc bình thường vượt quá 8 giờ trong một ngày Sau khi lưu, nếu timesheet đã quá ngày, nhân viên cần yêu cầu quản lý nhân sự mở khóa Nếu timesheet hợp lệ, trạng thái sẽ là new, cho phép nhân viên sửa đổi hoặc xóa Cuối cùng, nhân viên sẽ submit timesheets để gửi số công và giờ làm cho PM và chờ phê duyệt, lúc này trạng thái timesheet sẽ chuyển sang pending.

-Phê duyệt/ từ chối timeSheets của nhân viên

Sau khi nhân viên gửi yêu cầu phê duyệt, quản lý dự án sẽ thấy các timesheets của nhân viên đang ở trạng thái chờ phê duyệt Quản lý có thể xem chi tiết timesheet theo tuần, tháng, quý, năm hoặc theo dự án và có khả năng in ra thông tin timesheets của nhân viên Nếu số giờ làm và nội dung công việc hợp lý, quản lý dự án sẽ phê duyệt; ngược lại, timesheet có thể bị từ chối.

Nhân viên sau khi đăng nhập vào phần mềm có thể xin nghỉ hoặc đi onsite bằng cách chọn chức năng xin nghỉ Hệ thống sẽ hiển thị lịch để nhân viên chọn ngày nghỉ, bao gồm các tùy chọn nghỉ buổi sáng, buổi chiều, theo giờ hoặc cả ngày Sau khi chọn thời gian nghỉ, nhân viên cần điền lý do xin nghỉ vào form yêu cầu Nếu lý do không hợp lệ, hệ thống sẽ không cho phép gửi yêu cầu Cuối cùng, nhân viên gửi yêu cầu và chờ sự phê duyệt từ bộ phận quản lý dự án (PM).

- Phê duyệt yêu cầu xin nghỉ của nhân viên

Sau khi nhân viên gửi yêu cầu xin nghỉ qua email, PM sẽ đăng nhập vào phần mềm và truy cập chức năng Ngày xin nghỉ để xem các yêu cầu nghỉ PM có thể kiểm tra ngày nghỉ theo tuần, tháng, quý hoặc năm, cũng như theo các trạng thái như đang chờ (pending), đã phê duyệt (approved) và bị từ chối (reject) Để phê duyệt yêu cầu, PM chỉ cần nhấp vào tên nhân viên xin nghỉ để xem chi tiết về số ngày, giờ nghỉ và lý do cụ thể Nếu PM có quyền từ chối yêu cầu, họ có thể thực hiện điều này trực tiếp trong hệ thống.

Vào đầu tháng, bộ phận nhân sự sẽ thiết lập ngày nghỉ và lịch làm việc cho nhân viên, bao gồm các ngày lễ và sự kiện trong tháng Nhân viên sẽ được nghỉ vào những ngày đã được xác định, và sau khi thiết lập, họ sẽ không thể ghi lại timesheet vào các ngày không phải là ngày làm việc Tuy nhiên, đối với timesheet có loại giờ làm thêm, nhân viên vẫn có thể nhập và gửi cho quản lý dự án như thường lệ.

-Thống kê, báo cáo số công,giờ nghỉ, ngày nghỉ

Bộ phận quản lý nhân sự có khả năng truy cập chức năng báo cáo để xem thông tin về giờ công, ngày nghỉ có phép và không phép, cũng như giờ làm ngoài giờ Họ có thể khóa việc nhập timesheet của tuần trước đối với những nhân viên quên nhập Khi xem báo cáo, HR có thể chọn theo tháng, loại chức vụ (nhân viên, cộng tác viên, thực tập sinh) hoặc theo chi nhánh Hệ thống sẽ hiển thị báo cáo tương ứng với lựa chọn của họ Sau khi xem, HR sẽ xuất các báo cáo tổng hợp như MB03 về số công làm việc thông thường, số ngày nghỉ và MB04 về số công làm việc ngoài giờ để gửi cho ban giám đốc.

Mẫu biểu

MB01: Chi tiết timesheets của nhân viên.

MB02: Chi tiết của dự án ( hóa đơn) cho khách hàng

MB04: Báo cáo tổng hợp số công làm việc ngoài giờ ( làm OT)

1.2.Mô hình hóa hệ thống

1.2.1.Mô hình tiến trình nghiệp vụ a.Giao việc b.Chấm công c.Phê duyệt, từ chối timesheet của nhân viên d.Xin nghỉ e.Phê duyệt yêu cầu xin nghỉ f.Thiết lập lịch làmviệc

Biểu đồ hoạt động

2.1.1 Mô hình hóa chức năng nghiệp vụ

2.1.1.2.Sơ đồ phân rã chức năng

Phân tích chức năng nghiệp vụ

Mô hình hóa chức năng nghiệp vụ

2.1.1.2.Sơ đồ phân rã chức năng

Sơ đồ luồng dữ liệu

2.1.2.2 Sơ đồ luồng dữ liệu (DFD) mức khung cảnh

Quản lý timesheet cá nhân

Đặc tả tiến trình nghiệp vụ

+Chức năng “Thiết lập thông tin dự án, khách hàng”

• Tên chức năng: Thiết lập thông tin dự án, khách hàng

• Đầu vào: Thông tin khách hàng, dự án bao gồm: tên khách hàng, địa chỉ, tên dự án, ngày bắt đầu, ngày kết thúc.

• Đầu ra: Thông tin được cập nhật trong hệ thống.

• Truy cập danh mục khách hàng, thêm thông tin khách hàng

• Truy cập project, thêm mới project

• Lặp với mỗi project đang thêm mới

Nếu: là dự án của khách hàng đó

Thì: thiết lập là dự án khách hàng đó

Nếu: không thì chuyển sang chọn khách hàng khác Đến khi: thêm mới thành công project

+Chức năng “Thiết lập ngày nghỉ lịch làm việc”

• Tên chức năng: Thiết lập ngày nghỉ lịch làm việc.

• Đầu vào: + Chi tiết các ngày nghỉ trong tháng.

• Đầu ra: + Bảng lịch được cập nhật những ngày nghỉ.

• Truy cập chức năng thiết lập ngày nghỉ.

• Lặp Với mỗi ngày trong bảng lịch.

Nếu: là ngày không phải làm việc hay ngày lễ.

Thì: thiết lập là ngày nghỉ.

Nếu: không thì giữ nguyên. Đến khi: hết ngày trong tháng.

+Chức năng “Thống kê báo cáo tổng công làm việc”

• Tên chức năng: Thống kê báo cáo tổng công làm việc.

• Đầu vào: + Chi tiết các timesheets.

• Đầu ra: + Tổng số công làm việc trong tháng.

• Truy cập chức năng thống kê

• Với mỗi lựa chọn thống kê

Nếu: Thống kê theo tháng – Thì: Hiển thị thống kê theo tháng. Nếu: Thống kê theo chi nhánh – Thì: Hiển thị thống kê theo chi nhánh.

Nếu: Thống kê theo loại nhân viên – Thì: Hiển thị thống kê theo loại.

+Chức năng “Mở khóa Timesheet”

• Tên chức năng: Mở khóa Timesheet

• Đầu vào: + Yêu cầu mở khóa từ nhân viên

• Đầu ra: + Timesheet của nhân viên được mở khóa.

• Chọn nhân viên cần mở khóa

• Tên chức năng: Giao việc

• Đầu vào: + Thông tin chi tiết dự án

• Dữ liệu đầu ra: + Nhân viên được thêm vào dự án

• Chọn dự án cần thêm nhân viên

• Thêm nhân viên vào dự án

+Chức năng “Phê duyệt TimeSheets”

• Tên chức năng: Phê duyệt TimeSheets.

• Đầu vào: + Các timesheet ở trạng thái cần phê duyệt.

• Đầu ra: + Trạng thái của timesheets chuyển sang đã đc phê duyệt.

Lặp với mỗi nhân viên trong dự án

• Chọn nhân viên cần phê duyệt.

• Nếu timesheets đạt yêu cầu – Thì phê duyệt.

• Nếu không thì – không phê duyệt

• Đến khi: hết nhân viên

+Chức năng “Từ chối TimeSheets”

• Tên chức năng: Từ chối TimeSheets.

• Đầu vào: + Các timesheet ở trạng thái cần phê duyệt.

• Đầu ra: + Trạng thái của timesheets chuyển sang bị từ chối.

Lặp với mỗi nhân viên trong dự án

• Chọn nhân viên cần phê duyệt

• Nếu timesheets không đạt yêu cầu – Thì từ chối

• Nếu không thì – phê duyệt

• Đến khi: hết nhân viên

+Chức năng “Phê duyệt yêu cầu xin nghỉ”

• Tên chức năng: Phê duyệt yêu cầu xin nghỉ

• Đầu vào: + Yêu cầu xin nghỉ chưa được phê duyệt

• Đầu ra: + Trạng thái xin nghỉ chuyển sang đã đc phê duyệt

Lặp với mỗi nhân viên có yêu cầu xin nghỉ

• Chọn nhân viên cần phê duyệt

• Nếu yêu cầu xin nghỉ đạt yêu cầu – Thì phê duyệt

• Nếu không thì – không phê duyệt

• Đến khi: hết nhân viên

+Chức năng “Từ chối yêu cầu xin nghỉ”

• Tên chức năng: Từ chối yêu cầu xin nghỉ

• Dữ liệu đầu vào: + Yêu cầu xin nghỉ chưa được phê duyệt

• Dữ liệu đầu ra: + Trạng thái của yêu cầu xin nghỉ chuyển sang bị từ chối

Lặp với mỗi nhân viên trong dự án

• Chọn nhân viên cần phê duyệt

• Nếu yêu cầu xin nghỉ không đạt yêu cầu – Thì từ chối

• Nếu không thì – phê duyệt

• Đến khi: hết nhân viên

+Chức năng “Theo dõi số lượng nhân viên dự án trong ngày làm việc”

• Tên chức năng: Theo dõi số lượng nhân viên dự án trong ngày làm việc

• Đầu vào: + Tên dự án

• Dữ liệu đầu ra: + Trạng thái của nhân viên

• Chọn xem chi tiết ngày nghỉ

• Nếu có nhân viên nghỉ - Thì sẽ hiển thị tên nhân viên cùng trạng thái off

• Nếu không thì – hiển thị bảng lịch bình thường Đến khi: hết dự án đang phụ trách

• Tên chức năng: Chấm công

• Đầu vào: + Tên dự án, số giờ, tên task,

• Đầu ra: + Trạng thái của timeSheet chuyển sang chờ duyệt

Lặp với mỗi nhiệm vụ làm được

• Nếu không thì – log timesheets bình thường

• Chọn submit Đến khi: hết số nhiệm vụ đã làm được trong ngày

+Chức năng “Gửi yêu cầu xin nghỉ”

• Tên chức năng: Gửi yêu cầu xin nghỉ

• Đầu vào: + Số giờ nghỉ, lí do nghỉ, ngày nghỉ

• Đầu ra: + Trạng thái xin nghỉ được chuyển sang chờ duyệt

Chọn ngày muốn nghỉ trong bảng lịch

Lặp với mỗi ngày muốn nghỉ

Nhập số giờ nghỉ, lí do nghỉ

• Nếu thông tin nhập không hợp lệ– thì không gửi được yêu cầu

• Nếu không thì – gửi được yêu cầu và trạng thái chuyển sang pending. Đến khi: hết số ngày muốn xin nghỉ

+Chức năng “Xem chi tiết ngày nghỉ”

• Tên chức năng: Xem chi tiết ngày nghỉ

• Đầu vào: + Ngày nghỉ muốn xem

• Đầu ra: + Thông tin chi tiết ngày nghỉ

Lặp với mỗi ngày muốn xem

Hiển thị chi tiết số giờ, tên dự án, tên task làm được Đến khi: hết số ngày muốn xem chi tiết.

Phân tích dữ liệu nghiệp vụ

Mô hình dữ liệu ban đầu

2.2.1.1.Xác định kiểu thực thể, kiểu thuộc tính

Gợi ý 1: Gợi ý từ mẫu biểu

Gợi ý 2: Xác định thực thể dựa vào các nguồn thông tin khác :

 Các thực thể và thuộc tính đã xác định được là:

Khách hàng (Mã khách hàng, Tên, Địa chỉ)

Dự án bao gồm các thông tin quan trọng như mã dự án, tên dự án, thời gian bắt đầu và kết thúc, trạng thái hiện tại, quy tắc áp dụng, loại dự án, tên khách hàng, tên thành viên tham gia, loại thành viên và vai trò của họ, cùng với tên nhiệm vụ và ghi chú liên quan.

Nhân viên (Mã người dùng, Tên, Ảnh đại diện, Email, Số điện thoại,Giới tính,

Chi nhánh, Địa chỉ, Tên công việc, Mức độ, Loại, Ngày bắt đầu )

Giao việc (Mã giao việc, Tên dự án, Tên nhân viên, Vai trò)

Nhiệm vụ (Mã nhiệm vụ, Tên, Loại)

Loại nghỉ (Mã loại nghỉ, trạng thái, tên, độ dài)

Chấm công (Mã chấm công,Tên nhân viên, Tên dự án, Tên nhiệmvụ,Loại giờ làm, Ghi chú, Trạng thái, Ngày chấm công, Trả phí, Giờ làm)

Yêu cầu xin nghỉ (Mã yêu cầu, Tên nhân viên, Loại nghỉ, Trạng thái,Lí do,

Mở khóa (Mã mở khóa, Tên nhân viên, Kiểu)

Thiết lập lịch làm (Mã thiết lập, Ngày nghỉ, Tên, Hệ số, Chi nhánh)

2.2.1.2.Mô hình thực thể liên kết mở rộng

- Chuyển đổi từ ERD mở rộng về ERD kinh điển

• Khử kiểu thuộc tính đa trị

• Khử kiểu thuộc tính không sơ đẳng

• Xác định khóa chính cho các thực thể

- Chuyển đổi từ ERD kinh điển về ERD hạn chế

• Lược bỏ tên, bản số tối thiểu của kiểu liên kết (áp dụng quy tắc 4)

• Xử lý kiểu liên kết 1-1 (áp dụng quy tắc 5)

• Xử lý kiểu liên kết n-n (áp dụng quy tắc 6):

• Xác định kiểu thuộc tính kết nối, khóa ngoài (áp dụng quy tắc 7)

• Xác định khóa chính cho từng thực thể (áp dụng quy tắc 8)

- Chuyển đổi từ ERD hạn chế về mô hình quan hệ

• Mã hóa kiểu thực thể thành bảng quan hệ/ Mã hóa kiểu thuộc tính thành trường dữ liệu

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Tên Name Địa chỉ Adress

Kiểu thuộc tính Trường dữ liệu

Thời gian bắt đầu TimeStart

Thời gian kết thúc TimeEnd

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Tên Name Ảnh đại diện AvatarPath

Chi nhánh Branch Địa chỉ Address

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Thực thể: Chi tiết nhân viên dự án

Kiểu thực thể Bảng quan hệ

Chi tiết nhân viên dự án

Kiểu thuộc tính Trường dữ liệu

Mã chi tiết dự án nhân viên

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Thực thể: Chi tiết công việc dự án

Kiểu thực thể Bảng quan hệ

Chi tiết công việc ProjectTask

Kiểu thuộc tính Trường dữ liệu

Mã chi tiết dư án nhiệm vụ

Có thể thanh toán Billable

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Mã chấm công TimesheetId Loại giờ làm TypeOfWork

Mã chi tiết dự án nhiệm vụ

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Trạng thái Status Độ dài Length

Thực thể: Yêu cầu xin nghỉ

Kiểu thực thể Bảng quan hệ

Yêu cầu xin nghỉ AbsenceDayRequest

Kiểu thuộc tính Trường dữ liệu

Thực thể: Chi tiết xin nghỉ

Kiểu thực thể Bảng quan hệ

Chi tiết xin nghỉ AbsenceDayDetail

Kiểu thuộc tính Trường dữ liệu

Kiểu thực thể Bảng quan hệ

Kiểu thuộc tính Trường dữ liệu

Kiểu thực thể Bảng quan hệ

Thiết lập lịch làm DayOffSetting

Kiểu thuộc tính Trường dữ liệu

Đặc tả dữ liệu

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

3 TimeStart D(8) Thời gian bắt đầu

4 TimeEnd D(8) Thời gian kết thúc

Tên trường Kiểu dữ liệu

9 JobTitle C(50) Mô tả công việc

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

N Mã chi tiết dự án

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

C(10) Mã chi tiết dự án công việc

2 Billable N Trạng thái thanh toán

Tên trường Kiểu dữ liệu

6 IsCharged N Trạng thái trả phí

N Mã chi tiết dự án công việc

10 x ProjectTarge N Mã chi tiết dự án

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Tên trường Kiểu dữ liệu

Thiết kế cơ sở dữ liệu

Thiết kế bảng dữ liệu phục vụ bảo mật

- Dựa vào cơ cấu tổ chức và phân công trách nhiệm, BFD nghiệp vụ > trong hệ thống ta sẽ chia người dùng thành các nhóm sau :

Nhóm quản trị đóng vai trò quan trọng trong việc quản lý và kiểm soát toàn bộ hệ thống Nhóm này chịu trách nhiệm tạo tài khoản và cấp quyền truy cập cho các bộ phận khác Mỗi bộ phận trong hệ thống sẽ có quyền đăng nhập và sử dụng các chức năng tương ứng với vai trò của mình.

+ nhóm 2 :Nhóm quản lý nhân sự

+ nhóm 3 : Nhóm quản lý dự án

Để truy cập vào hệ thống, người dùng cần cung cấp tên đăng nhập và mật khẩu Hệ thống sẽ thực hiện xác thực và kiểm tra quyền truy cập của người dùng trước khi cho phép đăng nhập.

- Để xác định vai trò của người dùng trong hệ thống ta xác định được thực thể

Vai trò ( Mã vai trò, Tên, Tên hiển thị,Tên thường, Mặc định, Mô tả )

Mã hóa kiểu thực thể thành bảng quan hệ, kiểu thuộc tính thành trường dữ liệu ta có

Role(RoleId, Name, DisplayName, IsDefault, Description)

Để xác định vai trò và quyền truy cập vào các chức năng, cần xác định thực thể Phân quyền, bao gồm các thông tin như Mã quyền, Tên, Trạng thái cho phép và Mã vai trò.

Mã hóa kiểu thực thể thành bảng quan hệ, kiểu thuộc tính thành trường dữ liệu ta có

Permission ( PermissionId, Name, IsGranted, RoleId, UserId)

-Để phục vụ cho việc đăng nhập hệ thống ta đã xác định được thêm các thuộc tính

Tên đăng nhập,mật khẩu cho thực thể User

Tên đăng nhập ,mật khẩu sẽ được mã hóa tương ứng thành

UserName, Password, RoleId cho thực thể User (UserId, Name, UserName,

Password, AvatarPath, Email, PhoneNumber, Sex, Branch, Address, JobTitle, Level, StartDate, RoleId, RoleName)

 Từ phân tích nêu trên ta xác định được các thực thể phục vụ cho bảo mật là :

User ( UserId, Name, UserName, PassWord , AvatarPath, Email,

PhoneNumber, Sex, Branch, Address, JobTitle, Level,Type, StartDate,

Role(RoleId,Name, DisplayName,NormanizedName, IsDefault, Description) Permission ( PermissionId, Name, IsGranted, RoleId,UserId)

3.1.2.Xác định thuộc tính kiểm soát, bảng kiểm soát, tình huống gom nhóm bảng dữ liệu.

+ Thêm các tình huống bảo mật

Thêm trường PasswordResetCode, EmailConfỉmCode trong bảng user. Để ngăn chặn xung đột cập nhật đồng thời, có trường ConcurrencyStamp trong bảng user và roles.

Việc có thêm trường ConcurrencyStamp sẽ giúp làm mất hiệu lực các cookie cũ và giảm các vấn đề bảo mật có thể xảy ra khác.

+ Thiết lập mối quan hệ giữ bảng User, Role, Permission

Người dùng Nhóm người dùng Quyền

Quản lý nhân sự Bộ phận quản lý nhân sự Quản lý quá trình mở khóa timesheet Quản lý việc thiết lập lịch làmviệc

Quản lý báo cáo thống kê số giờ làm việcQuản lý dự án Bộ phận quản lý dự án Quản lý giao việc cho dự

Phê duyệt hoặc từ chối Timesheet, yêu cầu xin nghỉ

Nhân viên Nhân viên Quản lý timesheet cá nhân

Gửi yêu cầu xin nghỉ

Quản trị Bộ phận quản trị Cập nhật danh mục, phân quyền cho các nhóm còn lại

Ta có : Vì 1 User có thuộc tính RoleId là thuộc tính đa trị nên ta tách ra thực thể mới UserRole ( UserRoleId, UserId,RoleId)

Ta có quan hệ của các bảng :

Mô hình dữ liệu hệ thống

1.Số hiệu: 1 2.Tên bảng: Role 3.Bí danh: Role

4 Mô tả: Lưu trữ thông tin về vai trò của người dùng

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu

1 RoleId Mã vai trò N(10) Số nguyên x

2 Name Tên vai trò C(30) Chữ cái x

3 IsStatic Tình trạng cố định N(1) 0 hoặc 1

4 IsDefault Tình trạng mặc định N(1) 0 hoặc 1

5 Description Mô tả C(250) Chữ cái

Trạng thái vai trò, ngăn chặn xung đột cập nhật

Số Tên Cột khóa ngoài

1.Số hiệu: 2 2.Tên bảng: User 3.Bí danh: Employees

4 Mô tả: Lưu trữ thông tin về người sử dụng là nhân viên

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu

1 UserId Mã người dùng N(10) Số nguyên x

2 Name Tên người dùng C(100) Chữ cái x

3 UserName Tên đăng nhập C(100) Chữ cái

4 Password Mật khẩu C(30) Số nguyên + chữ cái

5 AvatarPath Đường dẫn ảnh C(30) Chữ cái

Số điện thoại C(10) Chữ cái

6 Branch Chi nhánh C(50) Chữ cái

7 Address Địa chỉ C(250) Chữ cái

8 JobTitle Tiêu đềcông viẹc C(250) Chữ cái

9 Level Trình độ C(10) Chữ cái

Lấy lại mật khẩu N(10) Số nguyên

Trạng thái tên C(250) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 3 2.Tên bảng: Permision 3.Bí danh:

4 Mô tả: Lưu trữ thông tin chi tiết vai trò và quyền của vai trò

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 PermisionId Mã quyền N(10) Số nguyên x

2 Name Tên quyền C(100) Chữ cái x

3 IsGranted Trạng thái quyền N(1) 0 hoặc 1

Số Tên Cột khóa ngoài

1.Số hiệu: 4 2.Tên bảng: Project 3.Bí danh:Project

4 Mô tả: Lưu trữ thông tin về dự án

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 ProjectId Mã dự án N(10) Số nguyên x

2 Name Tên dự án C(100) Chữ cái x

3 TimeStart Thời gian bắt đầu D(8) dd/mm/yyy

4 TimeEnd Thời gian kết thúc D(8) dd/mm/yyy

5 Status Trạng thái N(10) Số nguyên

6 Code Quy tắc C(100) Chữ cái

7 ProjectType Loại dự án C(100) Chữ cái

Số Tên Cột khóa Quan hệ với bảng

1.Số hiệu: 5 2.Tên bảng: Tasks 3.Bí danh:Tasks

4 Mô tả: Lưu trữ thông tin về công việc trong dự án

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 TaskId Mã công việc N(10) Số nguyên x

2 Name Tên công việc C(100) Chữ cái x

3 Type Loại công việc C(250) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 6 2.Tên bảng: ProjectTask 3.Bí danh:

4 Mô tả: Lưu trữ thông tin chi tiết về công việc , dự án

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 ProjectTaskId Mã chi tiết N(10) Số nguyên x

2 Billable Có thể thanh toán N(1) 0 hoặc 1

Số Tên Cột khóa ngoài

1.Số hiệu: 7 2.Tên bảng: ProjectUser 3.Bí danh:

4 Mô tả: Lưu trữ thông tin chi tiết về nhân viên và dự án

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 ProjectUserId Mã chi tiết N(10) Số nguyên x

2 RoleName Tên vai trò C(100) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 8 2.Tên bảng: ProjectTargetUser 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về giao việc

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

Mã phân công N(10) Số nguyên x

2 UserType Vai trò C(100) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 9 2.Tên bảng: MyTimesheets 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về chấm công

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 TimesheetId Mã chấmcông N(10) Số nguyên x

2 TypeOfWork Kiểu công việc C(100) Chữ cái x

3 Note Ghi chú C(250) Chữ cái x

5 DateAt Ngày D(8) Dd/mm/yyyy x

6 IsCharged Trạng thái trả phí N(1) 0 hoặc 1

7 WorkingTime Số giờ N(10) Số nguyên x

Số Tên Cột khóa ngoài

4 Mô tả: Lưu trữ thông tin về mở khóa timesheet

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 UnlockId Mã mở khóa N(10) Số nguyên x

Số Tên Cột khóa ngoài

1.Số hiệu: 11 2.Tên bảng: DayOffType 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về kiểu ngày nghỉ

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 DayofftypeId Mã kiểu ngày nghỉ N(10) Số nguyên x

3 Status Trạng thái N(10) Số nguyên

4 Length Độ dài N(10) Số nguyên

Số Tên Cột khóa ngoài

1.Số hiệu: 12 2.Tên bảng: AbsenceDayRequest 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về yêu cầu ngày nghỉ

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 RequestId Mã yêu cầu N(10) Số nguyên x

2 Status Trạng thái C(50) Chữ cái x

3 Reason Lý do C(250) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 13 2.Tên bảng: AbsenceDayDetail 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về chi tiết ngày nghỉ

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 DetailId Mã chi tiết N(10) Số nguyên x

3 DateAt Ngày hiện tại D Dd/mm/yyyy

4 Hour Số giờ N(10) Số nguyên

Số Tên Cột khóa ngoài

1.Số hiệu: 14 2.Tên bảng: Customer 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về khách hàng

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 CustomerId Mã khách hàng N(10) Số nguyên x

2 Name Tên khách hàng C(250) Chữ cái x

3 Adrress Địa chỉ C(250) Chữ cái

Số Tên Cột khóa ngoài

1.Số hiệu: 15 2.Tên bảng: DayOffSetting 3.Bí danh:

4 Mô tả: Lưu trữ thông tin về lịch làm việc

5 Mô tả chi tiết các cột

Số Tên cột Mô tả Kiểu dữ liệu Khuôn dạng N

1 SettingId Mã cài đặt N Số nguyên x

2 Name Tên ngày C(30) Chữ cái x

Đặc tả bảng dữ liệu

5 Coeffiecient Hệ số N Số nguyên

Số Tên Cột khóa ngoài

Thiết kế giao diện

Thiết kế giao diện nhập liệu cho danh mục (Đặc tả chi tiết 2 danh mục và liệt kê các danh mục còn lại)

liệt kê các danh mục còn lại)

3.2.2.1.Đặc tả chi tiết (02 danh mục) a.Giao diện nhập liệu cho danh mục Task

- Người sử dụng: Quản trị

- Mẫu thiết kế: Thiết kế theo ảnh dưới

- Nhiệm vụ: Thêm, sửa, xóa các task cần thiết trong dự án

- Tiền điều kiện: đã đăng nhập quyền quản trị hệ thống (Admin)

- Hậu điều kiện: Trở về màn hình chính

Thao tác người dùng Mô tả

Bước 1: Truy cập vào link phần mềm +Hiển thị màn hình đăng nhập với tên đăng nhập và mật khẩu Bước 2: Nhập tên đăng nhập và mật khẩu

• Nếu mật khẩu và tên đăng nhập đúng thì hiển thị màn hình chính

• Nếu mật khẩu tên đăng nhập không đúng thì quay trở lại màn hình đầu

Bước 3: Click chọn Admin +Hiển thị danh sách menu danh mục

Bước 4: Click chọn Task +Hiển thị màn hình với danh sách Task Bước 5: Tùy chọn thực hiện các chức năng

+ Click chọn button New Task

+Nhập tên task, chọn loại Task từ option có sẵn.

+Click button Edit của bản ghi muốn sửa

+Hiển thị form thêm mới sẵn sàng với các ô input ở trạng thái trống.

+Hiển thị danh sách loại Task

+Hiển thị form chi tiết Task với cácinput ở trạng thái enable+Form hiển thị tương ứng thông tin sửa+Hiển thị thông báo xác nhận xóa

+Click chọn button Xóa bản ghi muốn xóa

+Nhập từ khóa tìm kiếm

+Input ở trạng thái sẵn sàng nhập từ khóa

+ Nhận từ khóa +Xảy ra 2 trường hợp:

• Nếu có dữ liệu sẽ hiển thị danh sách bản ghi theo từ khóa tìm

• kiếmNếu không sẽ không hiển thị gì

+Hệ thống load lại danh sách Task

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình danh sách Task

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ

+Xóa từ khóa và nhấn Enter

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình danh sách Task

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ +Trở lại màn hình danh sách Task

• Thông báo xóa thành công , trở lại màn hình danh sách Task

• Thông báo task đang ở trong 1 project nên không thể xóa +Trở lại màn hình danh sách Task.

+Trở lại màn hình danh sách Task ban đầu Bước 7: Click chọn HomePage + Trở về màn hình chính

Bảng dữ liệu liên quan

Tên bảng Thuộc tính sử dụng Mức độ sử dụng Ràng buộc dữ liệu

Không được để trống Nhập chữ cái có dấu, không được để trống Chỉ được phép chọn b.Giao diện nhập liệu cho danh mục Leave Type

- Tên danh mục: Leave Type

- Người sử dụng: Quản trị

- Mẫu thiết kế: Thiết kế theo ảnh dưới

- Tiền điều kiện: đã đăng nhập quyền quản trị hệ thống (Admin)

- Hậu điều kiện: Trở về màn hình chính

Thao tác người dùng Mô tả

Bước 1: Truy cập vào link phần mềm +Hiển thị màn hình đăng nhập với tên đăng nhập và mật khẩu Bước 2: Nhập tên đăng nhập và mật khẩu

• Nếu mật khẩu và tên đăng nhập đúng thì hiển thị màn hình chính

• Nếu mật khẩu tên đăng nhập không đúng thì quay trở lại màn hình đầu Bước 3: Click chọn Admin +Hiển thị danh sách menu danh mục

Bước 4: Click chọn Leave Type +Hiển thị màn hình với danh sách leave type Bước 5: Tùy chọn thực hiện các chức năng

+Nhập tên loại, chọn kiểu nghỉ từ option có sẵn, nhập số ngày phép

+Sửa thông tin leave type

+Click chọn button Xóa bản ghi muốn

+Hiển thị form thêm mới sẵn sàng với các ô input ở trạng thái trống.

+Hiển thị danh sách kiểu nghỉ

+Hiển thị 2 button chức năng sửa và xóa +Hiển thị form chi tiết leave type với các input ở trạng thái enable

+Form hiển thị tương ứng thông tin sửa+Hiển thị thông báo xác nhận xóa xóa

+Hệ thống load lại danh sách Task

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình danh sách Task

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình danh sách Task

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ+Trở lại màn hình danh sách leave type

+Thông báo xóa thành công +Trở lại màn hình danh sách leave type

+Trở lại màn hình danh sách leave type Bước 7: Click chọn HomePage + Trở về màn hình chính

Bảng dữ liệu liên quan

Tên bảng Thuộc tính sử dụng Mức độ sử dụng

Ràng buộc toàn vẹn dữ liệu DayOffType DayOffTypeId

Không được để trống Nhập chữ cái có dấu Chỉ được phép chọn Chỉ được phép nhập số

3.2.2.2.Liệt kê các danh mục còn lại c.Danh mục Client

Thiết kế giao diện nhập liệu cho nghiệp vụ ( Đặc tả chi tiết 2 nghiệp vụ và liệt kê các nghiệp vụ còn lại)

liệt kê các nghiệp vụ còn lại)

3.2.3.1.Đặc tả chi tiết (02 nghiệp vụ ) a.Giao diện nhập liệu cho nghiệp vụ Log Timesheet( Chấm công)

- Người sử dụng: Nhân viên

- Nhiệm vụ: Chấm công và gửi yêu cầu phê duyệt chấm công

- Mẫu thiết kế: hình dưới.

Thao tác người dùng Mô tả

Bước 1: Truy cập vào link phần mềm +Hiển thị màn hình đăng nhập với tên đăng nhập và mật khẩu Bước 2: Nhập tên đăng nhập và mật khẩu

• Nếu mật khẩu và tên đăng nhập đúng thì hiển thị màn hình chính

• Nếu mật khẩu tên đăng nhập không đúng thì quay trở lại màn hình đầu

Bước 4: Click chọn My Timesheet +Hiển thị màn hình My Timesheet

Bước 5: Tùy chọn thực hiện các chức năng

+Chọn dự án, chọn task,nhập nội dung,nhập số giờ làm

+Click chọn ngày trước đã log.

+Click button Edit của bản ghi muốn sửa.

+Sửa thông tin Time sheet

+Click chọn ngày trước đã log

+Click chọn button Xóa bản ghi muốn xóa

+Hiển thị form thêm mới sẵn sàng với các ô input ở trạng thái trống.

+Hiển thị danh sách dự án, danh sách loại Task.

+Hiển thị ngày trước cùng timesheet đã log

+Hiển thị form chi tiết Timesheet với cácinput ở trạng thái enable.

+Form hiển thị tương ứng thông tin sửa

+Hiển thị ngày trước cùng timesheet đã log

+Hiển thị thông báo xác nhận xóa.

-Chức log timesheet theo tuần:

+Chọn dự án, chọn task,nhập nội dung,nhập số giờ làm

+Quay lại thao tác như chức năng thêm

+Hiển thị tất cả các ngày trong tuần cần log

+Hiển thị form thêm mới sẵn sàng với các ô input ở trạng thái trống.

+Hiển thị danh sách dự án, danh sáchloại Task

+Hiển thị ngày cần log timsheet hôm nay

+Xử lý như chức năng thêm +Hệ thống load lại dữ liệu trang my timesheet Bước 6

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình my timesheet

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ

-Chức năng log timesheet theo tuần

+Thao tác giống chức năng thêm

+Thao tác giống chức năng thêm

+Trở lại màn hình my timesheet

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình danh sách Task

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ +Trở lại màn hình danh sách Task

+ Thông báo xóa thành công , trở lại màn hình mytimesheet

+Trở lại màn hình danh sách Task.

+Xử lý giống chức năng thêm

+Xử lý giống chức năng thêm Bước 7: Click chọn HomePage + Trở về màn hình chính

Tên bảng Thuộc tính sử dụng Mức độ sử dụng

Ràng buộc toàn vẹn dữ liệu

Chỉ được phép chọn Chỉ được phép xem

R C,R,E,D C,R,E,D trống Chỉ được phép chọn Không được để trống

Chỉ được phép chọn Chỉ được phép chọn Được phép sửa Chỉ được phép chọn Chỉ được phép chọn Chỉ được nhập số, không được để trống

Chỉ được phép chọn/ Không được để trống

Chỉ được phép chọn/không được để trống

Project ProjectId R Không được để trống

Task TaskId R Không được để trống

Chỉ được phép xem ProjectUser ProjectUserId

Chỉ được phép xem b.Giao diện nhập liệu cho nghiệp vụ xin nghỉ

- Tên giao diện: My Leave Day

- Người sử dụng: Nhân viên

- Nhiệm vụ: Tạo yêu cầu xin nghỉ và gửi yêu cầu xin nghỉ

- Mẫu thiết kế: hình dưới.

Bước 1: Truy cập vào link phần mềm +Hiển thị màn hình đăng nhập với tên đăng nhập và mật khẩu Bước 2: Nhập tên đăng nhập và mật khẩu

• Nếu mật khẩu và tên đăng nhập đúng thì hiển thị màn hình chính

• Nếu mật khẩu tên đăng nhập không đúng thì quay trở lại màn hình đầu

Bước 4: Click chọn My Leave Day +Hiển thị màn hình My Leave Day Bước 5 : Tùy chọn thực hiện các chức năng

+ Click chọn ngày trong bảng lịch

+Click chọn khoảng thời gian muốn nghỉ

+Nhập lí do nghỉ, chọn kiểu nghỉ

-Tạo yêu cầu cho tháng tiếp :

+ Click chọn ngày trong bảng lịch

+Click chọn khoảng thời gian muốn nghỉ

+Nhập lí do nghỉ, chọn kiểu nghỉ

+Hiển thị các lựa chọn :off morning/off afternoon/ off fullday/ off theo giờ +Hiển thị form yêu cầu xin nghỉ với các input ở trạng thái trống

+Hiển thị danh sách kiểu nghỉ

The article outlines the features of a leave request system, including the display of the upcoming month's calendar, options for leave types such as off in the morning, off in the afternoon, off for a full day, and hourly leave Additionally, it highlights the presentation of a leave request form with all input fields initially left blank for user convenience.

+Hiển thị danh sách kiểu nghỉ+Hiển thị bảng lịch tháng trước

-Xem chi tiết ngày nghỉ tháng trước:

+Click chọn ngày nghỉ muốn xem chi tiết

-Tạo yêu cầu tháng hiện tại :

+ Click chọn ngày trong bảng lịch

+Click chọn khoảng thời gian muốn nghỉ

+Nhập lí do nghỉ, chọn kiểu nghỉ

+Click Button Send Leave Request

+Hiển thị thông tin chi tiết yêu cầu nghỉ

The current month's calendar is displayed, offering options for time off including morning, afternoon, full day, or hourly requests Additionally, a leave request form is presented with empty input fields for user completion.

+Hiển thị danh sách kiểu nghỉ

+Hệ thống thông báo chưa chọn ngày

+Hệ thống load lại dữ liệu trang my leave day

-Tạo yêu cầu cho tháng tiếp :

-Tạo yêu cầu tháng hiện tại:

• Nếu thông tin hợp lệ sẽ báo lưu thành công, trả về màn hình my leave day, trạng thái

-Xem chi tiết ngày nghỉ tháng trước:

• Nếu thông tin không hợp lệ, hệ thống sẽ không lưu Input không hợp lệ sẽ được tô đỏ

• +Trở lại màn hình leave day

+Trở lại màn hình leave day Bước 7 : Click chọn HomePage + Trở về màn hình chính

Tên bảng Thuộc tính sử dụng Mức độ sử dụng

Ràng buộc toàn vẹn dữ liệu DayOffType DayOffTypeId

Không được để trống Chỉ được phép chọn, không được để trống

Chỉ được phép xem AbsenceDayReque st

Không được để trống Chỉ được phép xem Chỉ được phép xem

Nhập chữ cái có dấu AbsenceDayDetail DetailId

Chỉ được phép chọn và không được để trống, người dùng chỉ có thể nhập số Trong phần liệt kê các màn hình nghiệp vụ, bao gồm: c Dự án (giao việc), d Timesheet (phê duyệt hoặc từ chối timesheet), e Giám sát timesheet (tổng hợp và xem chi tiết tất cả timesheet), f Ngày nghỉ (xem chi tiết ngày nghỉ), g Số lượng nhân viên theo dự án (theo dõi số lượng nhân viên trong ngày làm việc), và h Thiết lập ngày nghỉ (cài đặt ngày nghỉ).

I.1 Nomal Working ( Thống kê giờ làm việc thông thường và unlock Timesheet)I.2 OverTime ( Thống kê làm ngoài giờ )

Thiết kế báo cáo

3.2.4.1 Đặc tả chi tiết báo cáo ( 01 báo cáo)

Báo cáo : Tổng số giờ làm việc của nhân viên

-Tên báo cáo : Tổng số giờ làm việc của nhân viên

-Người lập: Bộ phận quản lý nhân sự

-Nhu cầu sử dụng : Phục vụ cho việc tính lương nhân viên

-Nhiệm vụ: Hàng tháng, từ danh sách timesheet đã log, lập báo cáo thống kê tổng số giờlàm việc của nhân viên

-Môi trường: Ban giám đốc

-Màu : toàn bộ màu trắng

-Bố cục : giống như mẫu báo cáo thiết kế bên dưới

-Bảng dữ liệu sử dụng :

Tên bảng Thuộc tính sủ dụng

UserName ProjectName TaskName Status DateAt IsCharged

DateAtDateTypeHour-Mẫu báo cáo:

3.2.4.2 Liệt kê tên các báo cáo còn lại

-Chi tiết timesheet của nhân viên

-Chi tiết dự án cho khách hàng

-Báo cáo tổng số giờ làm việc ngoài giờ

Cơ sở lý thuyết

Ngôn ngữ sử dụng

4.1.1.1 Phía backend sử dụng nền tảng ASP.NET với ngôn ngữ c#

ASP.Net là nền tảng phát triển web do Microsoft phát hành lần đầu vào năm 2002, được sử dụng để xây dựng các ứng dụng dựa trên web.

Phiên bản đầu tiên của ASP.Net là 1.0, trong khi phiên bản mới nhất hiện nay là 4.6 ASP.Net được thiết kế để tương thích với giao thức HTTP, là giao thức chuẩn cho tất cả các ứng dụng web.

Các ứng dụng ASP.Net có thể được viết bằng nhiều ngôn ngữ Net khác nhau. Trong đó có các kiểu ngôn ngữ như C #, VB.Net và J #.

+ C# nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.

-C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm

Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạng trên các nền tảng và cấu trúc máy tính khác nhau.

-C# với sự hỗ trợ mạnh mẽ của NET Framework giúp cho việc tạo một ứng dụng Windows Forms hay WPF (Windows Presentation Foundation), trở nên rất dễ dàng.

-C# là ngôn ngữ đơn giản

Ngôn ngữ C# được xây dựng trên nền tảng của C++ và Java, do đó, nó có cấu trúc khá đơn giản Những người quen thuộc với C, C++ hoặc Java sẽ nhận thấy C# tương đồng về diện mạo, cú pháp, biểu thức và toán tử Tuy nhiên, C# đã được cải tiến để trở nên dễ sử dụng hơn, với một số cải tiến như loại bỏ các phần thừa thãi và bổ sung cú pháp mới.

-C# là ngôn ngữ hiện đại

Khi bắt đầu học lập trình, bạn có thể gặp một số khái niệm mới mẻ như xử lý ngoại lệ, kiểu dữ liệu mở rộng và bảo mật mã nguồn Những đặc tính này được xem là cần thiết cho một ngôn ngữ lập trình hiện đại, và C# đáp ứng đầy đủ các yêu cầu đó Trong series bài học này, bạn sẽ dần dần tìm hiểu và nắm vững những đặc tính quan trọng này.

-C# là một ngôn ngữ lập trình thuần hướng đối tượng

Lập trình hướng đối tượng(tiếng Anh: Object-oriented programming, viết tắt: OOP) là một phương pháp lập trình có 4 tính chất Đó là tính trừu tượng

C# hỗ trợ các đặc tính lập trình hướng đối tượng như tính trừu tượng, tính đóng gói, tính đa hình và tính kế thừa Để hiểu rõ hơn về những đặc tính này, chúng ta sẽ có một chương trình trình bày chi tiết.

-C# là một ngôn ngữ ít từ khóa

Ngôn ngữ C# được biết đến với việc sử dụng một số lượng giới hạn từ khóa, chỉ khoảng 80 từ khóa và một vài kiểu dữ liệu xây dựng sẵn Nhiều người cho rằng ngôn ngữ có nhiều từ khóa sẽ mạnh mẽ hơn, nhưng điều này không hoàn toàn chính xác C# là một ví dụ điển hình cho thấy sự linh hoạt và khả năng thực hiện đa dạng nhiệm vụ khi người dùng nắm vững ngôn ngữ này Ngoài ra, C# còn sở hữu nhiều ưu điểm nổi bật khác.

• C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh với C#.

• C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau.

• C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó.

• C# là một phần của NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này.

• C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ.

4.1.1.2 Phía Front end sử dụng framework Angular (version 6)

Angular is a JavaScript framework developed by Google for creating Single Page Applications (SPAs) using JavaScript, HTML, and TypeScript It offers integrated features such as animations, HTTP services, auto-complete, navigation, toolbars, and menus Code is written in TypeScript, compiled to JavaScript, and displayed similarly in browsers Angular version 6 supports HTML5, CSS3, and TypeScript.

HTML5 là ngôn ngữ lập trình phát triển từ HTML, đóng vai trò quan trọng trong World Wide Web (WWW), giúp thiết kế và cấu trúc website Nó hỗ trợ đa phương tiện tối đa, tạo ra trải nghiệm thân thiện cho người dùng trên mọi thiết bị và trình duyệt CSS3, phiên bản nâng cấp của CSS (Cascading Style Sheets), kế thừa và bổ sung nhiều tính năng mới, đang trở thành lựa chọn phổ biến trong thiết kế website.

CSS là một công cụ quan trọng cho phép chúng ta thực hiện các thay đổi về mặt hình thức của trang web, bao gồm việc điều chỉnh bố cục, màu sắc và font chữ.

CSS hoạt động bằng cách xác định các phần tử HTML thông qua tên thẻ, ID hoặc Class, từ đó áp dụng các thuộc tính cần thiết để thay đổi kiểu dáng của các phần tử đã chọn.

• Nếu một website không có CSS thì đó sẽ chỉ đơn thuần là một trang chứa văn bản với 2 màu chủ đạo là trắng và đen.

TypeScript là một dự án mã nguồn mở do Microsoft phát triển, được xem như phiên bản nâng cao của JavaScript nhờ vào việc bổ sung kiểu tĩnh và lớp hướng đối tượng Nó có khả năng phát triển ứng dụng cho cả client-side (như Angular2) và server-side (như NodeJS).

TypeScript tích hợp đầy đủ các tính năng của ECMAScript 2015 (ES6), bao gồm classes và modules Hơn nữa, khi ECMAScript 2017 được phát hành, TypeScript cũng sẽ cập nhật phiên bản của mình để áp dụng những công nghệ mới nhất từ ECMAScript.

Lợi ích khi dùng typescript

TypeScript hỗ trợ phát triển các dự án lớn một cách dễ dàng nhờ vào việc áp dụng các kỹ thuật mới nhất và lập trình hướng đối tượng.

• Nhiều Framework lựa chọn: Hiện nay các Javascript Framework đã dần khuyến khích nên sử dụng TypeScript để phát triển, ví dụ như AngularJS 2.0 và Ionic 2.0.

TypeScript hỗ trợ đầy đủ các tính năng mới nhất của Javascript, đảm bảo việc áp dụng các kỹ thuật hiện đại như phiên bản ECMAScript 2015 (ES6).

TypeScript là một ngôn ngữ lập trình mã nguồn mở, cho phép người dùng sử dụng miễn phí và nhận được sự hỗ trợ từ cộng đồng.

-Đổi mới trong Angular version 6:

Hệ quản trị cơ sở dữ liệu

Hệ thống sử dụng hệ quản trị cơ sở dữ liệu SQL

Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm giúp tạo ra và quản lý cơ sở dữ liệu, đồng thời kiểm soát tất cả các truy cập vào dữ liệu đó.

SQL là một ngôn ngữ tiêu chuẩn để lưu trữ, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu

SQL không chỉ là một ngôn ngữ máy tính phổ biến mà còn rất hữu ích Nó thường được sử dụng cho nhiều mục đích khác nhau trong quản lý và truy xuất dữ liệu.

• Tạo cơ sở dữ liệu, bảng và view mới.

• Để chèn các bản ghi vào trong một cơ sở dữ liệu.

• Để xóa các bản ghi từ một cơ sở dữ liệu.

• Để lấy dữ liệu từ một cơ sở dữ liệu.

Một trong những lý do khiến cho SQL được sử dụng phổ biến, chính là nó đã cho phép người dùng thực hiện đa dạng các chức năng sau:

• Cho phép người dùng truy cập dữ liệu trong các hệ thống quản lý cơ sở dữ liệu quan hệ.

• Cho phép người dùng mô tả dữ liệu.

• Cho phép người dùng xác định dữ liệu trong cơ sở dữ liệu và thao tác dữ liệu đó.

• Cho phép nhúng trong các ngôn ngữ khác sử dụng mô-đun SQL, thư viện và trình biên dịch trước.

• Cho phép người dùng tạo và thả các cơ sở dữ liệu và bảng.

• Cho phép người dùng tạo chế độ view, thủ tục lưu trữ, chức năng trong cơ sở dữ liệu.

• Cho phép người dùng thiết lập quyền trên các bảng, thủ tục và view.

Dữ liệu hiện diện khắp nơi, từ màn hình laptop đến điện thoại của bạn Việc nắm vững SQL sẽ giúp bạn hiểu cách thức hoạt động và quản lý các loại dữ liệu này.

Với SQL, việc thêm, sửa, đọc và xóa dữ liệu trở nên đơn giản và thuận tiện hơn bao giờ hết Bạn chỉ cần thực hiện một vài thao tác cơ bản thay vì phải sử dụng nhiều câu lệnh phức tạp như trong các ngôn ngữ lập trình khác.

SQL làm cho lập trình trở nên dễ dàng hơn bằng cách cho phép lưu trữ nhiều dữ liệu cho nhiều ứng dụng khác nhau trong cùng một cơ sở dữ liệu Việc truy cập các cơ sở dữ liệu này cũng trở nên đơn giản hơn nhờ vào cách thức tương đồng.

Ngôn ngữ SQL được hỗ trợ và sử dụng rộng rãi bởi nhiều công ty công nghệ hàng đầu thế giới như Microsoft, IBM và Oracle Sự phát triển mạnh mẽ và sự tồn tại lâu dài của SQL chứng tỏ rằng vị trí của nó trong ngành công nghệ thông tin hiện nay rất khó bị thay thế bởi bất kỳ ngôn ngữ máy tính nào khác.

Ngày đăng: 17/11/2021, 16:09

HÌNH ẢNH LIÊN QUAN

1.2.Mô hình hóa hệ thống - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
1.2. Mô hình hóa hệ thống (Trang 15)
2.2.1.2.Mô hình thực thể liên kết mở rộng - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
2.2.1.2. Mô hình thực thể liên kết mở rộng (Trang 32)
• Mã hóa kiểu thực thể thành bảng quan hệ/ Mã hóa kiểu thuộc tính thành trường dữ liệu - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
h óa kiểu thực thể thành bảng quan hệ/ Mã hóa kiểu thuộc tính thành trường dữ liệu (Trang 33)
Kiểu thực thể Bảng quan hệ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
i ểu thực thể Bảng quan hệ (Trang 34)
Kiểu thực thể Bảng quan hệ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
i ểu thực thể Bảng quan hệ (Trang 34)
Kiểu thực thể Bảng quan hệ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
i ểu thực thể Bảng quan hệ (Trang 36)
Kiểu thực thể Bảng quan hệ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
i ểu thực thể Bảng quan hệ (Trang 37)
Kiểu thực thể Bảng quan hệ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
i ểu thực thể Bảng quan hệ (Trang 38)
Mô hình - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
h ình (Trang 39)
Ta có quan hệ của các bảng: - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
a có quan hệ của các bảng: (Trang 46)
3.1.3 Mô hình dữ liệu hệ thống - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
3.1.3 Mô hình dữ liệu hệ thống (Trang 47)
Quan hệ với bảng - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
uan hệ với bảng (Trang 48)
1.Số hiệu: 5 2.Tên bảng: Tasks 3.Bí danh:Tasks - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
1. Số hiệu: 5 2.Tên bảng: Tasks 3.Bí danh:Tasks (Trang 50)
Quan hệ với bảng - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
uan hệ với bảng (Trang 52)
Quan hệ với bảng - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
uan hệ với bảng (Trang 54)
+Trở lại màn hình danh sách Task ban đầu - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
r ở lại màn hình danh sách Task ban đầu (Trang 59)
+Trở lại màn hình mytimesheet +Xảy ra 2 trường hợp: - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
r ở lại màn hình mytimesheet +Xảy ra 2 trường hợp: (Trang 69)
+Click chọn ngày trong bảng lịch - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
lick chọn ngày trong bảng lịch (Trang 75)
Hình 2: Danh sách khách hàng - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 2 Danh sách khách hàng (Trang 87)
Hình 3: Thiết lập ngày nghỉ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 3 Thiết lập ngày nghỉ (Trang 87)
Hình 4: Thống kê số giờlàm thông thường - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 4 Thống kê số giờlàm thông thường (Trang 88)
Hình 6: Danh sách dự án - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 6 Danh sách dự án (Trang 89)
Hình 8: Phê duyệt yêu cầu xin nghỉ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 8 Phê duyệt yêu cầu xin nghỉ (Trang 90)
Hình 7: Quảnlý timesheets của nhân viên - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 7 Quảnlý timesheets của nhân viên (Trang 90)
Hình 9: Theo dõi số lượng nhân viên nghỉ trong dự án - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 9 Theo dõi số lượng nhân viên nghỉ trong dự án (Trang 91)
Hình 11: Mytimesheet - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 11 Mytimesheet (Trang 92)
Hình 12: Xin nghỉ - Nguyễn Thị Hường-HTTT15-Xay-dung-phan-mem-timesheet-NguyenHoaiAnh-Chinhsuacuoi (1)
Hình 12 Xin nghỉ (Trang 93)
w