Web app là một chương trình hoặc phần mềm có thể truy cập từ nhiều trình duyệt web khác nhau, được phát triển với các chức năng có thể phục vụ và hỗ trợ một hoặc nhiều nhu cầu cụ thể
Trang 1ĐẠI HỌC ĐÀ NẴNG PHÂN HIỆU ĐẠI HỌC ĐÀ NẴNG TẠI KON TUM
-
VŨ XUÂN CƯƠNG
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
PHẦN MỀM HỖ TRỢ XÁC THỰC BẢNG LƯƠNG
CHO DOANH NGHIỆP
Kon Tum, tháng 5 năm 2021
Trang 2ĐẠI HỌC ĐÀ NẴNG PHÂN HIỆU ĐẠI HỌC ĐÀ NẴNG TẠI KON TUM
-
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
PHẦN MỀM HỖ TRỢ XÁC THỰC BẢNG LƯƠNG
CHO DOANH NGHIỆP
SVTH : VŨ XUÂN CƯƠNG
Trang 3LỜI CẢM ƠN
Trong suốt thời gian 5 năm học tập và rèn luyện tại Trường Phân hiệu Đại học Đà Nẵng Tại Kon Tum cho đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạn bè Với lòng biết ơn sâu sắc và chân thành nhất, em xin gửi đến quý Thầy Cô ở Khoa Kỹ Thuật - Nông Nghiệp, Trường Phân hiệu Đại học Đà Nẵng Tại Kon Tum đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường
Em xin chân thành cảm ơn tất cả thầy cô khoa Kỹ Thuật – Nông Nghiệp, đặc biết
em xin gửi lời cảm ơn sâu sắc nhất với thầy Đồng Ngọc Nguyên Thịnh trưởng khoa Kỹ Thuật - Nông Nghiệp đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong công việc nghiên cứu tìm ra hướng giải quyết cho mọi thắc mắc
Em cũng xin bày tỏ lòng biết ơn đến ban lãnh đạo của Trường Phân hiệu Đại học
Đà Nẵng Tại Kon Tum đã tạo điều kiện giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một học viên, bài báo cáo này không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các quý thầy cô để em có điều kiện bổ sung, nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Vũ Xuân Cương
Trang 4MỤC LỤC
MỤC LỤC i
DANH MỤC CÁC CỤM TỪ VIẾT TẮT iii
DANH MỤC HÌNH iv
DANH MỤC BẢNG vi
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu nghiên cứu 1
1.3 Giới hạn và phạm vi đề tài 1
1.4 Phương pháp nghiên cứu 1
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
2.1 Giới thiệu Web Application 3
2.1.1 Khái niệm Web Application 3
2.1.2 Sự khác nhau giữa Website và Web Application 3
2.2 Mô hình MVC 3
2.2.1 Khái niệm mô hình MVC 3
2.2.2 Luồng hoạt động trong mô hình MVC 4
2.2.3 Ưu và nhược điểm mô hình MVC 4
2.3 Ngôn ngữ lập trình PHP 5
2.3.1 Khái niệm về ngôn ngữ lập trình PHP (Hypertext Preprocessor) 5
2.3.2 Lịch sử hình thành và phát triển 5
2.3.3 Ưu điểm của ngôn ngữ PHP 8
2.4 Hệ cơ sở dữ liệu MySQL 9
2.4.1 Giới thiệu cơ sở dữ liệu MySQL 9
2.4.2 Ưu điểm của cơ sở dữ liệu MySQL 10
2.4.3 Tại sao sử dụng của cơ sở dữ liệu MySQL 10
2.5 Công nghệ sử dụng 10
2.5.1 Frontend 10
2.5.2 Backend 13
2.5.3 Database 14
2.6 Phần mềm sử dụng 15
2.6.1 Visual Studio Code 15
2.6.2 Xampp 16
3.1 Sơ đồ UseCase 17
3.2 Đặc tả ca sử dụng 18
3.2.1 Admin 18
3.2.2 Tài khoản thành viên 28
3.4 Sơ đồ lớp (Class Diagram) 34
3.5 Cơ sở dữ liệu hệ thống 36
CHƯƠNG 4: KẾT QUẢ 37
Trang 54.1 Phía Admin 37
4.1.1 Chức năng đăng nhập 37
4.1.2 Chức năng cấp phát tài khoản cho doanh nghiệp 37
4.1.3 Chức năng quản lý thông tin doanh nghiệp 38
4.1.4 Chức năng quản lý danh sách nhân viên 38
4.1.5 Chức năng thêm nhân viên cho doanh nghiệp 39
4.1.6 Chức năng quản lý danh sách user đăng nhập 39
4.1.7 Chức năng xác nhận bảng lương 40
4.1.8 Chức năng vấn tin lịch sử trả lương 40
4.1.9 Chức năng quản lý user đăng nhập từng doanh nghiệp 41
4.1.10 Chức năng thống kê 41
4.2 Phía tài khoản thành viên 42
4.2.1 Chức năng quản lý thông tin doanh nghiệp 42
4.2.2 Chức năng quản lý nhân viên 42
4.2.3 Chức năng tạo lương 43
4.2.4 Chức năng vấn tin lịch sử 44
4.2.5 Chức năng chỉnh sửa user đăng nhập 44
4.2.6 Chức năng quản lý danh sách user 45
4.2.7 Chức năng liên hệ 45
CHƯƠNG 5: KẾT LUẬN 46
5.1 Kết quả đạt được của đề tài 46
5.2 Hạn chế 46
5.3 Hướng nghiên cứu phát triển 46 TÀI LIỆU THAM KHẢO
Trang 6DANH MỤC CÁC CỤM TỪ VIẾT TẮT
Trang 7DANH MỤC HÌNH
Hình 2.1: Mô hình MVC 4
Hình 2.2: Mối quan hệ mật thiết giữa HTML và CSS 11
Hình 2.3: Mô hình 3 lớp của công nghệ web 12
Hình 2.5: Khả năng Reponsive của Boostrap đối với tất cả màn hình thiết bị 13
Hình 2.6: Thư viện Javascript nổi bật và phổ biến nhất hiện nay 13
Hình 2.7: Sơ đồ hoạt động của mô hình thông thường và mô hình Ajax 14
Hình 2.8: Logo MySQL 15
Hình 2.9: Visual Studio Code 16
Hình 2.10: Logo Xampp 16
Hình 3.1: Usecase tổng quát 17
Hình 3.2: Biểu đồ tuần tự chức năng đăng nhập 19
Hình 3.3: Biểu đồ tuần tự chức năng đăng ký tài khoản 20
Hình 3.4: Biểu đồ tuần tự chức năng thêm nhân viên 21
Hình 3.5: Biểu đồ tuần tự chức năng quản lý nhân viên 22
Hình 3.6: Biểu đồ tuần tự chức năng kiểm tra bảng lương 23
Hình 3.7: Biểu đồ tuần tự chức năng báo lỗi bảng lương 24
Hình 3.8: Biểu đồ tuần tự chức năng xác nhận bảng lương 25
Hình 3.9: Biểu đồ tuần tự chức năng xuất file Excel 25
Hình 3.10: Biểu đồ tuần tự chức năng vấn tin lịch sử chuyển lương 26
Hình 3.11: Biểu đồ tuần tự chức năng quản lý danh sách user 27
Hình 3.12: Biểu đồ tuần tự chức năng thống kê 28
Hình 3.13: Biểu đồ tuần tự chức năng quản lý thông tin doanh nghiệp 29
Hình 3.14: Biểu đồ tuần tự chức năng tạo lương 30
Hình 3.15: Biểu đồ tuần tự chức năng nhập lại bảng lương 31
Hình 3.16: Biểu đồ tuần tự chức năng vấn tin lịch sử chuyển lương 32
Hình 3.17: Biểu đồ tuần tự chức năng xem phản hồi 32
Hình 3.18: Chỉnh sửa user đăng nhập 33
Hình 3.19: Sơ đồ lớp (Class Diagram) 35
Hình 3.20: Cơ sở dữ liệu 36
Hình 4.1: Giao diên chức năng đăng nhập 37
Hình 4.2: Giao diện chức năng cấp phát tài khoản 37
Hình 4.3: Giao diện chức năng quản lý thông tin doanh nghiệp 38
Hình 4.4: Giao diện chức năng quản lý danh sách nhân viên 38
Hình 4.5: Chức năng thêm nhân viên cho doanh nghiệp 39
Hình 4.6: Giao diện chức năng quản lý danh sách user đăng nhập 39
Hình 4.7: Giao diện chức năng xác nhận bảng lương 40
Hình 4.8: Giao diện chức năng vấn tin lịch sử trả lương 40
Hình 4.9: Giao diện chức năng quản lý user đăng nhập từng doanh nghiệp 41
Hình 4.10: Giao diện chức năng thống kê 41
Trang 8Hình 4.11: Giao diện Chức năng quản lý thông tin doanh nghiệp 42
Hình 4.12: Giao diện Chức năng quản lý nhân viên 42
Hình 4.13: Giao diện chức năng tạo lương 43
Hình 4.14: Giao diện kết quả khi nhập file lương 43
Hình 4.15: Giao diện chức năng vấn tin lịch sử 44
Hình 4.16: Giao diện Thông tin bảng lương 44
Hình 4.17: Giao diện chức năng chỉnh sửa user đăng nhập 44
Hình 4.18: Giao diện chức năng quản lý danh sách user 45
Hình 4.19: Giao diện chức năng liên hệ 45
Trang 9DANH MỤC BẢNG
Bảng 1: Mô tả chức năng của các lớp 34
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Hiện nay ngành Công nghệ thông tin đang phát triển mạnh mẽ cùng với sự tác động mạnh mẽ của cách mạng 4.0 và công nghệ thông tin đã và đang hỗ trợ sự phát triển của nền kinh tế, xã hội, chính trị, giáo dục và các hệ thống phần mềm, website lần lượt được ra đời để phục vụ cho yêu cầu cuộc sống cũng như công việc của mọi người Tất nhiên trong cuộc sống sẽ rất cần đến chi phí sinh hoạt và phát triển con người, nhưng hiện nay trên báo trí cũng như mạng xã hội đã và đang bàn tán rất nhiều về việc các doanh nghiệp trả lương trễ không đúng hạn, làm cho việc sinh hoạt và nhiều việc khác của công nhân bị trì hoãn và gặp nhiều khó khăn trong cuộc sống
Nguyên nhân chính gây ra sự cố trễ lương chủ yếu là do việc xử lý bảng lương cho nhân viên giữa kế toán và người quản lý đang còn chưa chuyên nghiệp và gặp nhiều rủi
ro dẫn đến sự trì hoãn lương của công nhân
Nắm bắt được tình hình đó em đã sử dụng công nghệ thông tin để tạo ra một phần mềm hỗ trợ việc xác nhận bảng lương giữa các chi nhánh và doanh nghiệp giúp công việc xác nhận bảng lương diễn ra thuận tiện, chính xác, nhanh gọn và dễ dàng hơn
1.2 Mục tiêu nghiên cứu
- Xây dựng hệ thống thân thiện, dễ sử dụng, cho phép người dùng có thể dễ dàng thực hiện xử lý bảng lương và quản lý doanh nghiệp dựa trên những yêu cầu có sẵn
- Tối ưu đơn giản hóa quá trình xác nhận bảng lương tạo cho người dùng cảm giác chuyên nghiệp và mang lại sự tin cậy cho khách hàng
- Nắm bắt và sử dụng thành thạo các kĩ thuật và công nghệ để hoàn thiện, nâng cao và phát triển bản thân
1.3 Giới hạn và phạm vi đề tài
- Xây dựng hệ thống web application nên rất thuận tiện cho việc cài đặt, sử dụng
và bảo trì
- Đề tài nghiên cứu những công nghệ phổ biến nhất hiện nay và kĩ thuật cần thiết
để xây dựng nên một hệ thống với đầy đủ các tính năng, đáp ứng được yêu cầu đã đặt
ra, đảm bảo hệ thống hoạt động trơn tru và chính xác
- Xây dựng hệ thống theo mô hình MVC và các ngôn ngữ lập trình phổ biến nhất hiện nay để có thể dễ dàng nâng cấp và bảo trì hệ thống
- Hệ thống được sử dụng nội bộ cho các doanh nghiệp lớn có nhiều chi nhánh
1.4 Phương pháp nghiên cứu
- Về mặt nghiệp vụ: Tìm hiểu các quy trình và cách xử lý nghiệp vụ thực tế của các doanh nghiệp để đảm bảo tính đúng đắn, chính xác Quan sát ghi nhận ý kiến đánh
giá của người sử dụng để cải thiện chất lượng hệ thống
- Về mặt lý thuyết: Tìm hiểu các ngôn ngữ kết hợp với các công nghê thông qua tài liệu chuyên ngành Học hỏi kinh nghiệm và sử lý logic từ những người có chuyên môn
Trang 11- Về mặt công nghệ: Sử dụng ngôn ngữ lập trình PHP, Javascript, CSS, kết hợp với công nghệ Ajax, Boostrap 4, Jquery và hệ quản trị cơ sở dữ liệu MySQL
Trang 12CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu Web Application
2.1.1 Khái niệm Web Application
Web app hay còn gọi là ứng dụng web, là những ứng dụng được xây dựng dựa trên nền tảng web Web app là một chương trình hoặc phần mềm có thể truy cập từ nhiều trình duyệt web khác nhau, được phát triển với các chức năng có thể phục vụ và hỗ trợ một hoặc nhiều nhu cầu cụ thể nào đó của người dùng [1]
2.1.2 Sự khác nhau giữa Website và Web Application
Trên thực tế thì 2 khái niệm này là 2 khái niệm được nhắc tới rất nhiều và để phân biệt được Website và Web Application thì cần lưu ý những điểm khác sau đây:
2.2.1 Khái niệm mô hình MVC
- Mô hình MVC là viết tắt của 3 chữ Model, View, Controller Mô hình này tách
một ứng dụng web ra làm 3 thành phần đảm nhiệm chức năng tách biệt, thuận tiện cho việc xử lý và bảo trì [2]
- Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này là một cầu nối giữa 2 thành phần bên dưới là View và Controller Model thể hiện dưới hình thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất,
xử lý dữ liệu,… [2]
- View: Đây là phần giao diện (theme) dành cho người sử dụng Nơi mà người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng thông qua các website Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không có mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từ Controller mà chỉ hiển thị yêu cầu chuyển cho Controller mà thôi Ví dụ: Nút “delete” được tạo bởi View khi người dùng nhấn vào nút đó sẽ có một hành động trong Controller [2]
Trang 13- Controller: Trung gian, làm nhiệm vụ xử lý cho model và view tương tác với nhau Controller nhận request từ client, sau đó gọi các model để thực hiện các hoạt động được yêu cầu và gửi ra ngoài View [2]
Hình 2.1: Mô hình MVC
2.2.2 Luồng hoạt động trong mô hình MVC
Khi một yêu cầu từ máy client gửi tới server, Controller sẽ thực hiện nhiệm vụ của mình đó là tiếp nhận và xử lý yêu cầu Trong trường hợp cần thiết, nó có thể liên hệ Model bộ phận làm việc với database để hỗ trợ Khi xử lý xong yêu cầu, kết quả sẽ được trả về View Tại View sẽ tạo mã HTML thành giao diện và trả về hiển thị trên trình duyệt [2]
2.2.3 Ưu và nhược điểm mô hình MVC
- Ưu điểm của mô hình MVC: Nhẹ, tiết kiệm băng thông: MVC không sử dụng viewstate nên khá tiết kiệm diện tích băng thông Khi sử dụng, người dùng có thể sử dụng ứng dụng trên web cần tương tác gửi và nhận dữ liệu một cách liên tục Do đó, việc giảm băng thông giúp cho website hoạt động tốt và ổn định hơn [2]
+ Kiểm tra dễ dàng: Với MVC, bạn có thể dễ dàng kiểm tra, rà soát lỗi phần mềm trước khi tới tay người tiêu dùng, đảm bảo chất lượng và độ uy tín cao hơn [2]
+ Chức năng control: Trên các nền website thì ngôn ngữ lập trình như CSS, HTML, Javascript có một vai trò vô cùng quan trọng Việc sử dụng mô hình MVC sẽ giúp bạn có một bộ control ưu việt trên nền tảng các ngôn ngữ hiện đại với nhiều hình thức khác nhau [2]
Trang 14+ View và size: View sẽ là nơi lưu trữ các dữ liệu Càng nhiều yêu cầu được thực hiện thì kích thước càng tệp càng lớn Khi đó, đường truyền mạng cũng giảm tốc độ load Việc sử dụng mô hình MVC sẽ giúp bạn tiết kiệm được diện tích băng thông một cách tối ưu Chức năng Soc (Separation of Concern): Chức năng này cho phép bạn phân tách rõ ràng các phần như Model, giao diện, data, nghiệp vụ [2]
+ Tính kết hợp: Việc tích hợp ở mô hình MVC cho phép bạn thoải mái viết code trên nền tảng website Khi đó, server của bạn sẽ được giảm tải khá nhiều
+ Đơn giản: Đây là một mô hình với kết cấu tương đối đơn giản Dù bạn không
có quá nhiều chuyên môn cũng có thể sử dụng được [2]
- Nhược điểm của mô hình MVC: Mô hình MVC thường được sử dụng vào những
dự án lớn Do đó, với các dự án nhỏ, mô hình MVC có thể gây cồng kềnh, tốn thời gian trong quá trình phát triển cũng như thời gian trung chuyển dữ liệu [2]
2.3 Ngôn ngữ lập trình PHP
2.3.1 Khái niệm về ngôn ngữ lập trình PHP (Hypertext Preprocessor)
PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web
và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới [3]
2.3.2 Lịch sử hình thành và phát triển
a) PHP/FI
- PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
- PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán
- Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận
là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời
đó nó vẫn chủ yếu chỉ là dự án của một người
Trang 15- PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0 [3]
b) PHP 3
- PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó Lý do chính
mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
- Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh
mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0 Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác
- Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc
Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext Preprocessor"
- Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet
- PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm [3]
c) PHP 4
- Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi
Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách
có hiệu quả
- Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000,
Trang 16gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người
sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
- Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet
- Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu
2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm Đó cũng
là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng
10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP năm bản chính thức đã ra mắt ngày 13 tháng
7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi
trong đó đáng kể là lỗi xác thực HTTP
- Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL [3]
e) PHP 6
Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên
bản hiện tại, ví dụ: hỗ trợ namespace; hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL Phiên bản 6 này chỉ dùng ở việc nghiên cứu và thử nghiệm Sau này PHP bỏ hẳn phiên bản 6 và lên
7 [3]
Trang 17f) PHP 7
Với việc sử dụng bộ nhân Zend Engine mới PHPNG cho tốc độ nhanh gấp 2 lần
Ngoài ra ở phiên bản này còn thêm vào rất nhiều cú pháp, tính năng mới giúp cho PHP
trở nên mạnh mẽ hơn Những tính năng mới quan trọng có thể kể đến như:
- Khai báo kiểu dữ liệu cho biến
- Xác định kiểu dữ liệu sẽ trả về cho 1 hàm
- Thêm các toán tử mới (??, <=>, ) [3]
2.3.3 Ưu điểm của ngôn ngữ PHP
a) Mã nguồn mở
- Có lẽ nhiều bạn cũng biết PHP là một sản phẩm mã nguồn mở (Open-source) nên việc cài đặt và tùy biến PHP là miễn phí và tự do
- Vì có ưu thế nguồn mở nên PHP có thể được cài đặt trên hầu hết các Web Server thông dụng hiện nay như Apache, IIS…
b) Tính cộng đồng của PHP
- Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng
- Với cộng đồng phát triển lớn, việc cập nhật các bản vá lỗi phiên bản hiện tại cũng như thử nghiệm các phiên bản mới khiến PHP rất linh hoạt trong việc hoàn thiện mình
- Cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rất dồi dào Với rất nhiều diễn đàn, blog trong và ngoài nước nói về PHP đã khiến cho quá trình tiếp cận của người tìm hiểu PHP được rút ngắn nhanh chóng
c) Thư viện phong phú
- Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú và đa dạng Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới những cái lớn hơn như Framework (Zend, CakePHP, CogeIgniter, Symfony…), ứng dụng hoàn chỉnh (Joomla, WordPress, PhpBB…)
- Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng
và nhanh chóng Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web
d) Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu
- Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP cũng đáp ứng rất tốt nhu cầu này Với việc tích hợp sẵn nhiều Database Client trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng
- Việc cập nhật và nâng cấp các Database Client đơn giản chỉ là việc thay thế các Extension của PHP để phù hợp với hệ cơ sở dữ liệu mà PHP sẽ làm việc
- Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc là: MySQL, MS SQL, Oracle, Cassandra…
Trang 18e) Lập trình hướng đối tượng
- Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ với lập trình viên Với khả năng và lợi ích của mô hình lập trình này nên nhiều ngôn ngữ đã triển khai để hỗ trợ OOP
- Từ phiên bản PHP 5, PHP đã có khả năng hỗ trợ hầu hết các đặc điểm nổi bật của lập trình hướng đối tượng như là Inheritance, Abstraction, Encapsulation, Polymorphism, Interface, Autoload…
- Với việc ngày càng có nhiều Framework và ứng dụng PHP viết bằng mô hình OOP nên lập trình viên tiếp cận và mở rộng các ứng dụng này trở nên dễ dàng và nhanh chóng
f) Tính bảo mật
- Bản thân PHP là mã nguồn mỡ và cộng đồng phát triển rất tích cực nên có thể nói PHP khá là an toàn
- PHP cũng cung cấp nhiều cơ chế cho phép bạn triển khai tính bảo mật cho ứng dụng của mình như session, các hàm filter dữ liệu, kỹ thuật ép kiểu, thư viện PDO (PHP Data Object) để tương tác với cơ sở dữ liệu an toàn hơn
- Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì ứng dụng PHP sẽ trở nên chắc chắn hơn và đảm bảo hoạt động cho website
g) Khả năng mở rộng cho PHP
- Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn
- Với thư viện phong phú và khả năng mở rộng lớn, ứng dụng PHP có thể tương tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming…
- Hoàn toàn có thể tự xây dựng cho mình các Extension để tối ưu, bổ sung các chức năng cho PHP cũng như tối ưu luôn Core của PHP để phục vụ cho các mục đích
mở rộng website của mình [4], [5]
2.4 Hệ cơ sở dữ liệu MySQL
2.4.1 Giới thiệu cơ sở dữ liệu MySQL
- MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL
là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet Người dùng có thể tải về MySQL miễn phí từ trang chủ MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, [6]
- MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL) [6]
Trang 19- MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl, [6]
2.4.2 Ưu điểm của cơ sở dữ liệu MySQL
- Sử dụng dễ dàng: MySQL là cơ sở dữ liệu tốc độ cao và ổn định, công cụ này
dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp hệ thống lớn các hàm tiện ích [7]
- Tính bảo mật cao: MySQL phù hợp với các ứng dụng có truy cập cơ sở dữ liệu trên internet vì nó sở hữu nhiều tính năng bảo mật, thậm chí là bảo mật cấp cao
- Tính đa năng: MySQL có thể hỗ trợ hàng loạt các chức năng SQL từ hệ quản trị cơ sở dữ liệu quan hệ trực tiếp và cả gián tiếp
- Khả năng mở rộng và mạnh mẽ: Công cụ MySQL có khả năng xử lý khối dữ liệu lớn và có thể mở rộng khi cần thiết [7]
- Tương thích trên nhiều hệ điều hành: MySQL tương thích để chạy trên nhiều hệ điều hành, như Novell NetWare, Windows, Linux, nhiều loại UNIX (như Sun Solaris, AIX và DEC, UNIX), OS / 2, FreeBSD, MySQL cũng cung cấp phương tiện mà các máy khách có thể chạy trên cùng một máy tính với máy chủ hoặc trên một máy tính khác (giao tiếp qua mạng cục bộ hoặc Internet)
- Cho phép khôi phục: MySQL cho phép các transactionđược khôi phục, cam kết
và phục hồi sự cố [7]
2.4.3 Tại sao sử dụng của cơ sở dữ liệu MySQL
- MySQL là sự lựa chọn thông dụng và phổ biến nhất cho các ứng dụng web, ứng dụng xử lý giao dịch trực tuyến và website thương mại điện tử MySQL tích hợp đầy đủ các tiện ích, dễ sử dụng, lại thêm khả năng giao dịch an toàn, chi phí thấp, … nên được xem là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới [7]
- Nhiều trang web có lượng truy cập lớn trên thế giới như Facebook, Google, Twitter, Amazon, … đã chọn MySQL cho các ứng dụng kinh doanh quan trọng
- MySQL là cơ sở dữ liệu có tốc độ cao và ổn định, công cụ này cũng tương đối
dễ sử dụng, lại hoạt động được trên nhiều hệ điều hành Ngoài ra, tính bảo mật của MySQL mạnh và sử dụng được trên nhiều ứng dụng [7]
- MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl, … Và cuối cùng, công cụ này có phiên bản được sử dụng hoàn toàn miễn phí [7]
2.5 Công nghệ sử dụng
2.5.1 Frontend
a) HTML
- HTML là viết tắt của từ Hyper Text Markup Language, có nghĩa là ngôn ngữ
đánh dấu siêu văn bản HTML được sử dụng để định dạng và hiển thị văn bản trên trình
duyệt tới người sử dụng Nó là xương sống của một trang web [8]
Trang 20- Hyper Text: siêu văn bản có nghĩa là "văn bản trong văn bản" Một văn bản có chứa một liên kết (link) là một siêu văn bản Mỗi lần bản click vào một từ từ đó đưa bạn tới một trang web mới, đó là siêu văn bản [8]
- Markup Language: ngôn ngữ đánh dấu là một ngôn ngữ lập trình được sử dụng
để giúp văn bản dễ tương tác và linh động hơn Nó có thể đặt văn bản vào trong các ảnh, bảng, liên kết [8]
- HTML documents là files kết thúc với đuôi html hay htm Bạn có thể xem
chúng bằng cách sử dụng bất kỳ trình duyệt web nào (như Google Chrome, Safari, hay Mozilla Firefox) Trình duyệt đọc các files HTML này và xuất bản nội dung lên internet sao cho người đọc có thể xem được nó [8]
b) CSS
- Là ngôn ngữ tạo phong cách cho trang web – Cascading Style Sheet language
Nó dùng để tạo phong cách và định kiểu cho những yếu tố được viết dưới dạng ngôn ngữ đánh dấu, như là HTML Nó có thể điều khiển định dạng của nhiều trang web cùng lúc để tiết kiệm công sức cho người viết web Nó phân biệt cách hiển thị của trang web
với nội dung chính của trang bằng cách điều khiển bố cục, màu sắc, và font chữ [9]
- Mối tương quan giữa HTML và CSS rất mật thiết HTML là ngôn ngữ markup (nền tảng của site) và CSS định hình phong cách (tất cả những gì tạo nên giao diện website), chúng là không thể tách rời [9]
Hình 2.2: Mối quan hệ mật thiết giữa HTML và CSS
c) JavaScript
- Javascript chính là một ngôn ngữ lập trình với khả năng đem tới sự sinh động
khi thiết kế website Đây là dạng ngôn ngữ theo kịch bản, dựa trên chính đối trượng phát triển có sẵn, hoặc là tự định nghĩa ra Chính vì tính tiện lợi, hiệu quả ứng dụng cao mà
Trang 21ngôn ngữ lập trình này được tin dùng ngày càng nhiều, ứng dụng rộng rãi trong các
website hiệu quả [10]
- Việc sử dụng ngôn ngữ JS có thể ứng dụng cho mọi trình duyệt khác nhau, hiện
được sử dụng phổ biến như Chrome, hay Firefox, … Hơn nữa, đây còn là ngôn ngữ lập trình hoạt động hiệu quả, được hỗ trợ đầy đủ trên các trình duyệt của thiết bị di động Bởi thế mà việc sử dụng đa dạng, có thể đáp ứng tốt cho nhiều nhu cầu, những đòi hỏi khác nhau của người dùng [10]
- Nhìn chung, ngôn ngữ lập trình Javascript khi sử dụng được đánh giá dễ học,
được phát triển bởi Netscape và sử dụng trong hơn 92% các website ngày nay Việc sử dụng JS có thể gắn trong một element trong website, hoặc có thể trong một sự kiện của trang web tiện lợi và hiệu quả Chính việc có thể hoạt động nhanh, nhẹ và mượt mà, … nên ngôn ngữ lập trình này càng được tin tưởng và ứng dụng nhiều hơn cho nhu cầu của người dùng Chúng ta có thể thêm trực tiếp Javascript với HTML, cũng có thể lưu lại trên một files hoàn toàn riêng biệt và sử dụng khi cần thiết [10]
Hình 2.3: Mô hình 3 lớp của công nghệ web
Trang 22thay vào đó thì Responsive sẽ giúp web của bạn được hiển thị tốt nhất, giúp tương thích
với mọi kích thước màn hình, và nhờ đó thì bạn có thể tuỳ biến hiển thị được nhiều hơn
trên nhiều loại màn hình khác nhau [11]
- Boostrap định nghĩa sẵn các class CSS và các hàm trong Javascript Chúng ta
chỉ việc sử dụng các class này để tùy chỉnh thêm [11]
Hình 2.4: Khả năng Reponsive của Boostrap đối với tất cả màn hình
thiết bị
2.5.2 Backend
a) JQuery
- Là thư viện Javascript nổi bật nhất, phổ biến nhất trong lập trình web Ra đời
vào năm 2006 bởi John Resig Nó đã trở thành một thành phần không thể thiếu trong
các website có sử dụng Javascript Với slogan “Write less – Do more” (viết ít hơn – làm
nhiều hơn) nó đã giúp lập trình viên tiết kiệm được rất nhiều thời gian và công sức trong
việc thiết kế website [12]
- jQuery đơn giản hóa việc duyệt tài liệu HTML, xử lý sự kiện, hoạt ảnh và tương
tác Ajax để phát triển web nhanh chóng Các phân tích web đã chỉ ra rằng, jQuery là thư
viện JavaScript được triển khai rộng rãi nhất [12]
Hình 2.5: Thư viện Javascript nổi bật và phổ biến nhất hiện nay
Trang 23b) AJAX
- AJAX là chữ viết tắt của Asynchronous JavaScript and XML Đây là một công nghệ giúp chung ta tạo ra những Web động mà hoàn toàn không reload lại trang nên rất
mượt và đẹp Vậy Asynchronous, JavaScript, XML trong từ AJAX là gì: [13]
- Asynchronous, hay nói ngắn hơn là Async – bất đồng bộ Bất đồng bộ có nghĩa
là một chương trình có thể xử lý không theo tuần tự các hàm Sẽ không có quy trình, có thể nhảy đi bỏ qua bước nào đó Ích lợi dễ thấy nhất của bất đồng bộ là chương trình có thể xử lý nhiều công việc một lúc [13]
- JavaScript là một ngôn ngữ lập trình nổi tiếng Trong số rất nhiều chức năng của nó là khả năng quản lý nội dung động của website và hỗ trợ tương tác với người dùng [13]
- XML là một dạng của ngôn ngữ markup như HTML, chữ đầy đủ của nó là Extensible Markup Language Nếu HTML được dùng để hiển thị dữ liệu, XML được thiết kế để chứa dữ liệu [13]
Hình 2.6: Sơ đồ hoạt động của mô hình thông thường và mô hình Ajax 2.5.3 Database
- Khái niệm Database: là từ được sử dụng phổ biến trong các lĩnh vực thuộc công nghệ thông tin, dữ liệu, lập trình và phần mềm, … Database là cơ sở dữ liệu, là một bộ sưu tập dữ liệu được tổ chức bày bản và thường được truy cập từ hệ thống máy tính hoặc tồn tại dưới dạng tập tin trong hệ quản trị cơ sở dữ liệu Database còn có thể được lưu trữ trên thiết bị có chức năng ghi nhớ như: thẻ nhớ, đĩa cứng, CD… [14]
Trang 24- Vai trò của Database: Database có vai trò vô cùng quan trọng khi làm việc với
hệ thống dữ liệu Chúng giúp người dùng thành công trong việc kết nối các dữ liệu Người dùng có thể truy cập hệ cơ sở dữ liệu nhanh chóng và dễ dàng hơn Database chính là cơ sở nguồn để người dùng có thể truy xuất ra những thông tin cần thiết Đặc điểm chính của Database chính là truy xuất ra những thông tin, dữ liệu bằng nhiều phương thức khác nhau Các nội dung truy xuất được đảm bảo toàn vẹn dữ liệu ở mức
độ cao Đồng thời, nguồn thông tin khi xuất ra hoàn toàn không bị trùng lặp, nếu có thì xác suất cũng rất thấp Một cơ sở dữ liệu Database cho phép nhiều người dùng đồng thời truy cập trong cùng một thời gian [14]
- MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ truy vấn có cấu trúc (SQ) được phát triển, phân phối và hỗ trợ bởi tập đoàn Oracle MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux, UNIX
và Windows MySQL thường được kết hợp với các ứng dụng web [14]
Hình 2.7: Logo MySQL 2.6 Phần mềm sử dụng
2.6.1 Visual Studio Code
- Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và macOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor [15]
- Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác [15]
Trang 25Hình 2.8: Visual Studio Code
2.6.2 Xampp
Là phần mềm web server thuộc bản quyền của GNU General Public Licence, XAMPP do Apache Friends phân phối và phát triển Đây là chương trình tạo máy chủ Web (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server
và các công cụ như phpMyAdmin [16]
Hình 2.9: Logo Xampp
Trang 26CHƯƠNG 3: THIẾT KẾ WEBSITE
3.1 Sơ đồ UseCase
Hình 3.1: Usecase tổng quát
Xác định các Use case
- Tác nhân Admin có các Use Case sau:
Quản lý tài khoản
Tạo tài khoản
Đăng nhập
Chỉnh sửa user đăng nhập
Đăng xuất
Quản lý nhân viên
Vấn tin lịch sử chuyển lương
Quản lý doanh nghiệp
Trang 27 Xác nhận bảng lương
Thống kê
- Tác nhân Member có các Use Case sau:
Quản lý tài khoản
Xem và chỉnh sửa thông tin doanh nghiệp
Tạo tài khoản
Đăng nhập
Đăng xuất
Chỉnh sửa user đăng nhập
Quản lý nhân viên
Vấn tin lịch sử chuyển lương
Tạo bảng lương
Liên hệ
3.2 Đặc tả ca sử dụng
3.2.1 Admin
a) Chức năng đăng nhập
- Tác nhân: Admin và thành viên đã được đăng ký tài khoản
- Mục đích: Admin và thành viên hệ thống sử dụng chức năng này để đăng nhập vào hệ thống và có thể sử dụng các chức năng khác của hệ thống
- Tiền điều kiện: Tài khoản đã được đăng ký và lưu trong database
- Luồng sự kiện chính:
B1 Truy cập vào hệ thống
B2 Form đăng nhập hiển thị lên màn hình
B3 Admin và thành viên điền thông tin mà form đăng nhập yêu cầu bao gồm username và password
B4 Nhấn nút đăng nhập
B5 Hệ thống kiểm tra thông tin vừa nhập vào Nếu không hợp lệ thì thực hiện luồng rẽ nhánh A1 Nếu hợp lệ tiếp tục thực hiện bước tiếp theo trong luồng sự kiện chính
B6 Đăng nhập thành công
- Luồng rẽ nhánh A1: Đăng nhập không thành công
B1 Hệ thống thông báo lỗi (Tài khoản, mật khẩu không chính xác hoặc tài khoản không tồn tại)
B2 Yêu cầu nhập lại thông tin
B3 Quay lại B3 trong luồng sự kiện chính
- Hậu điều kiện: Đăng nhập thành công, admin và thành viên có thể sử dụng các chức năng mà hệ thống cung cấp
Trang 28Hình 3.2: Biểu đồ tuần tự chức năng đăng nhập
b) Chức năng cấp tài khoản
- Tác nhân: Admin
- Mục đích: Admin sử dụng chức năng này để cấp cho doanh nghiệp của hệ thống
- Tiền điều kiện: Admin đã tạo doanh nghiệp
- Luồng sự kiện chính:
B1 Admin click chuột chọn chức năng quản lý user đăng nhập
B2 Danh sách doanh nghiệp và kèm theo icon user cho từng doanh nghiệp hiển thị lên màn hình
B3 Admin click chuột vào icon user của doanh nghiệp cần cấp user
B4 Admin click chuột vào button “Thêm mới” để thêm user cho doanh nghiệp B5 Admin điền thông tin mà form đăng ký yêu cầu
B6 Nhấn nút Thêm mới
B7 Hệ thống kiểm tra thông tin admin vừa nhập vào Nếu không hợp lệ thì thực hiện luồng rẽ nhánh A1 Nếu hợp lệ tiếp tục thực hiện bước tiếp theo trong luồng sự kiện chính
B8 Hệ thống cập nhật thông tin thành viên vào database và tạo ra một account cho thành viên sử dụng
- Luồng rẽ nhánh A1: Admin đăng ký không thành công
B1 Hệ thống thông báo lỗi (Tài khoản đã tồn tại)
B2 Yêu cầu admin điền lại thông tin trong form đăng ký
B3 Quay lại B3 trong luồng sự kiện chính
- Hậu điều kiện: Thực hiện thành công chức năng này, admin đã cấp thành công tài khoản thành viên cho doanh nghiệp và trở thành thành viên của hệ thống