1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp

54 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Hệ Thống Website Hỗ Trợ Chấm Công Cho Doanh Nghiệp
Tác giả Phạm Văn Đông
Người hướng dẫn ThS. Nguyễn Văn Phát
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 54
Dung lượng 0,98 MB

Nội dung

Website bao gồm các chức năng năng chính cho người sử dụng là nhân viên như: đăng nhập hệ thống, quản lý thông tin cá nhân, chấm công, quản lý đơn, xem bảng chấm công, xem bảng lương.. Đ

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

CÔNG CHO DOANH NGHIỆP

Giảng viên hướng dẫn duyệt

Đà Nẵng, 01/2024

Trang 3

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN

Trang 4

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Trang 5

Website bao gồm các chức năng năng chính cho người sử dụng là nhân viên như: đăng nhập hệ thống, quản lý thông tin cá nhân, chấm công, quản lý đơn, xem bảng chấm công, xem bảng lương Đối với quản lý nhân sự sẽ bao gồm các chức năng của nhân viên và có thêm các chức năng: Quản lý phòng ban, quản lý vị trí, quản lý nhân viên, quản lý các loại đơn, duyệt đơn Đối với kế toán sẽ bao gồm các chức năng của nhân viên và có thêm các chức năng: quản lý lương nhân viên, xem lịch sử chấm công, thống kê, xuất báo cáo Đối với quản trị viên sẽ bao gồm các chức năng: quản lý tài khoản người dùng, phân quyền

Trang 6

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: ThS Nguyễn Văn Phát Sinh viên thực hiện: Phạm Văn Đông Mã SV: 1911505310208

1 Tên đề tài:

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

2 Các số liệu, tài liệu ban đầu:

− Dựa trên qui định upload tài liệu, các qui tắc đặt câu hỏi − Tài liệu tham khảo

3 Nội dung chính của đồ án:

Quá trình xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp: − Thu thập thông tin tài liệu liên quan và khảo sát thực tế

− Phân tích thiết kế các chức năng của hệ thống − Phân tích thiết kế cơ sơ dữ liệu

− Thiết kế giao diện cho các chức năng − Xây dựng hệ thống website

− Kiểm thử chương trình − Hoàn thành báo cáo tổng hợp

4 Các sản phẩm dự kiến

− Website hỗ trợ chấm công cho doanh nghiệp − File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 18/9/2023 6 Ngày nộp đồ án: 21/01/2024

Đà Nẵng, ngày 21 tháng 01 năm 2024

Trưởng Bộ môn Người hướng dẫn

Trang 7

LỜI NÓI ĐẦU

Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình

Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị

Hiện nay các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành tự động hóa trên Internet Thông qua các sản phẩm và công nghệ này, chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu của website Với những thao tác đơn giản trên máy có nối mạng Internet bạn sẽ có tận tay những gì mình cần mà không phải mất nhiều thời gian Bạn chỉ cần vào các trang web làm theo hướng dẫn và click vào những gì bạn cần Các hoạt động sẽ thực hiện ngay trên hệ thống đó

Ở Việt Nam cũng có rất nhiều trường đại học tự động hóa các quy trình trên hệ thống website nhưng do những khó khăn về cơ sở hạ tầng như viễn thông chưa phát triển mạnh nên các quy trình vẫn còn rất nhiều sổ sách, giấy tờ thủ công dẫn đến thiếu hiệu quả, mất khá nhiều thời gian

Để tiếp cận và góp phần đẩy mạnh sự phổ biến và tiện ích của website, em đã tìm hiểu và cài đặt “Hệ thống website hỗ trợ chấm công cho doanh nghiệp”

Với sự hướng dẫn tận tình của ThS Nguyễn Văn Phát em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và góp ý của quí Thầy cô

Chúng em xin chân thành cảm ơn!

Trang 8

CAM ĐOAN

Em xin cam đoan: 1 Những nội dung trong luận văn này do chúng em thực hiện dưới sự hướng dẫn

của thầy ThS Nguyễn Văn Phát

2 Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng em xin chịu hoàn toàn trách nhiệm

Sinh viên thực hiện

Trang 9

MỤC LỤC

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN i

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii

1.3 RestfulAPI (RestController Spring Boot) 4

1.4 Tổng quan về Hệ quản trị cơ sở dữ liệu PostgreSql 4

Trang 10

Chương 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG 10

2.1 Khảo sát yêu cầu 10

2.2.2.1 Kịch bản cho usecase Chấm công 12

2.2.2.2 Kịch bản cho usecase Xem bảng chấm công 13

2.2.2.3 Kịch bản cho usecase Xem lịch sử chấm công 13

2.2.2.4 Kịch bản cho usecase Quản lý lương 14

2.2.2.5 Kịch bản cho usecase Xem bảng lương 14

2.2.2.6 Kịch bản cho usecase Quản lý loại phép 15

2.2.2.7 Kịch bản cho usecase Quản lý phép 15

2.2.2.8 Kịch bản cho usecase Duyệt phép 16

2.2.2.9 Kịch bản cho usecase Quản lý phòng ban 16

2.2.2.10 Kịch bản cho usecase Quản lý chức vụ 17

2.2.2.11 Kịch bản cho usecase Quản lý nhân viên 17

Trang 11

2.2.2.12 Kịch bản usecase Quản lý thông tin cá nhân 18

2.2.2.13 Kịch bản cho usecase Thống kê 18

2.2.2.14 Kịch bản cho usecase Báo cáo 19

2.2.2.15 Kịch bản cho usecase đăng nhập 19

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 28

3.1 Công cụ xây dựng chương trình 28

3.2 Giao diện chương trình 28

3.2.1 Giao diện trang chủ 28

3.2.2 Giao diện Chấm công 29

3.2.3 Giao diện Bảng chấm công 29

3.2.4 Giao diện Bảng lương 30

3.2.5 Giao diện Chi tiết bảng lương 30

3.2.6 Giao diện Lịch sử nghỉ phép 31

3.2.7 Giao diện Danh sách phòng ban 31

3.2.8 Giao diện Cập nhật thông tin phòng ban 32

3.2.9 Giao diện Danh sách chức vụ 32

3.2.10 Giao diện Cập nhật thông tin chức vụ 33

Trang 12

3.2.11 Giao diện Danh sách nhân viên 33

3.2.12 Giao diện Cập nhật thông tin nhân viên 34

3.2.13 Giao diện Thống kê 34

3.2.14 Giao diện Thống kê chi tiết 35

3.2.15 Giao diện đăng nhập 35

KẾT LUẬN & HƯỚNG PHÁT TRIỂN 36

TÀI LIỆU THAM KHẢO 37

Trang 13

DANH MỤC BẢNG BIỂU

Bảng 2.1: Kịch bản cho usecase Chấm công 12

Bảng 2.2: Kịch bản cho usecase Xem bảng chấm công 13

Bảng 2.3: Kịch bản cho usecase Xem lịch sử chấm công 13

Bảng 2.4: Kịch bản cho usecase Quản lý lương 14

Bảng 2.5: Kịch bản cho usecase Xem bảng lương 14

Bảng 2.6: Kịch bản cho usecase Quản lý loại phép 15

Bảng 2.7: Kịch bản cho usecase Quản lý phép 15

Bảng 2.8: Kịch bản cho usecase Duyệt phép 16

Bảng 2.9: Kịch bản cho usecase Quản lý phòng ban 16

Bảng 2.10: Kịch bản cho usecase Quản lý phòng ban 17

Bảng 2.11: Kịch bản cho usecase Quản lý nhân viên 17

Bảng 2.12: Kịch bản cho usecase Quản lý thông tin cá nhân 18

Bảng 2.13: Kịch bản cho usecase Thống kê 18

Bảng 2.14: Kịch bản cho usecase Báo cáo 19

Bảng 2.15: Kịch bản cho usecase Đăng nhập 19

Trang 14

DANH MỤC HÌNH VẼ

Hình 1.1: Mô hình Spring Framework Runtime 3

Hình 2.1: Biểu đồ Usecase 12

Hình 2.2: Sơ đồ hoạt động chấm công 20

Hình 2.3: Sơ đồ hoạt động Xem bảng chấm công 21

Hình 2.4: Sơ đồ hoạt động Xem bảng lương 22

Hình 2.5: Sơ đồ hoạt động quản lý nhân viên 23

Hình 2.6: Sơ đồ hoạt động đăng nhập 24

Hình 2.7: Biểu đồ thực thể quan hệ 25

Hình 2.8: Sơ đồ lớp 25

Hình 2.9: Sơ đồ tuần tự Chấm công 26

Hình 2.10: Sơ đồ tuần tự Xem bảng chấm công 26

Hình 2.11: Sơ đồ tuần tự Xem bảng lương 27

Hình 3.1: Giao diện trang chủ 28

Hình 3.2: Giao diện Chấm công 29

Hình 3.3: Giao diện Bảng chấm công 29

Hình 3.4: Giao diện Bảng lương 30

Hình 3.5: Giao diện Chi tiết bảng lương 30

Hình 3.6: Giao diện Lịch sử nghỉ phép 31

Hình 3.7: Giao diện Danh sách phòng ban 31

Hình 3.8: Giao diện Cập nhật thông tin phòng ban 32

Hình 3.9: Giao diện Danh sách chức vụ 32

Hình 3.10: Giao diện Cập nhật thông tin chức vụ 33

Hình 3.11: Giao diện Danh sách nhân viên 33

Hình 3.12: Giao diện Cập nhật thông tin nhân viên 34

Hình 3.13: Giao diện Thống kê 34

Hình 3.14: Giao diện Thống kê chi tiết 35

Hình 3.15: Giao diện Đăng nhập 35

Trang 15

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT

KÝ HIỆU: CHỮ VIẾT TẮT: - ĐHSPKT: Đại Học Sư Phạm Kỹ Thuật - CSVC: Cơ sở vật chất

- MVC: Model – View – Controller - ERD: Entity Relationship Diagram - UI: Giao diện

Trang 16

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

các chức năng - Quản lý phòng ban - Quản lý vị trí - Quản lý nhân viên - Quản lý loại đơn - Duyệt đơn • Đối với kế toán: bgồm các chức năng của nhân viên và sẽ có thêm các chức năng

- Quản lý lương - Xem lịch sử chấm công - Thống kê

- Xuất báo cáo

2 Đối tượng nghiên cứu và phạm vi nghiên cứu a Đối tượng nghiên cứu

Phân tích thiết kế chức năng chấm công, tính lương, quản lý thời gian làm việc của nhân viên

b Phạm vi nghiên cứu

Đề tài được áp dụng cho doanh nghiệp tại Đà Nẵng

3 Phương pháp nghiên cứu

• Phương pháp nghiên cứu lý thuyết thu thập thông tin qua internet, tài liệu, sách để tìm được các cơ sở lý thuyết liên quan vấn đề mình nghiên cứu

• Phương pháp triển khai thực nghiệm: xây dựng website

Trang 17

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

4 Cấu trúc của đồ án tốt nghiệp

Cấu trúc đồ án tốt nghiệp gồm các phần như sau: - Chương I: Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình Java, JavaScript, Spring Framework, ReactJs và hệ quản trị cơ sở dữ liệu PostgreSQL

- Chương II: Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chức năng của hệ thống Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD Thiết kế cơ sở dữ liệu Xây dựng kịch bản cho từng use-case trong hệ thống

- Chương III: Xây dựng giao diện và chức năng của hệ thống - Kết luận: Kết luận chung cho các chương trong đồ án Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát triển

Trang 18

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

Chương 1 CƠ SỞ LÝ THUYẾT

1.1 Ngôn ngữ lập trình Java

1.1.1 Java là gì?

Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành Bytecode, Bytecode sau đó sẽ được môi trường thực thi (Runtime Environment) chạy Cú pháp Java được vay mượn nhiều từ C và C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chương trình bằng

Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Lỗi! Không tìm thấy nguồn tham

chiếu

1.1.2 Lịch sử phát triển

Java được khởi đầu bởi James - Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991 Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi) do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này Java được phát hành vào năm 1994 Sau khi Oracle mua lại công ty Sun Microsystems năm 2009 - 2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch"

Lịch sử phiên bản java: − JDK 1.0 (23 tháng 01, 1996) − JDK 1.1 (19 tháng 2, 1997) − J2SE 1.2 (Playground) 08 tháng 12, 1998 − J2SE 1.3 (Kestrel) 08 tháng 5, 2000 − J2SE 1.4.0 (Merlin) 06 tháng 02, 2002 − J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004 − Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006 − Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố

ngày 28 tháng 7 năm 2011 − Java SE 8 ngày 18 tháng 3 năm 2014 − Java SE 9 ngày 21 tháng 9 năm 2017 − Java SE 10 ngày 20 tháng 3 năm 2018 − Java SE 11 ngày 25 tháng 9 năm 2018 − Java SE 12 ngày 19 tháng 3 năm 2019

Trang 19

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

− Java SE 13 ngày 17 tháng 9 năm 2019 − Java SE 14 ngày 17 tháng 3 năm 2020 − Java SE 15 ngày 15 tháng 9 năm 2020 − Java SE 16 ngày 16 tháng 3 năm 2021 − Java SE 17 ngày 14 tháng 9 năm 2021

1.2 Spring Framework

1.2.1 Đôi nét về lịch sử

Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod Johnson Việc xây dựng các ứng dụng doanh nghiệp trở nên đơn giản và dễ dàng hơn Rod Johnson đã cho xuất bản một cuốn sách được phổ biến rộng rãi có nhan đề "J2EE Development without EJB" Điều này đã cho Spring Framework rất nhiều động lực để thay thế EJB.[2]

Ngày nay, Spring đã trở thành framework mã nguồn mở phổ biến nhất để xây dựng các ứng dụng doanh nghiệp Cách tiếp cận thực tế ban đầu của Rod Johnson tiếp tục được phát triển và hướng tới một bộ công cụ hoàn chỉnh dành cho xây dựng các ứng dụng doanh nghiệp Theo một số nguồn, trên 50% các ứng dụng web Java hiện nay đang sử dụng Spring Framework

Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường dựa trên các quan điểm như sau:

− Đơn giản hóa công việc phát triển thông qua việc sử dụng các đối tượng Java đơn giản hay còn được gọi là POJO (Plain Old Java Object)

− Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng Dependency Injection và viết các interface

− Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc (convention) và các khía cạnh (aspect) chung

− Giảm thiểu các mã nghi thức và soạn sẵn (boilerplate) thông qua việc sử dụng các khuôn mẫu (template) và các khía cạnh

Trang 20

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

nền tảng web − Spring Data: Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở

dữ liệu quan hệ, phi quan hệ, map-reduce, … − Spring Security: Dự án này cung cấp các cơ chế xác thực (authentication) và phân

quyền (authorization) cho ứng dụng − Spring Boot: là một framework giúp phát triển cũng như chạy ứng dụng một cách

nhanh chóng − Spring Batch: tạo các lịch trình (scheduling) và tiến trình (processing) − Spring Integration: là một implementation của Enterprise Integration Patterns

(EIP) − Spring XD: đơn giản hóa công việc phát triển các ứng dụng Big Data − Spring Social: kết nối ứng dụng của bạn với các API bên thứ ba của Facebook,

Twitter, Linkedin,

Hình 1.1: Mô hình Spring Framework Runtime

Trang 21

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

1.3 RestfulAPI (RestController Spring Boot)

Khác với @Controller là sẽ trả về một template @RestController trả về dữ liệu dưới dạng JSON Các đối tượng trả về dưới dạng Object sẽ được Spring Boot chuyển thành JSON

Các đối tượng trả về rất đa dạng, bạn có thể trả về List, Map, … Spring Boot sẽ convert hết chúng thành JSON, mặc định sẽ dùng Jackson converter để làm điều đó Nếu bạn muốn API tùy biến được kiểu dữ liệu trả về, bạn có thể trả về đối tượng ResponseEntity của Spring cung cấp Đây là đối tượng cha của mọi response và sẽ wrapper các object trả về

Vì xây dựng API, nên các thông tin từ phía Client gửi lên Server sẽ nằm trong Body, và cũng dưới dạng JSON luôn Tất nhiên là Spring Boot sẽ làm giúp chúng ta các phần nặng nhọc, nó chuyển chuỗi JSON trong request thành một Object Java bạn chỉ cần cho nó biết cần chuyển JSON thành Object nào bằng Annotation @RequestBody

Ngoài thông tin trong Body của request, thì cái chúng ta cần chính là cái con số 12 nằm trong URL Phải lấy được con số đó thì mới biết được đối tượng To-do cần thao tác là gì Lúc đó Anotation @PathVariable tham chiến

1.4 Tổng quan về Hệ quản trị cơ sở dữ liệu PostgreSql

PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng Nó là một hệ quản trị cơ sở dữ liệu miễn phí (open source) phổ biến nhất hiện nay Với hơn 30 năm phát triển mạnh mẽ nó đã đạt được độ tin cậy cao, tính năng mạnh mẽ và hiệu suất cao Cơ sở dữ liệu PostgreSQL là một hệ thống quản lý dữ liệu nguồn mở cấp doanh nghiệp Nó hỗ trợ cả SQL cho quan hệ và JSON cho các truy vấn không liên quan Nó được hỗ trợ bởi một cộng đồng các nhà phát triển có kinh nghiệm, những người đã đóng góp to lớn để làm cho nó trở thành hệ thống DBMS có độ tin cậy cao

1.5 Bootstrap và Responsive

Bootstrap là front-end framework, là một bộ sưu tập miễn phí các công cụ để tạo ra các trang web và các ứng dụng web Bootstrap bao gồm HTML và CSS dựa trên các mẫu thiết kế cho kiểu chữ, hình thức, các button và các thành phần giao diện khác, cũng như mở rộng tùy chọn JavaScript Boostrap định nghĩa sẵn các class CSS giúp người thiết kế giao diện website tiết kiệm rất nhiều thời gian Các thư viện Bootstrap có những đoạn mã sẵn sàng cho chúng ta áp dùng vào website của mình mà không phải tốn quá nhiều thời gian để tự viết Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết Bootstrap cung cấp tính năng responsive và mobile first, nghĩa là làm cho trang web có thể tự co giãn để tương thích với mọi thiết

Trang 22

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

1.6 Javascript và ReactJs

1.6.1 Javascript

JavaScript là ngôn ngữ lập trình được nhà phát triển sử dụng để tạo trang web tương tác Từ làm mới bảng tin trên trang mạng xã hội đến hiển thị hình ảnh động và bản đồ tương tác, các chức năng của JavaScript có thể cải thiện trải nghiệm người dùng của trang web Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong những công nghệ cốt lõi của World Wide Web Ví dụ: khi duyệt internet, bất cứ khi nào bạn thấy quảng cáo quay vòng dạng hình ảnh, menu thả xuống nhấp để hiển thị hoặc màu sắc phần tử thay đổi động trên trang web cũng chính là lúc bạn thấy các hiệu ứng của JavaScript

Trước đây, các trang web có dạng tĩnh, tương tự như các trang trong một cuốn sách Một trang tĩnh chủ yếu hiển thị thông tin theo một bố cục cố định và không làm được mọi thứ mà chúng ta mong đợi như ở một trang web hiện đại JavaScript dần được biết đến như một công nghệ phía trình duyệt để làm cho các ứng dụng web linh hoạt hơn Sử dụng JavaScript, các trình duyệt có thể phản hồi tương tác của người dùng và thay đổi bố cục của nội dung trên trang web

Khi ngôn ngữ này phát triển hoàn thiện, các nhà phát triển JavaScript đã thiết lập các thư viện, khung và cách thức lập trình cũng như bắt đầu sử dụng ngôn ngữ này bên ngoài trình duyệt web Ngày nay, bạn có thể sử dụng JavaScript để thực hiện hoạt động phát triển cả ở phía máy khách và máy chủ

1.7 Ngôn ngữ lập trình Python

1.7.1 Python

Python là một ngôn ngữ lập trình bậc cao được tạo ra bởi Guido van Rossum và ra mắt lần đầu vào năm 1991 Được thiết kế với ưu điểm dễ đọc, dễ học và dễ nhớ, Python được sử dụng rộng rãi trong nhiều mục đích lập trình, đặc biệt là trong phát triển trí tuệ nhân tạo Ngôn ngữ này có cấu trúc sáng sủa, rõ ràng, thuận tiện cho người mới học lập trình và có khả năng viết mã với số lần gõ phím tối thiểu

Trang 23

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

Python là ngôn ngữ lập trình hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động, tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Được phát triển trong một dự án mã nguồn mở, Python được quản lý bởi tổ chức phi lợi nhuận Python Software Foundation

Ban đầu, Python được phát triển cho nền tảng Unix, nhưng sau đó đã mở rộng hỗ trợ cho nhiều hệ điều hành khác nhau từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù có sự đóng góp của nhiều cá nhân, Guido van Rossum vẫn là tác giả chủ yếu và giữ vai trò quyết định chủ chốt trong hướng phát triển của Python

Python luôn đứng đầu trong danh sách các ngôn ngữ lập trình phổ biến nhất, và vào tháng 7 năm 2018, sau 30 năm công tác, Guido van Rossum đã từ chức lãnh đạo trong cộng đồng ngôn ngữ Python

1.7.2 FastAPI

FastAPI là một web framework hiện đại, hiệu năng cao để xây dựng web APIs với Python 3.8+ dựa trên tiêu chuẩn Python type hints

Những tính năng như: • Nhanh: Hiệu năng rất cao khi so sánh với NodeJS và Go Một trong những

Python framework nhanh nhất • Code nhanh: Tăng tốc độ phát triển tính năng từ 200% tới 300% • Ít lỗi hơn: Giảm khoảng 40% những lỗi phát sinh bởi con người (nhà phát triển) • Trực giác tốt hơn: Được các trình soạn thảo hỗ tuyệt vời Completion mọi nơi

Ít thời gian gỡ lỗi • Dễ dàng: Được thiết kế để dễ dàng học và sử dụng Ít thời gian đọc tài liệu • Ngắn: Tối thiểu code bị trùng lặp Nhiều tính năng được tích hợp khi định nghĩa

tham số Ít lỗi hơn • Tăng tốc: Có được sản phẩm cùng với tài liệu (được tự động tạo) có thể tương

tác • Được dựa trên các tiêu chuẩn: Dựa trên (và hoàn toàn tương thích với) các tiêu

chuẩn mở cho APIs: OpenAPI (trước đó được biết đến là Swagger) và JSON Schema

Trang 24

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

1.8 Face Recognition

1.8.1 Tổng quan về Face Recognition

Face Recognition là một công nghệ sinh trắc học sử dụng hình ảnh khuôn mặt để xác định danh tính của một người Hệ thống nhận dạng khuôn mặt hoạt động bằng cách: • Phát hiện khuôn mặt: Hệ thống sẽ sử dụng camera để quét và xác định vị trí

khuôn mặt trong hình ảnh hoặc video • Trích xuất đặc điểm: Sau khi phát hiện khuôn mặt, hệ thống sẽ trích xuất các đặc

điểm độc đáo của khuôn mặt, chẳng hạn như khoảng cách giữa hai mắt, hình dạng của mũi, v.v

• So sánh đặc điểm: Hệ thống sẽ so sánh các đặc điểm đã trích xuất với cơ sở dữ liệu khuôn mặt được lưu trữ sẵn

• Xác định danh tính: Nếu hệ thống tìm thấy sự trùng khớp với mức độ tin cậy cao, nó sẽ xác định danh tính của người trong hình ảnh hoặc video

1.8.2 MTCNN

MTCNN là viết tắt của Multi-task Cascaded Convolutional Networks, là một hệ thống nhận diện khuôn mặt được phát triển bởi Zhang et al vào năm 2016 MTCNN là một trong những hệ thống nhận diện khuôn mặt hiệu quả và chính xác nhất hiện nay

Hệ thống MTCNN bao gồm 3 mạng nơ-ron nhân tạo (CNN) được xếp chồng lên nhau:

• P-Net: Mạng P-Net có nhiệm vụ phát hiện các khuôn mặt trong ảnh • R-Net: Mạng R-Net có nhiệm vụ lọc bỏ các khuôn mặt giả và xác định vị trí

chính xác của các khuôn mặt • O-Net: Mạng O-Net có nhiệm vụ xác định các điểm đặc trưng của khuôn mặt và

điều chỉnh vị trí của các khuôn mặt MTCNN hoạt động theo các bước sau:

• P-Net: Mạng P-Net sẽ quét ảnh và tạo ra một bản đồ xác suất cho mỗi vị trí trong ảnh Các vị trí có xác suất cao sẽ được coi là ứng cử viên cho khuôn mặt • R-Net: Mạng R-Net sẽ tiếp nhận các ứng cử viên từ P-Net và lọc bỏ các ứng cử

viên giả R-Net cũng sẽ xác định vị trí chính xác của các khuôn mặt • O-Net: Mạng O-Net sẽ tiếp nhận các khuôn mặt từ R-Net và xác định các điểm

đặc trưng của khuôn mặt O-Net cũng sẽ điều chỉnh vị trí của các khuôn mặt

Trang 25

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

nhìn khác nhau

1.8.3 FaceNet

FaceNet là một hệ thống nhận diện khuôn mặt được phát triển bởi Google vào năm 2015 FaceNet sử dụng một mạng nơ-ron nhân tạo (CNN) để trích xuất các đặc điểm của khuôn mặt Các đặc điểm này được gọi là embeddings Embeddings là những vector 128 chiều mô tả các đặc điểm độc đáo của khuôn mặt

FaceNet hoạt động theo các bước sau: • Chuẩn bị dữ liệu: Các khuôn mặt được thu thập và chuẩn hóa về kích thước và

độ sáng • Huấn luyện mạng CNN: Mạng CNN được huấn luyện trên một tập dữ liệu lớn

gồm các khuôn mặt • Trích xuất embeddings: Mạng CNN được sử dụng để trích xuất embeddings cho

các khuôn mặt mới • So sánh embeddings: Embeddings của khuôn mặt mới được so sánh với

embeddings của các khuôn mặt trong cơ sở dữ liệu để xác định danh tính FaceNet có nhiều ưu điểm so với các hệ thống nhận diện khuôn mặt khác, bao gồm:

• Hiệu quả: FaceNet có thể xử lý ảnh với tốc độ cao • Chính xác: FaceNet có tỷ lệ nhận diện khuôn mặt chính xác cao • Mạnh mẽ: FaceNet có thể hoạt động tốt trong nhiều điều kiện ánh sáng và góc

nhìn khác nhau • Khả năng mở rộng: FaceNet có thể được mở rộng để xử lý một lượng lớn dữ

liệu

1.9 Công cụ lập trình

1.9.1 Visual Studio Code

Phần mềm Visual Studio Code là một giải pháp IDE JavaScript chuyên nghiệp hỗ trợ các tính năng tiên tiến cho ngôn ngữ lập trình JavaScript, HTML và CSS, cung cấp những trải nghiệm hoàn thiện để lập trình và phát triển web

Trang 26

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

Phần mềm Visual Studio Code cung cấp một trình biên tập mã thông minh am hiểu sâu sắc cấu trúc của mã được viết bằng JavaScript, HTML hay CSS Visual Studio Code cũng là một công cụ tuyệt vời cho việc phát triển các ứng dụng Node.js Cùng với các công cụ tích hợp để kiểm tra, gỡ lỗi và phân tích mã và hội nhập với VCS khác nhau, Visual Studio Code là một công cụ cần thiết cho phát triển web mạnh mẽ và hiệu quả

Visual Studio Code có tính năng công nghệ web tiên tiến, giúp tạo ra mã số chất lượng cao hơn, có thể duy trì được với các công cụ như hoàn thành mã, tái cấu trúc, định dạng mã, chống lỗi on-the-fly, và nhiều hơn nữa Phần mềm Visual Studio Code cũng rất tuyệt vời cho việc phát triển các ứng dụng Node.js nhờ một trình gỡ lỗi tích hợp và đặc trưng Node.js hỗ trợ mã hóa

Hoàn thành với các công cụ tích hợp để kiểm tra, gỡ rối và phân tích mã và tích hợp với nhiều VCS khác nhau, Visual Studio Code là một công cụ thiết yếu cho sự phát triển web hiệu quả và mạnh mẽ

1.9.2 Postman

Postman là một công cụ phát triển ứng dụng API mạnh mẽ và phổ biến Nó cung cấp một giao diện đồ họa thân thiện và dễ sử dụng để tạo, kiểm thử và tương tác với các API

Với Postman, bạn có thể tạo các yêu cầu HTTP (GET, POST, PUT, DELETE, v.v.) và gửi chúng đến các endpoint API Bạn có thể chỉ định các thông số, tham số và thân yêu cầu để tương tác với API một cách linh hoạt Ngoài ra, Postman cũng hỗ trợ các phương thức xác thực như OAuth, JWT và Basic Auth, giúp bạn kiểm tra tính bảo mật và quyền truy cập của API

Postman cung cấp một bộ công cụ mạnh mẽ để kiểm tra và gỡ lỗi API Bạn có thể xem các câu trả lời từ API, kiểm tra mã trạng thái, xem thông tin header và body của yêu cầu và kiểm tra dữ liệu trả về Điều này giúp bạn xác nhận tính đúng đắn và chính xác của API và khắc phục lỗi nhanh chóng

Ngoài ra, Postman cũng hỗ trợ việc tạo và quản lý bộ kiểm tra (test suite) tự động Bạn có thể viết các kịch bản kiểm tra để kiểm tra tự động các yêu cầu và đảm bảo tính ổn định và chất lượng của API Các bộ kiểm tra này có thể được chạy một cách tự động và cung cấp các kết quả chi tiết về việc kiểm tra

Trang 27

Hệ thống website hỗ trợ chấm công cho doanh nghiệp

Chương 2 PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG

2.1 Khảo sát yêu cầu

2.1.1 Xác định các tác nhân

− Nhân viên − Quản lý nhân sự − Kế toán

− Quản trị viên

2.1.2 Liệt kê người dùng và yêu cầu

2.1.2.1 Nhân viên − Đăng nhập, đăng xuất, đổi mật khẩu − Quản lý thông tin cá nhân

− Chấm công − Tìm kiếm

• Tìm kiếm phòng ban • Tìm kiếm chức vụ • Tìm kiếm nhân viên − Quản lý phép

− Xem bảng chấm công − Xem bảng lương 2.1.2.2 Quản lý nhân sự

− Gồm các chức năng của nhân viên − Quản lý phòng ban

• Thêm phòng ban • Sửa phòng ban • Xóa phòng ban • Tìm kiếm phòng ban − Quản lý chức vụ

• Thêm chức vụ • Sửa chức vụ • Xóa chức vụ • Tìm kiếm chức vụ

Ngày đăng: 20/09/2024, 19:37

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Mô hình Spring Framework Runtime - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 1.1 Mô hình Spring Framework Runtime (Trang 20)
Hình 2.1: Biểu đồ Usecase - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.1 Biểu đồ Usecase (Trang 29)
Hình 2.2: Sơ đồ hoạt động chấm công - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.2 Sơ đồ hoạt động chấm công (Trang 37)
Hình 2.3: Sơ đồ hoạt động Xem bảng chấm công - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.3 Sơ đồ hoạt động Xem bảng chấm công (Trang 38)
Hình 2.5: Sơ đồ hoạt động quản lý nhân viên - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.5 Sơ đồ hoạt động quản lý nhân viên (Trang 40)
Hình 2.7: Biểu đồ thực thể quan hệ - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.7 Biểu đồ thực thể quan hệ (Trang 42)
Hình 2.8: Sơ đồ lớp - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.8 Sơ đồ lớp (Trang 42)
Hình 2.9: Sơ đồ tuần tự Chấm công  2.2.6.2.  Xem bảng chấm công - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.9 Sơ đồ tuần tự Chấm công 2.2.6.2. Xem bảng chấm công (Trang 43)
Hình 2.10: Sơ đồ tuần tự Xem bảng chấm công - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.10 Sơ đồ tuần tự Xem bảng chấm công (Trang 43)
Hình 2.11: Sơ đồ tuần tự Xem bảng lương - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 2.11 Sơ đồ tuần tự Xem bảng lương (Trang 44)
Hình 3.1: Giao diện trang chủ - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.1 Giao diện trang chủ (Trang 45)
Hình 3.2: Giao diện Chấm công - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.2 Giao diện Chấm công (Trang 46)
Hình 3.4: Giao diện Bảng lương - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.4 Giao diện Bảng lương (Trang 47)
Hình 3.5: Giao diện Chi tiết bảng lương - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.5 Giao diện Chi tiết bảng lương (Trang 47)
Hình 3.6: Giao diện Lịch sử nghỉ phép - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.6 Giao diện Lịch sử nghỉ phép (Trang 48)
Hình 3.7: Giao diện Danh sách phòng ban - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.7 Giao diện Danh sách phòng ban (Trang 48)
Hình 3.8: Giao diện Cập nhật thông tin phòng ban - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.8 Giao diện Cập nhật thông tin phòng ban (Trang 49)
Hình 3.9: Giao diện Danh sách chức vụ - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.9 Giao diện Danh sách chức vụ (Trang 49)
Hình 3.10: Giao diện Cập nhật thông tin chức vụ - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.10 Giao diện Cập nhật thông tin chức vụ (Trang 50)
Hình 3.11: Giao diện Danh sách nhân viên - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.11 Giao diện Danh sách nhân viên (Trang 50)
Hình 3.12: Giao diện Cập nhật thông tin nhân viên - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.12 Giao diện Cập nhật thông tin nhân viên (Trang 51)
Hình 3.13: Giao diện Thống kê - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.13 Giao diện Thống kê (Trang 51)
Hình 3.15: Giao diện Đăng nhập - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.15 Giao diện Đăng nhập (Trang 52)
Hình 3.14: Giao diện Thống kê chi tiết - xây dựng hệ thống website hỗ trợ chấm công cho doanh nghiệp
Hình 3.14 Giao diện Thống kê chi tiết (Trang 52)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w