Tải bản đầy đủ (.pdf) (75 trang)

Đồ án tốt nghiệp website quản lý visa lưu học sinh tại udck

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.79 MB, 75 trang )

ĐẠI HỌC ĐÀ NẴNG
PHÂN HIỆU TẠI KON TUM

PHOMMALAILOUN BOUABAN
PHAENGSOMPHAN MOUKSUP

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

WEBSITE QUẢN LÝ VISA LƯU HỌC SINH TẠI UDCK

Kon Tum, tháng 03 năm 2022


ĐẠI HỌC ĐÀ NẴNG
PHÂN HIỆU TẠI KON TUM

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

WEBSITE QUẢN LÝ VISA LƯU HỌC SINH TẠI UDCK

GIẢNG VIÊN HƯỚNG DẪN : TS. ĐỒNG NGỌC NGUYÊN THỊNH
SINH VIÊN THỰC HIỆN

: PHOMMALAILOUN BOUABAN
: PHAENGSOMPHAN MOUKSUP

LỚP

: K11TT

MSSV



: 17152480201022
: 17152480201016

Kon Tum, tháng 03 năm 2022


LỜI CÁM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô của
trường, đặc biệt là các thầy cô khoa Công nghệ đã giúp đỡ em để em có thể hồn thành
tốt Báo cáo tốt nghiệp. Và em cũng xin chân thành cám ơn Thầy Đồng Ngọc Nguyên
Thịnh và Cô Lê Thị Bảo Yến đã nhiệt tình hướng dẫn hướng dẫn em trong việc lựa chọn
đề tài nghiên cứu, hướng tiếp cận và giúp em chỉnh sửa những thiếu sót trong q trình
nghiên cứu. Trong q trình nghiên cứu, khó tránh khỏi sai sót, chúng em rất mong nhận
được ý kiến đóng góp từ phía Thầy, Cơ để chúng em học thêm được nhiều kinh nghiệm
và sẽ hoàn thành tốt hơn.
Chúng em xin chân thành cảm ơn!
PHOMMALAILOUN Bouaban
PHAENGSOMPHAN Mouksup


MỤC LỤC
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI............................................................................1
1.1. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU .......................................................1
1.2. LÝ DO CHỌN ĐỀ TÀI ..........................................................................................1
1.3. MỤC TIÊU NGHIÊN CỨU...................................................................................2
1.3.1. Lý thuyết ..........................................................................................................2
1.3.2. Công nghệ ........................................................................................................2
1.3.3. Ứng dụng ..........................................................................................................2
1.4. PHƯƠNG PHÁP NGHIÊN CỨU .........................................................................2

1.4.1. Khảo sát thực tế ...............................................................................................2
1.4.2. Lý thuyết ..........................................................................................................2
1.4.3. Công nghệ ........................................................................................................3
1.4.4. phạm vi nghiên cứu .........................................................................................3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ..............................................................................4
2.1. GIẢI PHÁP THIẾT KẾ .........................................................................................4
2.1.1. Mơ hình Client - Server ..................................................................................4
2.1.2. Mơ hình MVC trong việc xây dựng website .................................................5
2.1.3. Authentication .................................................................................................7
2.1.4. Authorization ...................................................................................................9
2.2. CÔNG CỤ SỬ DỤNG ..........................................................................................10
2.2.1. Các công cụ và công nghệ được sử dụng.....................................................10
2.2.2. Giới thiệu một số cơng nghệ .........................................................................10
CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ........................................14
3.1. ĐẶC TẢ YÊU CẦU ..............................................................................................14
3.1.1. Yêu cầu chức năng ........................................................................................14
3.1.2. Yêu cầu phi chức năng ..................................................................................15
3.2. PHÂN TÍCH YÊU CẦU ......................................................................................16
3.2.1. Các tác nhân sử dụng ....................................................................................16
3.2.2. Phân tích chức năng admin ..........................................................................16
3.2.3. Phân tích chức năng sinh viên......................................................................22
3.2.4. Phân tích chức năng người đăng bài ...........................................................25
3.2.5. Phân tích chức năng khách ..........................................................................27
3.3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG........................................................28
3.3.1. Sơ đồ usecase .................................................................................................28
3.3.2. Sơ đồ tuần tự..................................................................................................29
3.3.3. Sơ đồ lớp.........................................................................................................43
3.3.4. Lược đồ cơ sở dữ liệu ....................................................................................45
3.4. DEMO KẾT QUẢ ................................................................................................47
3.4.1. Frontend .........................................................................................................47

3.4.2. Backend ..........................................................................................................52
i


CHƯƠNG 4 KẾT LUẬN ............................................................................................64
4.1. KẾT LUẬN ...........................................................................................................64
4.1.1. Kết quả đạt được ...........................................................................................64
4.1.2. Hạn chế ...........................................................................................................64
4.2. HƯỚNG PHÁT TRIỂN .......................................................................................65
DANH MỤC TÀI LIỆU THAM KHẢO ...................................................................66
GIẤY XÁC NHẬN HOÀN THÀNH BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

ii


DANH MỤC CÁC BẢNG
Số hiệu bảng
3.1.
3.2.
3.3
3.4

Tên bảng
Yêu cầu chức năng
Yêu cầu phi chức năng
Giải thích sơ đồ lớp
Giải thích lược đồ CSDL

iii


Trang
14
15
43
45


DANH MỤC CÁC HÌNH
Số hiệu hình
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
2.9.
2.10.
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
3.9.
3.10.
3.11.

3.12.
3.13.
3.14.
3.15.
3.16.
3.17.
3.18.
3.19.
3.20.
3.21.
3.22.
3.23.
3.24.
3.25.
3.26.
3.27.

Tên hình
Mơ Client - Server
Mơ MVC
Luồng xử lý của mơ MVC
Xác thực bằng khóa
Authorization và Authentication
Ngơn ngữ lập trình PHP
Hệ quản trị cơ sở dữ liệu MySQL
Công cụ Xampp
Phần mềm Visual Studio Code
Logo của Bootstrap
Sơ đồ usecase tổng quát
Sơ đồ tuần tự đăng nhập

Sơ đồ tuần tự thêm tài khoản mới
Sơ đồ tuần tự chỉnh sửa tài khoản
Sơ đồ tuần tự xóa tài khoản
Sơ đồ tuần tự thêm sinh viên mới
Sơ đồ tuần tự chỉnh sửa sinh viên
Sơ đồ tuần tự xóa sinh viên
Sơ đồ tuần tự thêm hộ chiếu mới
Sơ đồ tuần tự chỉnh sửa hộ chiếu
Sơ đồ tuần tự xóa hộ chiếu
Sơ đồ tuần tự mở đợt cập nhật hộ chiếu
Sơ đồ tuần tự thêm visa mới
Sơ đồ tuần tự chỉnh sửa visa
Sơ đồ tuần tự xóa visa
Sơ đồ tuần tự mở đợt cập nhật visa
Sơ đồ tuần tự thêm thông báo mới
Sơ đồ tuần tự chỉnh sửa thông báo
Sơ đồ tuần tự xóa thơng báo
Sơ đồ tuần tự xem thơng tin tài khoản
Sơ đồ tuần tự xem thông tin hộ chiếu
Sơ đồ tuần tự xem thông tin visa
Sơ đồ tuần tự xem thông tin hộ chiếu
Sơ đồ lớp
Lược đồ cơ sở dữ liệu
Giao diện trang chủ
Giao diện trang chủ trên điện thoại
iv

Trang
4
5

7
8
9
10
11
11
12
13
28
29
30
30
31
32
32
33
34
34
35
36
36
37
38
38
39
40
40
41
41
42

42
43
45
47
47


3.28.
3.29.
3.30.
3.31.
3.32.
3.33.
3.34.
3.35.
3.36.
3.37.
3.38.
3.39.
3.40.
3.41.
3.42.
3.43.
3.44.
3.45.
3.46.
3.47.
3.48.
3.49.
3.50.

3.51.
3.52.
3.53.
3.54.
3.55.
3.56.
3.57.
3.58.

Giao diện đăng nhập
Giao diện thông tin sinh viên
Giao diện thông tin hộ chiếu
Giao diện thông tin visa
Giao diện chỉnh sửa thông tin
Giao diện chỉnh sửa hộ chiếu
Giao diện chỉnh sửa visa
Giao diện danh sách tài khoản Admin
Giao diện thêm tài khoản Admin
Giao diện chỉnh sửa tài khoản Admin
Giao diện danh sách tài khoản Người đăng bài
Giao diện thêm tài khoản Người đăng bài
Giao diện chỉnh sửa tài khoản Người đăng bài
Giao diện danh sách tài khoản Sinh viên
Giao diện thêm tài khoản Sinh viên
Giao diện chỉnh sửa tài khoản Sinh viên
Giao diện danh sách lớp
Giao diện thêm lớp
Giao diện chỉnh sửa lớp
Giao diện danh sách mở chỉnh sửa
Giao diện thêm chỉnh sửa

Nội dung email thông báo mở cập nhật
Giao diện chỉnh sửa mở chỉnh sửa
Giao diện danh sách hộ chiếu
Giao diện chỉnh sửa hộ chiếu
Giao diện danh sách visa
Giao diện chỉnh sửa visa
Giao diện danh sách thông báo
Giao diện thêm thông báo
Email thông báo từ hệ thống
Giao diện chỉnh sửa thông báo

v

48
48
49
49
50
51
51
52
52
53
53
54
54
54
55
56
57

57
57
58
58
59
59
60
60
61
61
62
62
62
63


CHƯƠNG 1
TỔNG QUAN ĐỀ TÀI
1.1. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU
Trên thế giới hiện nay đang diễn ra một cuộc cách mạng về thông tin hết sức sôi
động. Trong xu thế phát triển của thế giới có sự đóng góp to lớn của thơng tin, khoa học
cơng nghệ. Để phát triển thì mỗi quốc gia đều cần có những nguồn lực nhất định và
thông tin ngày nay đã trở thành một trong những nguồn lực thực sự của mỗi quốc gia,
mỗi tổ chức. Vì vậy xu hướng chung của xã hội ngày nay là hướng vào một xã hội thơng
tin, trong xã hội đó những giá trị vật chất mà thông tin và tri thức đem lại chiếm một tỉ
lệ lớn trong xã hội. Thông tin là một nguồn lực quan trọng góp phần to lớn khơng chỉ
trong cơng tác quản lý, điều hành các hoạt động mà còn góp phần tạo ra các giá trị mới,
mà sự tăng trưởng của một quốc gia lại phụ thuộc rất lớn vào những giá trị mới trong
quốc gia đó. Vì vậy thông tin được coi là một trong những loại tài sản quan trọng nhất
đối với bất kỳ tổ chức nào.

Đối với Việt Nam hiện nay thì một trong những khâu yếu kém nhất đó là q trình
quản lý. Chính bởi sự quản lý cịn yếu kém mà chúng ta khơng tận dụng được các nguồn
lực gây lãng phí nguồn lực cho phát triển, đơi khi cịn có những quyết định sai lầm... Do
đó trọng tâm nghiên cứu ở đây là hệ thống thơng tin phục vụ cho q trình quản lý đặc
biệt là ra quyết định .Trong công cuộc đổi mới của đất nước hiện nay địi hỏi một trình
độ quản lý ở mức cao hơn, hoàn thiện hơn và một trong những vấn đề ảnh hưởng lớn
đến chất lượng quản lý là thông tin phục vụ cho việc ra quyết định quản lý.
Ứng dụng CNTT trong hoạt động của các cơ quan nhà nước được triển khai rộng
nhằm đổi mới quy trình nghiệp vụ, nâng cao chất lượng quản lý, điều hành, nâng cao
hiệu quả, hiệu suất công việc. Ngày nay việc quản lý các dữ liệu bằng sổ sách đã bị lỗi
thời và dần dần được thay thế bằng các cơng cụ tin học hóa giúp quản lý một cách hiệu
quả hơn. Hiện nay cũng có các cơng cụ dùng để quản lý sổ sách như là excel nhưng việc
lưu trữ này cũng gây ra những bất tiện khơng nhỏ. Do đó u cầu cần phải có một cơng
cụ có thể đáp ứng được một cơng việc thật cụ thể và tăng cường công tác nghiệp vụ cho
đơn vị.
1.2. LÝ DO CHỌN ĐỀ TÀI
Khi thấy được tầm quan trọng của hệ thống thơng tin trong q trình quản lý thơng
tin. Xem xét những vấn đề cịn tồn tại tại Phân hiệu và từ đó nhất thiết cần phải xây
dựng một hệ thống áp dụng tin học hóa nhằm khắc phục những yếu kém đó nhằm hồn
thiện dần hệ thống quản lý, nâng cao hiệu suất cũng như giảm bớt gánh nặng cho người
quản lý.
Ngày nay, cùng với sự phát triển khoa học kĩ thuật, nhu cầu ứng dụng tin học trong
công tác quản lý ngày càng gia tăng. Đối với các trường giáo dục chuyên nghiệp, việc
sử dụng các phần mềm để quản lý dữ liệu là một việc cần thiết. Số lượng lưu học sinh
ngày một tăng, do đó website quản lý visa cho lưu học sinh học tập tại trường Đại học

1


Đà Nẵng tại Kon Tum được ra đời sẽ giúp giải phóng cơng sức cho người quản lý, truy

xuất thơng tin thuận tiện, hiệu quả và chính xác.
1.3. MỤC TIÊU NGHIÊN CỨU
1.3.1. Lý thuyết
- Nắm được lý thuyết về mô hình MVC làm sao để áp dụng tốt vào việc xây dựng
web;
- Nắm được kiến thức về thiết kế UI/UX để tạo giao diện đẹp mắt và trải nghiệm
người dùng tốt.
1.3.2. Công nghệ
- Sử dụng thành thạo ngôn ngữ PHP;
- Sử dụng thành thạo công nghệ HTML, CSS, JavaScript và Bootstrap;
- Kết nối và quản trị được hệ quản trị cơ sở dữ liệu MySQL.
1.3.3. Ứng dụng
Thiết kế được một website với các chức năng hỗ trợ cho việc quản lý lưu học sinh
như:
- Quản lý thông tin sinh viên;
- Quản lý thông tin visa;
- Quản lý tin tin hộ chiếu.
1.4. PHƯƠNG PHÁP NGHIÊN CỨU
1.4.1. Khảo sát thực tế
- Tìm hiểu các hệ thống quản lý lưu học sinh tại các trường khác;
- Thu thập các website mẫu trên Internet và phân tích cách thiết kế về giao diện,
cách thiết kế cơ sở dữ liệu, cách xây dựng các chức năng
- Khảo sát nhu cầu sử dụng “Hệ thống quản lý visa lưu học sinh” tại trường Phân
hiệu. Phương thức khảo sát có thể là khảo sát qua form online hoặc khảo sát trực tiếp
qua gặp mặt, điền giấy... Sau khi hoàn thành khảo sát và xem các câu trả lời, các yêu
cầu của người sẽ được xem xét và phân tích lại, xem xét các tính năng mà người quan
tâm nhất và ít quan tâm nhất. Sau đó thêm các tính năng nhận được nhiều tính năng hơn
và loại bỏ các tính năng khơng cần thiết để xây dựng trung tâm tính năng đáp ứng tốt
nhu cầu quản lý.
1.4.2. Lý thuyết

- Nghiên cứu mơ hình MVC trong việc thiết kế website. Tìm hiểu các website có
áp dụng mơ hình MVC. Tìm các video hướng dẫn và làm theo, sau đó sẽ áp dụng vào
xây dựng website;
- Tìm hiểu UI/UX (User Interface và User Experience). Thực hành thiết kế giao
diện theo lý thuyết UI/UX. Tìm hiểu làm sao để chọn màu sắc, typography, cách sắp
xếp layout phù hợp với một website bán sản phẩm điện tử;

2


1.4.3. Công nghệ
- Nghiên cứu, đọc tài liệu và các video hướng dẫn cách viết website bằng ngơn
ngữ lập trình PHP. Sau đó thực hành viết code;
- Tìm kiếm và học các khóa học dạy HTML, CSS, JavaScript và Bootstrap;
- Nghiên cứu sử dụng MySQL trong việc thiết kế cơ sở dữ liệu.
1.4.4. phạm vi nghiên cứu
- Về nội dung nghiên cứu: Đề tài nghiên cứu thiết kế một trang web phục vụ cho
công tác quản lý lưu học sinh tại trường Đại học Đà Nẵng tại Kon Tum.
- Về không gian: Đề tài nghiên cứu giới hạn trong trường đại học đại học Đà Nẵng
phân hiệu tại Kon Tum.

3


CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1. GIẢI PHÁP THIẾT KẾ
2.1.1. Mô hình Client - Server
a. Giới thiệu mơ hình Client - Server


Hình 2.1: Mơ hình Client - Server
Client server là mơ hình mạng máy tính bao gồm 2 thành phần chính là máy khách
(client) và máy chủ (server). Trong mơ hình này, server là nơi lưu trữ tài nguyên, cài đặt
các chương trình dịch vụ và thực hiện các yêu cầu của client. Client đóng vai trị gửi u
cầu đến server. Client gồm máy tính và thiết bị điện tử nói chung [1].
Mơ hình Client server cho phép mạng tập trung các ứng dụng và chức năng tại một
hoặc nhiều máu dịch vụ file chuyên dụng. Các máy này trở thành trung tâm của hệ thống.
Hệ điều hành của Client server cho phép người dùng chia sẻ đồng thời cùng một tài
ngun, khơng quan trọng vị trí địa lý.
Mơ hình web client-server là một mơ hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mơ hình của mọi trang web hiện có. Một mơ hình ngược lại là
mơ hình master-slaver, trong đó máy chủ (đóng vai trị ơng chủ) sẽ gửi dữ liệu đến máy
con (đóng vai trị nơ lệ) bất kể máy con có cần hay khơng.
Mơ hình client/server như sau: Client/Server là mơ hình tổng qt nhất, trên thực
tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh
hơn. Khi nhận được 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận
được cho server khác ví dụ như database server vì bản thân nó khơng thể xử lý u cầu
này được. Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp.

4


b. Nguyên lý hoạt động của Client – Server
Toàn bộ quá trình giao tiếp giữa server và client phải dựa trên các giao thức chuẩn.
TCP/IP, SAN (IBM), ISDN, OSI, X.25, LAN-to-LAN Netbios là những giao thức chuẩn
được sử dụng phổ biến hiện nay.
Client server là giải pháp phần mềm hiệu quả, giúp khắc phục tình trạng quá tải
của hệ thống mạng. Bên cạnh đó, mơ hình này cịn vượt qua sự khác biệt trong cấu trúc
vật lý và hệ điều hành của các hệ thống máy tính. Mơ hình Client server gồm có 2 phần
là client & server.

- Client: Client hay chính là máy khách, máy trạm – là nơi gửi yêu cầu đến server.
Nó tổ chức giao tiếp với người dùng, server và mơi trường bên ngồi tại trạm làm việc.
Client tiếp nhận yêu cầu của người dùng sau đó thành lập các query string để gửi cho
server. Khi nhận được kết quả từ server, client sẽ tổ chức và trình diễn những kết quả
đó.
- Server: Server xử lý yêu cầu gửi đến từ client. Sau khi xử lý xong, server sẽ gửi
trả lại kết quả, client có thể tiếp tục xử lý các kết quả này để phục vụ người dùng. Server
giao tiếp với mơi trường bên ngồi và client tại server, tiếp nhận yêu cầu dưới dạng
query string (xâu ký tự). Khi phân tích xong các xâu ký tự, server sẽ xử lý dữ liệu và gửi
kết quả về cho client.
2.1.2. Mơ hình MVC trong việc xây dựng website
a. Giới thiệu mơ hình MVC
Mơ hình MVC là một mơ hình lập trình web được sử dụng rộng rãi hiện nay, được
viết tắt bởi ba từ Model – View – Controller, tương ứng với ba bộ phận tạo nên cấu trúc
của ứng dụng này. Mỗi thành phần kiến trúc được xây dựng để xử lý khía cạnh phát
triển cụ thể của một ứng dụng [2].

Hình 2.2: Mơ hình MVC
5


b. Các thành phần cấu tạo trong mơ hình MVC
- View: View là một phần của ứng dụng chịu trách nhiệm cho việc trình bày dữ
liệu. Thành phần này được tạo bởi dữ liệu thu thập từ dữ liệu mô hình, và giúp người
dùng có cái nhìn trực quan về trang web, cũng như ứng dụng.
View cũng đại diện cho dữ liệu từ các cuộc trò chuyện, sơ đồ và bảng. Ví dụ: bất
kỳ View nào cũng sẽ bao gồm tất cả các thành phần giao diện người dùng như một nút
bấm, khung nhập, menu, hình ảnh...
- Model: Phần Model của kiến trúc MVC là thành phần chính đảm nhiệm chức
năng lưu trữ dữ liệu và các bộ phận logic liên quan của toàn bộ ứng dụng. Model chịu

trách nhiệm cho các thao tác dữ liệu giữa Controller hoặc bất kỳ logic nghiệp vụ liên
quan nào khác như: cho phép xem, truy xuất dữ liệu... Ví dụ, Controller sẽ lấy thông tin
khách hàng từ cơ sở dữ liệu. Model sẽ thực hiện các thao tác dữ liệu và gửi lại cơ sở dữ
liệu hoặc sử dụng nó cho View.
- Controller: Đây là phần xử lý tương tác người dùng của ứng dụng. Controller xử
lý dữ liệu đầu vào từ bàn phím và chuột của người dùng sau đó thơng báo tới View và
Model. Sau đó liền gửi các lệnh tới Model để thay đổi trạng thái của Model (Ví dụ: lưu
một tài liệu cụ thể). Controller cũng gửi các lệnh tương tự tới View để thực hiện các
thay đổi về giao diện.
c. Luồng xử lý trong mơ hình MVC
MVC đại diện cho kiến trúc mà các nhà phát triển ứng dụng áp dụng vào dự án,
chúng ta xem xét cách luồng dữ liệu ứng dụng hoạt động như thế nào nhé.
Có rất nhiều kịch bản cho luồng xử lý MVC trên ứng dụng web. Dưới đây là luồng
xử lý căn bản và phổ biến nhất.
- Bước 1: Client gửi yêu cầu đến server thông qua Controller, Controller sẽ tiếp
nhận yêu cầu.
- Bước 2: Controller sẽ xử lý dữ liệu đầu vào, và quyết đinh luồng đi tiếp theo của
yêu cầu. Trả về kết quả hay tương tác với database để lấy dữ liệu. Nếu cần tương tác với
Model để lấy dữ liệu, Controller sẽ gọi tới Model để lấy dữ liệu đầu ra. Nếu không,
Controller sẽ trả về kết quả theo mũi tên số (8).
- Bước 3: Model tương tác với Database để truy xuất dữ liệu phù hợp với yêu cầu.
- Bước 4: Database trả về cho Model dữ liệu theo yêu cầu của Model.
- Bước 5: Model trả về dữ liệu cho Controller xử lý.
- Bước 6: Controller sẽ gọi đến View phù hợp với yêu cầu và kèm theo dữ liệu cho
View. View chịu trách nhiệm hiển thị dữ liệu phù hợp với yêu cầu.
- Bước 7: Sau khi xử lý hiển thị dữ liệu, View trả về cho Controller kết quả
(HTML, XML hoặc JSON…).
- Bước 8: Sau khi hoàn tất, Controller sẽ trả về kết quả cho Client.

6



Hình 2.3: Luồng xử lý của mơ hình MVC
2.1.3. Authentication
a. Khái niệm Authentication
Authentication (tạm dịch: xác thực) là quá trình kiểm tra danh tính một tài khoản
đang vào hệ thống hiện tại thông qua một hệ thống xác thực. Đây là bước ban đầu của
mọi hệ thống có yếu tố người dùng [3].
Hiểu đơn giản, quá trình Authentication là đi tìm câu trả lời cho câu hỏi “Bạn là
ai?”
b. Lý do cần dùng Authentication
Nếu khơng có bước xác thực này, hệ thống sẽ không biết được người đang truy
cập vào hệ thống là ai để có các phản hồi phù hợp.
Q trình này rất thơng dụng trong hầu hết các CMS liên quan đến quản lý, tương
tác người dùng thông qua form đăng ký (login form) và nó được xác thực dựa trên tên
người dùng và mật khẩu (password-based authentication).
c. Những nhân tố xác thực
Bước xác thực này rất quen thuộc và thơng dụng, thường biểu hiện ở hình thức
đơn giản nhất chính là form đăng nhập vào hệ thống.
- Mật khẩu (Password & Pin): Mật khẩu là một trong những phương pháp đơn giản
và dễ triển khai nhất.
Khi người dùng truy cập, mỗi hệ thống sẽ lưu lại mật khẩu ở dạng đã được mã hóa
một chiều (md5, sha1, tự chế…). Tính năng này sẽ đảm bảo mật khẩu có bị hack cũng
khơng thể khơi phục thành chuỗi gốc.
Phương pháp này cịn có nhiều biến thể như thiết kế dạng Swipe Pattern PIN (trong
các điện thoại android) hoặc mật khẩu dùng một lần (dùng cho các chức năng quan
trọng).
- Khóa (Public-key cryptography): Phương pháp này dựa trên thuật tốn mã hóa
khóa cơng cộng (public key) và khóa cá nhân (private key).
7



Để đăng nhập vào hệ thống, bạn chỉ cần có khóa cá nhân (private key) trên máy và
đăng nhập vào hệ thống (nếu đã khai báo với khóa cơng cộng của bạn) mà khơng cần
phải nhớ thơng tin gì về đăng nhập như phương pháp mật khẩu.
Các hệ thống quản trị server thường áp dụng cách này.

Hình 2.4: Xác thực bằng khóa
- Sinh học (Biometrics): Dùng như dấu vân tay, trịng mắt hoặc khn mặt là
phương pháp dựa trên các yếu tố đặc trưng của con người để xác thực.
Ưu điểm của phương pháp này là “ID” và “mật khẩu” luôn đi cùng nhau nên bạn
không cần lo lắng bị quên hay lạc mất. Mỗi khi cần đăng nhập vào hệ thống, bạn đều
chủ động sử dụng dễ dàng mà khơng gặp bất cứ khó khăn gì.
Dù có nhiều phương pháp để xác thực một tài khoản, tuy nhiên cũng không tránh
khỏi rủi ro khi triển khai như mất mật khẩu, mất khóa cá nhân, bị đánh cắp vân tay…
Áp dụng trên website, phương thức mật khẩu có vẻ là dễ triển khai và có nhiều lợi
thế hơn vì thường thao tác trên màn hình và độ chính xác cao.
Chúng ta có thể cải tiến hệ thống bảo mật hơn như theo dõi thói quen đăng nhập,
địa điểm, IP, trình duyệt, mật khẩu một lần…
8


2.1.4. Authorization
Authorization là quá trình để xác định xem người dùng được xác thực có quyền
truy cập vào các tài ngun cụ thể hay khơng. Nó xác minh quyền của bạn để cấp cho
bạn quyền truy cập vào các tài nguyên như thông tin, cơ sở dữ liệu, file, v.v.
Authorization thường được đưa ra sau khi xác thực xác nhận các đặc quyền của bạn để
thực hiện. Nói một cách đơn giản hơn, nó giống như cho phép ai đó chính thức làm điều
gì đó hoặc bất cứ điều gì [4].


Hình 2.5: Authorization và Authentication
Authorization xảy ra sau khi hệ thống của bạn được authentication (xác thực) thành
công, cuối cùng cho phép bạn toàn quyền truy cập các tài nguyên như thông tin, file, cơ
sở dữ liệu, quỹ, địa điểm, hầu hết mọi thứ. Nói một cách đơn giản, authorization xác
định khả năng của bạn để truy cập hệ thống và ở mức độ nào. Khi danh tính của bạn
được hệ thống xác minh sau khi xác thực thành công, bạn sẽ được phép truy cập tài
nguyên của hệ thống.
Ví dụ, quy trình xác minh và xác nhận ID nhân viên và mật khẩu trong một tổ chức
được gọi là authentication, nhưng xác định nhân viên nào có quyền truy cập vào tầng
nào được gọi là authorization. Hãy nói với bạn rằng bạn đang đi du lịch và bạn sẽ lên
một chuyến bay. Khi bạn xuất trình vé và một số giấy tờ tùy thân trước khi nhận phòng,
bạn sẽ nhận được thẻ lên máy bay xác nhận rằng cơ quan sân bay đã xác thực danh tính
của bạn. Nhưng đó khơng phải là nó. Một tiếp viên hàng khơng phải ủy quyền cho bạn
lên chuyến bay mà bạn được cho là đang bay, cho phép bạn truy cập vào bên trong máy
bay và các tài nguyên của nó.
Truy cập vào một hệ thống được bảo vệ bởi cả authentication và authorization.
Mọi nỗ lực truy cập hệ thống có thể được xác thực bằng cách nhập thông tin xác thực,
nhưng chỉ có thể được chấp nhận sau khi ủy quyền thành công. Nếu nỗ lực được xác
thực nhưng không được phép, hệ thống sẽ từ chối quyền truy cập vào hệ thống.

9


2.2. CƠNG CỤ SỬ DỤNG
2.2.1. Các cơng cụ và cơng nghệ được sử dụng
- PHP: Ngơn ngữ lập trình phía máy chủ;
- MySQL: Lưu trữ cơ sở dữ liệu;
- Xampp: Host PHP server và MySQL server;
- Visual Studio Code: Viết code cho website;
- Google Chrome: Hiển thị website và kiểm lỗi;

- HTML, CSS, JS: Công nghệ thiết kế giao diện website;
- Bootstrap: Hỗ trợ thiết kế giao diện website;
- NicEdit: Soạn thảo văn bản trên website;
- Gmail: Gửi email.
2.2.2. Giới thiệu một số cơng nghệ
a. Ngơn ngữ lập trình PHP
PHP là dạng viết tắt của thuật ngữ Personal Home Page. Đây là một chuỗi ngôn
ngữ kịch bản hoặc một dạng mã lệnh. Trong đó, ngơn ngữ PHP chủ yếu được phát triển
dành cho các ứng dụng nằm trên máy chủ. Khi các lập trình viên PHP viết chương trình,
các chuỗi lệnh sẽ được chạy ở trên server nhằm sinh ra mã HTML. Nhờ đó, những ứng
dụng trên các website có thể chạy một cách dễ dàng [5].
Ngôn ngữ PHP thông thường phù hợp với việc lập trình web vì nó có thể dễ dàng
kết nối với các website có sử dụng HTML để chạy trên những trình duyệt web. Chính
vì vậy, ngơn ngữ lập trình này ln được coi là khá dễ học. Và PHP cũng trở thành ngôn
ngữ web dev phổ biến nhất mà các lập trình viên sẽ cần phải học khi mới bắt đầu vào
nghề.

Hình 2.6: Ngơn ngữ lập trình PHP

10


b. Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS)
hoạt động theo mơ hình client-server. Với RDBMS là viết tắt của Relational Database
Management System. MySQL được tích hợp apache, PHP. MySQL quản lý dữ liệu
thông qua các cơ sở dữ liệu. Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ
liệu. MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngơn ngữ SQL
[6].


Hình 2.7: Hệ quản trị cơ sở dữ liệu MySQL
c. Cơng cụ Xampp

Hình 2.8: Công cụ Xampp
Ý nghĩa chữ viết tắt XAMPP là gì? XAMPP hoạt động dựa trên sự tích hợp của 5
phần mềm chính là Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) và Perl
(P), nên tên gọi XAMPP cũng là viết tắt từ chữ cái đầu của 5 phần mềm này [7]:
- Chữ X đầu tiên là viết tắt của hệ điều hành mà nó hoạt động với: Linux, Windows
và Mac OS X.
- Apache: Web Server mã nguồn mở Apache là máy chủ được sử dụng rộng rãi
nhất trên toàn thế giới để phân phối nội dung Web. Ứng dụng được cung cấp dưới dạng
phần mềm miễn phí bởi Apache Software Foundation.
- MySQL / MariaDB: Trong MySQL, XAMPP chứa một trong những hệ quản trị
cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới. Kết hợp với Web Server Apache và
ngơn ngữ lập trình PHP, MySQL cung cấp khả năng lưu trữ dữ liệu cho các dịch vụ
Web. Các phiên bản XAMPP hiện tại đã thay thế MySQL bằng MariaDB (một nhánh
của dự án MySQL do cộng đồng phát triển, được thực hiện bởi các nhà phát triển ban
đầu).
11


- PHP: Ngơn ngữ lập trình phía máy chủ PHP cho phép người dùng tạo các trang
Web hoặc ứng dụng động. PHP có thể được cài đặt trên tất cả các nền tảng và hỗ trợ
một số hệ thống cơ sở dữ liệu đa dạng.
- Perl: ngôn ngữ kịch bản Perl được sử dụng trong quản trị hệ thống, phát triển
Web và lập trình mạng. Giống như PHP, Perl cũng cho phép người dùng lập trình các
ứng dụng Web động.
d. 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.
Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax highlighting,
tự hồ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.

Hình 2.9: Phần mềm Visual Studio Code
- Một số tính năng của Visual Studio Code
 Hỗ trợ nhiều ngơn ngữ lập trình: Visual Studio Code hỗ trợ nhiều ngơn ngữ
lập trình như C/C++, C#, F#, Visual Basic, HTML, CSS, JavaScript, … Vì vậy, nó dễ
dàng phát hiện và đưa ra thơng báo nếu chương chương trình có lỗi.
 Hỗ trợ đa nền tảng: Các trình viết code thông thường chỉ được sử dụng hoặc
cho Windows hoặc Linux hoặc Mac Systems. Nhưng Visual Studio Code có thể hoạt
động tốt trên cả ba nền tảng trên.
 Cung cấp kho tiện ích mở rộng: Trong trường hợp lập trình viên muốn sử
dụng một ngơn ngữ lập trình khơng nằm trong số các ngơn ngữ Visual Studio hỗ trợ, họ
có thể tải xuống tiện ích mở rộng. Điều này vẫn sẽ khơng làm giảm hiệu năng của phần
mềm, bởi vì phần mở rộng này hoạt động như một chương trình độc lập.

12


 Kho lưu trữ an toàn: Đi kèm với sự phát triển của lập trình là nhu cầu về lưu
trữ an tồn. Với Visual Studio Code, người dùng có thể hồn tồn n tâm vì nó dễ dàng
kết nối với Git hoặc bất kỳ kho lưu trữ hiện có nào.
 Hỗ trợ web: Visual Studio Code hỗ trợ nhiều ứng dụng web. Ngồi ra, nó
cũng có một trình soạn thảo và thiết kế website.
 Lưu trữ dữ liệu dạng phân cấp: Phần lớn tệp lưu trữ đoạn mã đều được đặt
trong các thư mục tương tự nhau. Ngoài ra, Visual Studio Code còn cung cấp các thư
mục cho một số tệp đặc biệt quan trọng.

 Hỗ trợ viết Code: Một số đoạn code có thể thay đổi chút ít để thuận tiện cho
người dùng. Visual Studio Code sẽ đề xuất cho lập trình viên các tùy chọn thay thế nếu
có.
 Intellisense: Hầu hết các trình viết mã đều có tính năng nhắc mã Intellisense,
nhưng ít chương trình nào chun nghiệp bằng Visual Studio Code. Nó có thể phát hiện
nếu bất kỳ đoạn mã nào khơng đầy đủ. Thậm chí, khi lập trình viên qn khơng khai
báo biến, Intellisense sẽ tự động giúp họ bổ sung các cú pháp còn thiếu.
 Hỗ trợ Git: Visual Studio Code hỗ trợ kéo hoặc sao chép mã trực tiếp từ
GitHub. Mã này sau đó có thể được thay đổi và lưu lại trên phần mềm.
e. Bootstrap
Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ
dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết bị
cầm tay như mobile, ipad, tablet... [8].
Bootstrap bao gồm những cái cơ bản có sẵn như: typography, forms, buttons,
tables, navigation, modals, image carousels và nhiều thứ khác. Trong bootstrap có thêm
nhiều Component, Javascript hỗ trợ cho việc thiết kế reponsive của bạn dễ dàng, thuận
tiện và nhanh chóng hơn.

Hình 2.10: Logo của Bootstrap

13


CHƯƠNG 3
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1. ĐẶC TẢ YÊU CẦU
3.1.1. Yêu cầu chức năng
Bảng 3.1: Yêu cầu chức năng
Tác
Chức năng Chức năng con

Ghi chú
nhân
Đăng nhập
Xem danh sách tài
khoản
Quản lý tài
Thêm tài khoản
khoản
Chỉnh sửa tài khoản
Xóa tài khoản
Xem danh sách tài
khoản
Quản lý
Thêm tài khoản
sinh viên
Chỉnh sửa tài khoản
Xóa tài khoản
Xem danh sách hộ chiếu
Thêm hộ chiếu
Chỉnh sửa hộ chiếu
Quản lý hộ Xóa hộ chiếu
chiếu
Admin sẽ mở cập nhật hộ chiếu
Admin
Mở cập nhật hộ chiếu
trong một khoảng thời gian. Trong
cho sinh viên
thời gian này, sinh viên có thể
chỉnh sửa lại hộ chiếu
Xem danh sách visa

Thêm visa
Chỉnh sửa visa
Quản lý
Xóa visa
visa
Admin sẽ mở cập nhật visa trong
Mở cập nhật visa cho
một khoảng thời gian. Trong thời
sinh viên
gian này, sinh viên có thể chỉnh
sửa lại visa
Xem danh sách thông
báo
Quản lý
Thêm thông báo
thông báo
Chỉnh sửa thơng báo
Xóa thơng báo
14


Gửi thông báo qua email
Đăng nhập
Xem thông
báo
Quản lý tài
khoản
Lưu
học
sinh


Quản lý hộ
chiếu

Xem thông tin
Sửa thông tin
Xem thông tin hộ chiếu
Cập nhật thông tin hộ
chiếu

Khi Admin mở đợt cập nhật
thông tin hộ chiếu thì sinh viên
được phép chỉnh sửa thơng tin

Xem thơng tin visa
Quản lý
visa

Người
đăng
bài

Quản lý
thông báo

Cập nhật thông tin visa

Khi Admin mở đợt cập nhật
thơng tin visa thì sinh viên được
phép chỉnh sửa thông tin


Xem danh sách thông
báo
Thêm thông báo
Chỉnh sửa thơng báo
Xóa thơng báo
Gửi thơng báo qua email

Đăng nhập
Khách Xem thông
báo
3.1.2. Yêu cầu phi chức năng
Bảng 3.2: Yêu cầu phi chức năng
STT
Yêu cầu
Chi tiết
- Bảo mật mật khẩu;
1
Bảo mật
- Bảo mật thông tin visa;
- Bảo mật thông tin hộ chiếu.
- Tải trang web từ máy chủ nhanh, mất tối đa 5 giây để
2
Tốc độ xử lý
phản hồi;
- Tối ưu câu truy vẫn dữ liệu;
Khi có nhiều người dùng truy cập thì website phải
3
Chịu tải tốt
hoạt động tốt và khơng bị sập máy chủ.


15


3.2. PHÂN TÍCH YÊU CẦU
3.2.1. Các tác nhân sử dụng
- Admin: Người quản trị website;
- Sinh viên: Sinh viên đăng nhập sử dụng hệ thống;
- Người đăng bài: Đăng bài thông báo;
- Khách: Sử dụng trang website khi không đăng nhập.
3.2.2. Phân tích chức năng admin
a. Đăng nhập
- Đầu vào: Tên tài khoản và mật khẩu
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Hệ thống chuyển công việc cho Controller đăng nhập xử lý;
 Controller đăng nhập kiểm tra đăng nhập.
- Đầu ra:
 Đăng nhập thành công: Thông báo đăng nhập thành công và chuyển trang;
 Đăng nhập không thành công: Thông báo đăng nhập không thành công.
b. Quản lý tài khoản
Xem danh sách tài khoản:
- Đầu vào: Không.
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Bộ xác thực kiểm tra quyền truy cập của tài khoản;
 Hệ thống chuyển công việc cho Controller quản lý tài khoản xử lý;
 Truy xuất danh sách tài khoản trong CSDL.
- Đầu ra:
 Truy xuất thành công: Trả về danh sách tài khoản;

 Truy xuất không thành công: Thông báo quyền truy cập bị hạn chế.
Thêm tài khoản mới:
- Đầu vào: Tên tài khoản, mật khẩu và nhập lại mật khẩu.
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Bộ xác thực kiểm tra quyền truy cập của tài khoản;
 Hệ thống chuyển công việc cho Controller quản lý tài khoản xử lý;
 Controller quản lý tài khoản xác nhận form nhập và kiểm tra lỗi form;
 Controller quản lý tài khoản thêm tài khoản mới vào CSDL.
- Đầu ra:
 Thêm tài khoản thành công: Thông báo thêm tài khoản thành công;
 Thêm tài khoản không thành công: Thông báo thêm tài khoản không thành
công.
16


Chỉnh sửa tài khoản:
- Đầu vào: Tên tài khoản, mật khẩu, nhập lại mật khẩu và id tài khoản.
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Bộ xác thực kiểm tra quyền truy cập của tài khoản;
 Hệ thống chuyển công việc cho Controller quản lý tài khoản xử lý;
 Controller quản lý tài khoản xác nhận form nhập và kiểm tra lỗi form;
 Controller quản lý tài khoản chỉnh sửa tài khoản trong CSDL.
- Đầu ra:
 Chỉnh sửa tài khoản thành công: Thông báo chỉnh sửa tài khoản thành công;
 Chỉnh sửa tài khoản không thành công: Thơng báo chỉnh sửa tài khoản khơng
thành cơng.
Xóa tài khoản:
- Đầu vào: Id tài khoản.

- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Bộ xác thực kiểm tra quyền truy cập của tài khoản;
 Hệ thống chuyển công việc cho Controller quản lý tài khoản xử lý;
 Controller quản lý tài khoản kiểm tra id tài khoản;
 Controller quản lý tài khoản xóa tài khoản trong CSDL.
- Đầu ra:
 Xóa tài khoản thành cơng: Thơng báo xóa tài khoản thành cơng;
 Xóa tài khoản khơng thành cơng: Thơng báo xóa tài khoản khơng thành cơng.
c. Quản lý sinh viên
Xem danh sách sinh viên:
- Đầu vào: Không.
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
 Bộ xác thực kiểm tra quyền truy cập của sinh viên;
 Hệ thống chuyển công việc cho Controller quản lý sinh viên xử lý;
 Truy xuất danh sách sinh viên trong CSDL.
- Đầu ra:
 Truy xuất thành công: Trả về danh sách sinh viên;
 Truy xuất không thành công: Thông báo quyền truy cập bị hạn chế.
Thêm sinh viên mới:
- Đầu vào: Mã sinh viên, họ tên, cmnd, giới tính, ngày sinh, dân tộc, quốc tịch, lớp,
địa chỉ, số điện thoại và email.
- Xử lý:
 Hệ thống nhận yêu cầu xử lý;
17


×