TRƯỜNG ĐẠI HỌC NGUYỀN TẤT THÀNHTHÁI TRÚC NHI NGHIÊN CỬU XÂY DỤNG HỆ THỐNG QUẢN LÝ HỒ so SINH VIÊN DựA TRÊN CÔNG NGHỆ BLOCKCHAIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: 8480201 NGƯỜI HƯỚ
Trang 1TRƯỜNG ĐẠI HỌC NGUYỀN TẤT THÀNH
THÁI TRÚC NHI
NGHIÊN CỨU XÂY DỤNG HỆ THÓNG QUẢN LÝ HỒ sơ SINH VIÊN DựA TRÊN CÔNG NGHỆ BLOCKCHAIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN KIM QUỐC
Tp Hồ Chí Minh, Tháng 4 - Nănì 2022
Trang 2TRƯỜNG ĐẠI HỌC NGUYỀN TẤT THÀNH
THÁI TRÚC NHI
NGHIÊN CỬU XÂY DỤNG HỆ THỐNG QUẢN LÝ HỒ so SINH VIÊN DựA TRÊN CÔNG NGHỆ BLOCKCHAIN
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 8480201
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS NGUYỄN KIM QUỐC
Tp Hồ Chí Mình, Tháng 4 - Năm 2022
Trang 3Tôi xin cam đoan các nội dung trong luận văn với đề tài “NGHIÊN cứu XÂY
TP.HCM, ngày 01 tháng 03 năm 2022
Tác giá luận văn
Thái Trúc Nhi
Trang 4Lời đầutiên tôi chân thành cảm ơn toàn the quý thầy cô Khoa Côngnghệ thông
TP.HCM, ngày 01 thảng 03 năm 2022
Tác giá luận văn
Thái Trúc Nhi
Trang 5LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC HÌNH vi
DANH MỤC CÁC BẢNG viii
DANH MỤC KÝ HIỆU VÀ VIẾT TẤT ix
CHƯƠNG 1: TÓNG QUAN ĐỀ TÀI LUẬN VÀN 1
1.1 Tỏng quan tình hình nghiên cứu liên quan đén đè tài 1
1.2 LÝ DO CHỌN ĐÈTÀI 1
1.3 Mục TIÊU NGHIÊN cứu 2
1.3.1 về lý thuyết 2
1.3.2 về ứng dựng 2
1.4 ĐÓI TƯỢNG NGHIÊNcúư 3
1.5 Phạm VI NGHIÊN cúư 3
1.6 Phương pháp nghiên cúư 3
1.7 Ý NGHÌA thục tiên cùa đè tài 4
1.8 BÒ cục CỦA ĐÈ TÀI 4
CHƯƠNG 2: TÓNG QUAN VÈ CÔNG NGHỆ BLOCKCHAIN 5
2.1 CÒNG NGHỆ Blockchain 5
2.1.1 Blockchain là gì 5
2.1.2 Lịch sử ra đời 8
2.1.3 Đặc trưng của Blockchain 9
2.1.4 Cơ sở dữ liệu cùa Blockchain 10
2.1.5 Phân loại các hệ thong Blockchain 13
2.2 CÒNG CỤ ETHEREƯM 15
Trang 62.2.1 Ethereum hoạt động như thế nào? 16
2.2.2 Ethereum được sử dụng đê làm gì ? 16
2.2.3 Nguồn gốc của Ether eum 16
2.2.4 Lợi ích cùa Ethereum 17
2.2.5 Hoạt động của Ethereum 17 2.2.6 ứng dụng được xây dựng trên Ether eum 17
2.2.7 Kiến trúc Ethereum Blockchain 18
2.2.8 Hợp đồng thông minh 19
2.2.9 Nen tàng lý thuyết hàm băm được SŨ’ dụng trong Blockchain 20
2.3 Tiếu kétCHƯƠNG2 24
CHƯƠNG 3: XÂY DỤNG HỆ THỐNG QUẢN LÝ HÒ sơ SINH VIÊN DỰA TRÊN CÒNG NGHỆ BLOCKCHAIN 25
3.1 MÒTẢBÀI TOÁN 25
3.2 Giai quyét bài toán của minh bạch thòng tin hò sơ sinh viên bầng Ọrcode với Ethereum 27
3.2.1 Tỉnh năng vượt trội cùa Ethereum đem lại so với Database truyền thong 27 3.2.2 Các thành phần trong mạng Ethereum Blockchain 28
3.2.3 Luồng xử lý giao dịch 29
3.2.4 Xây dựng hệ thong 30
3.3 Phân tích thiét ké hệ thống 30
3.3.1 Sơ đồ nghiệp vụ 30
3.3.2 Danh sách Actor 31
3.3.3 Sơ đồ Use Case 32
3.3.4 Mô tả Use Case 33
3.3.5 Sơ đồ tổng quan hệ thống 45
3.3.6 Thiết kế cơ sở dữ liệu 46
3.3.7 Thiết kế ’ website 51
CHƯƠNG 4: CÀI ĐẬT VÀ KIẾM THỦ CHƯƠNG TRÌNH 53
4.1 Màn hình đăng nhập 53
Trang 74.2 Màn hình chính 54
4.3 màn hình quán lý hò sơ 55
4.3.1 Màn hình thêm mới sinh viên 56
4.3.2 Màn hình sữa thông tin sinh viên 57
4.3.3 Màn hình xóa sinh viên 58
4.4 Màn hình quét ỌRCode 58
4.5 Màn hình Điêm quá trình 59
4.6 màn hình Điẻm cuối kỳ 60
4.7 màn hình Quần lý người dừng 61
4.7.1 Màn hình Thêm mới người dùng 62
4.7.2 Màn hình Sửa thông tin người dùng 63
4.7.3 Màn hình xóa thông tin người dùng 64
4.8 Màn hình Bảng diêm của sinh viên 65
CHƯƠNG 5: KÉT LUẬN VÀ HƯỚNG PHÁT TRIÉN 66
5.1 Kết luận 66
5.2 Hướng phát triên 66
TÀI LIỆU THAM KHẢO 67
Trang 8DANH MỤC CÁC HÌNH
Trang
Hình 2.1.Mò hình lưu trừCSDL truyèn thóng và Blockchain 7
Hình 2.2 CÁUTRÚCDỪ LIỆU cơ BẢN CỦA MỘT BLOCK TRONG Blockchain 12
Hình 2.3.Logo còng cụ Ethereum 15
Hình 2.4 Kién trúc Ethereum Blockchain 19
Hình 2.5 Mò HÌNH Smart Contract 20
Hình 2.6 VíDỤ MỘT HÀM BÃM ĐƠN GIẢN 21
Hình 2.7.CÁU TRÚC PHƠ BIÊN CỦA 1 HÀMBĂM 22
Hình 2.8 CÁUTRÚCMerkle-Damgảrd choSHA-256 23
Hình 3.1 Quy trình xử lý thòng tin Ethereum Blockchain 28
Hình 3.2 Luóng xử lý giao dịch 29
Hình 3.3 Sơ đò hệ thòng 30
Hình 3.4 Sơ ĐÒNGHIỆP vụ 30
Hình 3.5 Sơ đó Use Case 32
Hình 3.6 Sơ ĐÒ TUẦN Tự ĐĂNG NHẬP 34
Hình 3.7 Sơ ĐÒ TUẦN Tự ĐĂNG XUẤT 35
Hình 3.8 sơ ĐÒ TUẦN Tự ĐỎIMẬT KHÀU 36
Hình 3.9 sơ ĐÒ TUẦN Tự Thêm người dùng 38
Hình 3.10 Sơ ĐÓ TUẦNTỰCẬPNHẬTTHÒNG TIN NGƯỜI DÙNG 38
Hình 3.11 Sơ đò tuần Tự Thêm hò sơ sinh viên 41
Hình 3.12 Sơ ĐÓ TUẦN Tự CẬP NHẬT THÒNG TIN HƠ sơ SINHVIÊN 41
Hình 3.13 Sơ đò tuần Tự XEM KÉT QUẢ HỌC TẬP CÙA SINH VIÊN 44
HÌNH3.14 Sơ ĐÓ TỎNGQUANHỆ THỐNG 45
Hình 3.15 Sơ ĐÒ CơSỚDỪ LIỆU HỆ THỐNG 46
Hình 3.16.Thiét ké bảng Khoa 46
Hình 3.17.Thiét kẻ bảng lóp học 47
Hình 3.18.Thiét kê bảng Giàng viên 47
Trang 9Hình3.19.THIÉTké bảng Sinh viên 48
Hình 3.20.Thiét kẻ bảng mòn học 48
Hình 3.21.Thiét kê bảng lớp học phàn 49
Hình 3.22.Thiét ké bảng két quả 49
Hình 3.23.Thiết ké bảng Loại người dừng 50
Hình 3.24 Thiết ké bảng Người dừng 50
Hình 3.25.Thiét ké bảng HashSV 51
Hình 3.26.Thiét kế bảng Archive 51
HÌNH4.1 Màn hình đăng nhập 53
Hình4.2 Màn hình chính 54
Hình4.3 Màn hình quản lý hò sơ sinh viên 55
Hình4.4 Màn hình thêm mới sinh viên 56
Hình4.5 Màn hình sủa thông tin sinh viên 57
Hình4.6 Màn hình xóa sinh viên 58
Hình4.7 Màn hình quétỌRCode 58
Hình4.8 Màn hìnhĐiêm quá trình 59
Hình4.9 Màn hình Điẽm cuói kỳ 60
Hình 4.10 Màn hình Quản lý người dùng 61
Hình 4.11 Màn hình thêm mới người dùng 62
Hình 4.12 Màn hình sưa thông tin người dửng 63
Hình 4.13 Màn hình xóa người dùng 64
Hình 4.14 MÀN HÌNH BẢNGĐIÉM CỦASINHVIÊN 65
Trang 11Viết tắt Nội dung
DAO
trung
Trang 12Chương 1:
TÓNG QUAN ĐỀ TÀI LUẬN VÀN
1.2 Lý do chọn đề tài
Trang 13mũi nhọn và được ưutiên hàng đầu ở nước ta Song song với việc ứng dụng CNTT
1.3.1 về lý thuyết
Blockchain
1.3.2 về ứng dựng
Trang 14cận được thông tin chi tiết về hồ sơ sinh viên.
Blockchain
Trang 15- Tổng kết kinh nghiệm mang tính quần chúngrộng rãi.
viên
1.7 Ý nghĩa thực tiễn cũa đề tài
1.8 Bố cục ciia đề tài
Blockchain
Trang 16Chương 2:
TÓNG QUAN VỀ CÔNG NGHỆ BLOCKCHAIN
Internet
2.1.1 Blockchain là gì
Trang 17VD: Block 10 liên kết block 9, block 9 liên kết block 8 Bằng cách liên
Trang 18không có Đe bẻ khóa, hacker cần truy cập tất cả phiên bản cùng lúc Do quátrình
Hình 2.1 Mô hình lưu trữ CSDL truyền thống và Blockchain
Trang 19về mặt kỳ thuật, Blockchain là một cuốn sổ cái phân tán, đồng cấp peer-
2.1.2 Lịch sử ra đòi
Paxos
Trang 20Transaction on ComputerSystems; bài báo được phát hành cuối cùng vào mộtsố
Blockchain
2.1.3 Đặc trưng của Blockchain
Trang 21luật chơi đồngthuận (PoW, PoS) và được thúcđẩy bởi động lực xác định trước.
hợp
2.1.4 Cơ sở dữ liệu ciia Blockchain
Trang 22phi tập trung nhưBlockchain là mụcđích sử dụng Cơsở dừu liệutập trung nhằm
Định danh block: Định danh chính của một block chính là mã hash (mã
Liên kết các block trong blockchain
Trang 23Mồi khi một block mới được xác thực và được ghi vào Blockchain thì
Timestamp Thời gian block được tạo ra
JSON.stringify(Data));
Trang 24Vì khối sau luôn có 1 phầntừ là dừ liệu hash củakhối trước nó, nên dữ liệu
2.1.5 Phân loại các hệ thống Blockchain
2.1.5.1 Phăn loại các hệ thong Blockchain
Trang 25tố chức tài chính liêndoanh sẽ sử dụng Blockchain cho riêng mình.
2.1.5.2 Các thế hệ của Blockchain
Trang 26thông minh, tài sản thông minh, Dapp (ứng dụng phi tập trung), DAO (tố chức tự
nature
lừa đảo
Hình 2.3 Logo công cụ Ethereum
Trang 272.2.1 Ethereum hoạt động như thế nào?
2.2.3 Nguồn gốc của Ethereum
Trang 28Ke từ đó, hàng ngàn nhà phát triển đã cùng nhau chung tay góp sức, tạo
2.2.4 Lọi ích của Ethereum
2.2.5 Hoạt động của Ethereum
Trang 29tiền điện tử được thiết kế đế giảm thiểu tác động của biến động giá Tiền điệntử
2.2.7 Kiến trúc Ethereum Blockchain
nút
Trang 30Tầng thứ ba: (tầng cao nhất) là Decentralized Application (Dapp) Khi lập
Hỉnh 2.4 Kiến trúc Ethereum Blockchain
Trang 31nhau Với sức mạnh của smart contract, Ethereum tỏ ra phù hợp với bất cứ kiểu
Hình 2.5 Mô hình Smart Contract
Trang 32Hàm băm H là không xung đột (collision-free), gọi là không xung đột
Hình 2.6 Ví dụ một hàm băm đơn giàn
Trang 33Ci = bil ® bi2 ® ® bim
Trong đó:
băm
Hình 2.7 Cấu trúc phổ biến cùa 1 hàm băm
Trang 34tránhxung đột, cần chọn giá trị b > n.
Thuật toán băm SHA-256: SHA-256 thuộc họ băm SHA-2 Phưong pháp
512-bits 512-bits 512-bits 512-bits
Message Block-2
Message
Block -1
_ I _
Message Block - n 512-bits
Hình 2.8 Cấu trúc Merkle-Damgảrd cho SHA-256
Trang 352.3 Tiểu kết chương 2
viên
Trang 36Chương 3:
XÂY DỤNG HỆ THỐNG QUẢN LÝ HỒ sơ SINH VIÊN DỤA TRÊN
CÔNG NGHỆ BLOCKCHAIN
3.1 Mô tả bài toán
Trang 37Các công ty tuyển dụng nhân sự cũng có thế tiết kiệm được rất nhiều tiền
Trang 38• Bảo trì hệ thống
với Ethereum
3.2.1 Tính năng vượt trội của Ethereum đem lại so với Database truyền thống
Trang 393.2.2 Các thành phần trong mạng Ethereum Blockchain
ỌRcode
Hình 3.1 Quy trình xử lý thông tin Ethereum Blockchain
Trang 403.2.3 Luồng xử lý giao dịch
Hình 3.2 Luồng xử lý giao dịch
Trang 423.3.2 Danh sách Actor
Trang 433.3.3 Sơ đồ Use Case
Trang 44Bảng 3.2 Danh sách các Use Case hệ thống
3.3.4.1 Ul: Đăng nhập
Trang 45Hình 3.6 Sơ đồ tuần tự Đăng nhập
Scope: Hệthống quản lý ho sơ sinh viên
Level: User-goal
Main success scenario:
2 Hệ thốngkiểm tra và nhận thấy username và password ton tại, hệ
Extensions:
công
Trang 462a Hệ thống nhận thấy tên username không tồn tại:
2a.l Hệ thống thông báo “Tên username không ton tại”; use
2b Hệ thống nhận thấy password sai:
2b.l Hệ thống thông báo “Password sai”; use case quay về
2c.l Hệ thong thông báo Tên username chưa được cung
2d Hệ thống nhận thấy Password chưađược cung cấp:
2c.l Hệ thốngthôngbáo “Password chưa được cung cap”; use
3.3.4.2 UI: Đăng xuất
Trang 47Scope: Hệthống quản lýhồ sơ sinh viên
Level: User-goal
Precondition: Người dùng phải đăng nhập thành công vàohệ thống
Main success scenario:
2 Hệ thống thực hiện đăng xuất người dùng
Extensions:
Trang 48Scope: Hệ thống quản lý hồ sơ sinh viên
Level: User-goal
Precondition: Người dùngphải đăng nhập thành côngvào hệ thống
Main success scenario:
Extensions:
2a.l Hệ thống thông báo Tên đăng nhập hoặc email phải
2b.l Hệ thống thông báo “Tên đăng nhập hoặc email không
3.3.4.4 U4-7: Quản lý người dùng
Trang 49Hình 3.9 Sơ đồ tuần tự Thêm người dùng
Hình 3.10 Sơ đồ tuần tự Cập nhật thông tin người dùng
Scope: Hệ thống quản lý hồ sơ sinh viên
Level: User-goal
Trang 50Primary actor: Al
Precondition: Nhân viên quản trị phải đăng nhập thành công vào hệthống
Main success scenario:
2.1 Nhân viên quản trị hệ thống cung cấp thông tin người
2.2 Hệ thống kiểm tra và nhận thấy thôngtin người dùng đầy
3.1 Nhân viên quản trị hệ thống cung cap username và yêu
3.2 Hệ thống kiểm tra và nhận thấy tên usemame tồn tại, hệ
3.3 Nhân viên quản trị hệ thong cập nhật các thông tin người
3.4 Hệ thống sẽ kiểm tra và nhận thấy thông tin vừa cập nhật
Extensions:
2.1 a Nhân viên quản trị hệ thống thôi không thêm người dùng; use
Trang 51case kết thúc khôngthành công.
2.2 a Hệ thống nhậnthấy thông tin người dùng được cung cấpkhông
2.2a.l Hệ thống thông báo cho nhân viên quản trị hệ thống
2.2.b Hệ thống nhận rằng tên usemame đãtồn tại:
2.2b.l Hệ thống thông báo “Tên username đã tồn tại”; use
3.2 a Hệ thống nhận thấy usemame chưađược cung cấp
3.2a.l Hệ thống thông báo “Tên username chưa được cung
3.2b Hệthống thấy rằng người dùng khôngtồn tại:
3.2b.l Hệ thống thông báo “Người dùng không tồn tại”; use
3.3a Nhân viên quản tri hệ thống không tiếp tục cập nhật các thông
3.4a Hệ thống nhận thấy username chưađược cung cấp:
3.4a.l Hệ thống thông báo “Tên usernamechưađược cung cấp”
3.4a.2 Use case quay lại bước 3.3
3.4b Hệthống nhận thấy username vừa cập nhật đã tồntại:
3.4b.l Hệ thống thôngbáo “Tên username đã tồn tại”; usecasequay
Trang 52lại bước 3.3.
3.3.4.5 U4-7: Quản lý hồ sơ sinh viên
Hình 3.11 Sơ đồ tuần tự Thêm hồ sơ sinh viên
XemHS(MaSV)
Hiên thi thông tin hood sơ sĩnh viên
CapNhatHS(MaSV, HoTen.NgSinh DChi, Email)
Thông báo
Hình 3.12 Sơ đồ tuần tự Cập nhật thông tin hồ sơ sinh viên
Trang 53Scope: Hệ thốngquản lý hồ sơ sinh viên
Level: User-goal
Precondition: Nhânviênquảnlý phải đăng nhập thành công vào hệ thống
Main success scenario:
1 Nhân viên quản lý yêu cầu hệ thống cho thêm hồ sơ sinh viên,
2.1 Nhân viên quản lý cung cấp thông tinhồ sơ sinh viên bao
2.2 Hệ thống kiểm tra và nhận thấythông tin hồ sơ sinh viên
3.1 Nhân viên quản lý cung cấp mã sinh viên và yêu cầu hệ
3.2 Hệ thống kiếm tra và nhận thấytên mã sinh viên tồn tại,
3.3 Nhân viên quản lý cập nhật các thông tin ho sơ sinh viên
3.4 Hệ thống sè kiểm tra và nhận thấy thông tin vừa cập nhật
Trang 542.2a.l Hệ thống thông báo cho nhân viên quản lý biết thông
2.2.b Hệ thống nhận rằng tên usemame đãtồntại:
2.2b.l Hệ thống thông báo “Tên usemame đã ton tại”; use
3.1 a Nhân viên quản lý thôi không cập nhật hồ sơ sinh viên; use
3.2 a Hệ thống nhận thấy mã sinh viên chưa được cung cấp
3.2a.l Hệ thống thông báo “Mã sinh viên chưa được cung
3.2b.l Hệ thống thông báo “hồ sơ sinh viên không ton tại”;
3.4 a Hệ thống nhận thấy mã sinh viên chưa được cung cấp:
3.4 a.l Hệ thống thông báo “Mã sinh viên chưa được cung cấp”
3.4 a.2 Use case quay lại bước3.3
Trang 553.4 b Hệ thống nhận thấy mã sinh viên vừa cập nhậtđãtồn tại:
3.4 b.l Hệ thống thông báo “Mã sinh viênđã tồn tại”; use case quay
Két quà hoc táp của sinh vĩẻn
Hình 3.13 Sơ đồ tuần tự Xem kết quà học tập cùa sinh viên
Scope: Hệthống quản lý ho sơ sinh viên
Level: User-goal
Main success scenario:
2 Hệ thống xuất thông tin kết quả học tập của sinh viên theo yêu
Extensions:
Trang 56la Người dùng thôi yêu cầu hệ thống cho xem kết quả học tập của
Trang 573.3.6 Thiết kế cơ sở dữ liệu
Hình 3.15 Sơ đồ cơ sở dữ liệu hệ thống
Trang 58Data Type Allow Nulls Column Name
Hình 3.17 Thiết kế bảng Giảng viên
Column Name Data Type Allow Nulls
Trang 59Hình 3.18.Thiết kế báng Sinh viên
Column Name Data Type Allow Nulls
Data Type Allow Nulls Column Name
Trang 60Hình 3.20 Thiết kế bảng Lớp học phần
Column Name ơeateAt
updateAt malhp makh
magv mamh
Data Type Allow Nulls
Hình 3.21 Thiết kế bảng Kết quả
Column Name Data Type
datetime datetime
varchar(25O)
real real
Trang 61Hình 3.22 Thiết kế bàng Loại người dùng
Column Name ơeateAt
updateAt maloaind
Data Type datetime
datetime varchar(250)
Activecode/ỌRcode
Trang 62Data Type Allow Nulls
text
Allow Nulls
originalRecord text fromModel
Hình 3.25 Thiết kế bàng Archive
3.3.7 Thiết kế website
3.3.7.1 Định nghĩa cẩu trúc website
Trang 633.3.7.2 Cấu trúc website quản lý hồ sơ sình viên
Trang 64Chương 4:
CÀI ĐẶT VÀ KIẾM THỬ CHƯƠNG TRÌNH
Trang 65cung cấp cho các tác nhân là người quản trị, nhân viêncần đăng nhập thành công
Trang 664.3 Màn hình quản lý hồ sơ
Danh sách hồ sơ sinh viên
4-THEM MO
MJSV Họ va Un Giơl tinh Ngay Mnh top hoc Két qua hoc tap Chưc nâng
2100005195 Trăn Thanh Nhan Nam 11/13/2003 21DTH1B xem K®
2100006504 Phan Anh Bào Nam 8/5/2003 21DTH1B xem K0
2100C07268 Hò Trọng Bình Nam 7/10/2003 21DTH1B Xem K@
2100006474 Phan Thị Anh Đãi Nam 10/16/2003 21DTH1B Xem K®
2100007383 Tràn Thanh Danh Nam 11/10/2003 21DTH1B Xem 0©
2100007344 Lé Ván Den Nam 9/2/2003 21DTH1B Xem K®
2100006506 Nguyền Đức Đồ Nam 3/22/2003 21DTH1B "•m K®
2100006508 Nguyền Tiẻn Đong Nam 6/21/2003 21DTH1B Xem K0
Hình 4.3 Màn hình quản lý hồ sơ sinh viên
Trang 674.3.1 Màn hình thêm mới sinh viên
Hỉnh 4.4 Màn hình thêm mới sinh viên
Trang 684.3.2 Màn hình sửa thông tin sinh viên
Hỉnh 4.5 Màn hình sửa thông tin sinh viên