ĐẶT VẤN ĐỀ Hiện nay, sự phát triển của công nghệ thông tin đã tác động mạnh mẽ và làm thay đổi hầu hết các lĩnh vực: kinh tế, xã hội, giáo dục, nông nghiệp,… Công nghệ thông tin đã trở thành trụ cột chính của nền kinh tế tri thức, ứng dụng công nghệ thông tin vào giáo dục được rất nhiều người quan tâm. Điều này mang lại hiệu quả cho quản lý, đào tạo và đơn giản hóa các nghiệp vụ phức tạp. Việc ứng dụng công nghệ thông tin trong công tác đào tạo và quản lý sinh viên là cần thiết. Việc này giúp công tác quản lý, lưu trữ hồ sơ cũng như truy xuất và thống kê được dễ dàng và nhanh chóng.
Với công nghệ ngày càng phát triển thì càng có nhiều công cụ để quản lý hồ sơ. Tuy nhiên, để đảm bảo tính bảo mật đối với các thông tin riêng tư, tính minh bạch đối với từng hồ sơ thì một giải pháp được đề xuất là lưu trữ dữ liệu trên blockchain. Blockchain có những đặc tính ưu việt như tính bảo mật cao, không thể làm giả. Khi đó, dữ liệu thông tin sinh viên được lưu trên blockchain, nhà trường sẽ cung cấp cho các doanh nghiệp, nhà tuyển dụng một mã truy cập để có thể truy xuất được thông tin sinh viên.
Từ những vấn đề trên và những ưu điểm từ công nghệ Blockchain mang lại là nền tảng thiết yếu để đề tài: “Xây dựng hệ thống quản lý hồ sơ sinh viên Trường đại học An Giang bằng công nghệ Blockchain Hyperledger Fabric - Phân hệ Ứng dụng Web” được hình thành.2 PHẠM VI CỦA ĐỀ TÀI Quy trình quản lý hồ sơ sinh viên Trường đại học An Giang bao gồm: - Quản lý thông tin sinh viên. - Quản lý thành tích sinh viên. - Quản lý việc truy cập hồ sơ sinh viên đối với doanh nghiệp. - Doanh nghiệp có thể truy cập hồ sơ sinh viên và lịch sử truy cập hồ sơ với mã truy cập được cung cấp.3 PHƯƠNG PHÁP NGHIÊN CỨU - Nghiên cứu các tài liệu về hồ sơ sinh viên.
- Xác định các quy trình nghiệp vụ, yêu cầu của hệ thống, CSDL. - Phương pháp thực nghiệm: phân tích, thiết kế, xây dựng, phát triển, kiểm thử.1 Tổng quan về PHP PHP (PHP: Hypertext Preprocessor): 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 cho máy chủ, với mã nguồn mở nó rất thích hợp với web và có thể dễ dàng nhúng vào 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 như C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn. PHP đã nhanh chóng trở thành ngôn ngữ lập trình web phổ biến.
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. 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. PHP đã phát triển qua các phiên bản như: PHP/FI 2.0 và hiện nay là PHP 8 đang được phát triển.2 Tổng quan về RESTful API API (API: Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML. REST (REST: REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API.
Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu. RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.3 Tổng quan về 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,.
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). MySQL được sử dụng cho việc bổ trợ Node.js, 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,.4 Tổng quan về mô hình MVC Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong xây dựng phần mềm. Nó giúp cho người phát triển tách ứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Mô hình này được dùng khá rộng rãi và đặc biệt là trong các dự án web. Trong PHP có khá nhiều framework (Laravel, Symfony, CodeIgniter,…) và tất cả đều sử dụng mô hình MVC. Các thành phần của mô hình MVC: - Model: là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất dữ liệu, đối tượng mô tả dữ liệu như các lớp, hàm xử lý. - View: Có nhiệm vụ tiếp nhận dữ liệu từ Controller và hiển thị nội dung ra trình duyệt dưới dạng HTML.
- Controller: Đóng vai trò trung gian giữa Model và View. Nó có nhiệm vụ tiếp nhận request từ client, gọi các phương thức tương ứng từ Model và gửi dữ liệu qua View tương ứng. Cách làm việc của mô hình MVC: 5 Hình 1. Mô hình MVC Ưu điểm của mô hình MVC: dễ phát triển hệ thống về sau do được phân chia theo từng phần, rất dễ để nâng cấp, nhiều người có thể Ɩàm chung một dự án do được chia nhỏ từng module, mức độ bảo mật cao, dễ dàng khắc phục các lỗi trong quá trình thiết kế.
Nhược điểm của mô hình MVC: so với PHP thuần thì hệ thống sẽ chạy chậm hơn nhưng không đáng kể, tốn nhiều thời gian để xây dựng do sự phức tạp trong cấu trúc, cần kiến thức về lập trình hướng đối tượng và xử lý mảng.5 Tổng quan về Laravel framework Là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell, ra mắt lần đầu vào tháng 06 năm 2011 và nhằm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiến trúc model-view-controller (MVC). Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu – rõ ràng, một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng. Luồng xử lý của Laravel: 6 Hình 2. Luồng xử lý của Laravel Ưu điểm của Laravel: sử dụng các tính năng mới nhất của PHP, sử dụng mô hình MVC, nguồn tài nguyên vô cùng lớn và sẵn có, tích hợp với dịch vụ mail, tốc độ xử lý nhanh, tính bảo mật cao, tích hợp công cụ Artisan – Công cụ quản lý dòng lệnh, sử dụng composer để quản lý PHP package, hỗ trợ Eloquent ORM, Query Builder, Template Engine (Blade) Nhược điểm của Laravel: không hỗ trợ tính năng thanh toán, thiếu sự liên tục giữa các phiên bản, thường không cung cấp sự phong phú cho ứng dụng di động.6 Tổng quan về Bootstrap Bootstrap là sản phẩm của Mark Otto và Jacob Thornton tại Twitter.
Nó được xuất bản như là một mã nguồn mở vào ngày 19/8/2011 trên GitHub. Tên gọi ban đầu là Twitter Blueprint. Bootstrap là một bộ sưu tập miễn phí của các mã nguồn mở và công cụ dùng để tạo ra một mẫu website hoàn chỉnh. Với các thuộc tính về giao diện được quy định sẵn như kích thước, màu sắc, độ cao, độ rộng…, các designer có thể sáng tạo nhiều sản phẩm mới mẻ nhưng vẫn tiết kiệm thời gian khi làm việc với framework này trong quá trình thiết kế giao diện website.
Ưu điểm của Bootstrap: khả năng tạo giao diện nhanh, nền tảng tối ưu, tương tác tốt với smartphone, giao diện đầy đủ, sang trọng, dễ dàng tùy biến. Nhược điểm của Bootstrap: kém phổ biến, sản phẩm nặng, tốc độ tối ưu cao, chưa hoàn thiện. 7 CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 PHÂN TÍCH YÊU CẦU HỆ THỐNG 3.1 Yêu cầu chức năng Đối với admin: Các công việc thuộc quyền cán bộ và quản lý tài khoản Bảng 1. Yêu cầu chức năng của admin STT Công Việc Loại Công Việc 1 Quản lý Tài Khoản : Tìm kiếm, thêm, xóa, sửa + Cán bộ + Sinh viên Đối với cán bộ Bảng 2.
Yêu cầu chức năng đối với cán bộ STT Công Việc Loại Công Việc 1 Quản lý khoa Tìm kiếm, thêm, xóa, sửa, nhập, xuất 2 Quản lý ngành Tìm kiếm, thêm, xóa, sửa, nhập, xuất 3 Quản lý hệ đào tạo Tìm kiếm, thêm, xóa, sửa, nhập, xuất 4 Quản lý niên học Tìm kiếm, thêm, xóa, sửa, nhập, xuất 5 Quản lý lớp Tìm kiếm, thêm, xóa, sửa, nhập, xuất 6 Quản lý sinh viên Tìm kiếm, thêm, xóa, sửa, nhập, xuất 7 Quản lý điểm rèn luyện Tìm kiếm, thêm, xóa, sửa, nhập, xuất 8 Quản lý điểm học tập tích lũy Tìm kiếm, thêm, xóa, sửa, nhập, xuất 9 Quản lý thành tích nổi bật Tìm kiếm, thêm, xóa, sửa, nhập, xuất 10 Quản lý doanh nghiệp Tìm kiếm, thêm, xóa, sửa, nhập, xuất 11 Quản lý truy cập hồ sơ sinh viên Tìm kiếm, thêm, xóa, sửa, nhập, xuất 8 Đối với sinh viên Bảng 3.