Dé áp dụng những tiến bộ trong công việc hàng ngày em đã chon đề tài phát triển một website quản lý đồ án tốt nghiệp của sinh viên trường Học viện Công nghệ Bưu chính viễn thông.. Chính
Trang 1Dé tai: TIM HIEU LARAVEL VA AP DUNG DE PHAT
TRIEN UNG DUNG QUAN LY ĐỎ AN SINH VIÊN
HỌC VIEN CONG NGHỆ BUU CHÍNH VIÊN THONG
Người hướng dan: ThS.Vũ Thị Tú Anh
Sinh viên thực hiện: An Nguyễn Nam Sơn
Lớp: DI9PTDPT Hệ: Đại học chính quy
HÀ NỘI - 2023
Trang 2BO THONG TIN VÀ TRUYEN THONG
HQC VIEN CONG NGHE BUU CHINH VIEN THONG
DO AN TOT NGHIEP DAI HOC
Dé tai: TIM HIEU LARAVEL VA AP DUNG DE PHAT TRIEN
UNG DUNG QUAN LY ĐỎ ÁN SINH VIÊN HỌC VIEN
CONG NGHE BUU CHINH VIEN THONG
Người hướng dẫn: ThS.Vũ Thị Tú Anh
Sinh viên thực hiện: An Nguyễn Nam Sơn
Lớp: DI9PTDPT
Hệ: Đại học chính quy
Trang 4Đồ án tốt nghiệp Đại học
DE CƯƠNG DE TÀI
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIÊN CONG HOA XÃ HỘI CHỦ NGHĨA VIỆT
THÔNG KHOA ĐA PHƯƠNG TIỆN NAM Độc lập - Tự do - Hạnh phúc
DE TAI DO AN TOT NGHIỆP ĐẠI HỌC
Ho và tên sinh viên: AN NGUYEN NAM SON
Lớp: DI9PTDPT Khoá: 2019-2023 Ngành dao tạo: Công Nghệ Da Phương Tiện Hệ đảo tạo: Đại học chính quy
1 Tên đồ án/khoá luận tốt nghiệp: Tìm hiểu Laravel và áp dụng dé phát triển ứng
dụng quản lý đồ án sinh viên Học viện Công nghệ Bưu chính Viễn thông
2 Lý do chọn đề tài:
Hiện nay công nghệ thông tin có vai trò quan trọng, trở nên phô biến và có ảnh
hưởng tới các hoạt động quản lý và tác nghiệp từ cơ quan nhà nước, trường học, các
doanh nghiệp Cùng với sự phát triển của Internet thì các hệ thống thông tin, phần
mềm quan lý cũng trở nên đa dạng hơn Việc chuyên đổi các hệ thống cũ dựa trên
tương tác trực tiếp giữa hệ thống sang tương tác giữa con người và hệ thống sẽ giúpviệc xử lý, thực hiện các tác vụ một cách tự động hoá dễ dàng và rút ngắn thời gian,
nâng cao hiệu suất công việc Con người có thê ngồi ở nhà hay bất kỳ đâu mà vẫn có
thé quản lý hệ thống va thu thập đữ liệu
Sinh viên năm cuối học bậc đại học hoặc cao dang cuối khoá sẽ phải làm dé tài
tốt nghiệp dé nộp cho nhà trường Việc quản ly đồ án tốt nghiệp sinh viên là một yêucầu thiết yếu của mỗi trường đại học Để quản lý đồ án và lưu trữ có hiệu quả thì
không đơn giản bởi đòi hỏi kỹ năng của người quan lý Lam sao dé vừa có thé kiểm
soát được số lượng dé tai của các khóa, các hệ đào tạo khác nhau vừa có thể lưu trữ nó
làm tài liệu cho các bạn sinh viên khóa sau đồng thời phân công giảng viên hướng dẫn
đồ án một cách hợp lý Do đó việc đòi hỏi có một ứng dụng trợ giúp cho công việc
quản lý và lưu trữ đồ án tốt nghiệp sinh viên là một nhu cau tất yếu dé đảm bảo hiệu
quả và tiết kiệm thời gian trong công việc Chính vì vậy, em đã chọn đề tài Xây dựngmột website quản lý đồ án tốt nghiệp của sinh viên trường Học viện Công nghệ Bưu
chính Viễn thông Đây là quá trình em áp dụng những kiến thức đã học vào thực tiễn
Đề tài của em lấy bối cảnh trường em đang theo học nên có thể tìm hiểu thêm thông
tin và các nghiệp vụ chức năng cần có dé xây dựng nên một website tiện dụng, dễ triển
khai và mang lại tính hiệu quả cao.
3 Nội dung chính của đồ án:
An Nguyễn Nam Sơn — DI9PTDPT
Trang 5Đồ án tốt nghiệp Đại học
Đô án được chia làm các chương như sau:
Chương 1: Tổng quan về đề tài Chương này miêu tả bài toán và các chức năng
của hệ thông.
Chương 2: Giải pháp xây dựng hệ thống Chương này sẽ trình bày phương
pháp xây dựng hệ thông băng việc ứng dụng các công nghệ
Chương 3: Xây dựng hệ thống Chương này sẽ đưa ra phương pháp xây dựng
hệ thông, phân tích và thiệt kê hệ thông, biêu đồ use case, biêu đô lớp và biêu đô tuân
tự cho từng chức năng của hệ thông, xây dựng cơ sở dữ liệu cho hệ thông.
Kết luận: Dua ra kết quả, hướng phát triển tiếp theo và kết luận của việc xây
dựng hệ thông.
4 Ngày giao đề tài: 02/10/2023
5 Ngày nộp quyén: 17/12/2023
GIẢNG VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN
(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)
An Nguyễn Nam Sơn
TRUONG KHOA
(Ky, ghi rõ họ tên)
An Nguyễn Nam Sơn — DI9PTDPT
Trang 6Đồ án tốt nghiệp Đại học
LOI CAM ON
Em xin gửi lời cảm ơn chân thành nhất đến thay cô trường Hoc viện Công nghệBưu chính Viễn thông, cũng như thầy cô khoa Đa phương tiện đã đồng hành, giúp đỡ
em trong học tập từ năm nhất đến nay Nhờ sự hướng dẫn tận tình của thầy cô, em đã
học tập được những kiến thức chuyên ngành cũng như những kỹ năng cần thiết để
hoàn thành tốt đề tài đồ án tốt nghiệp này
Đặc biệt em xin bày tỏ lòng biết ơn chân thành, sâu sắc đến giảng viên hướngdẫn ThS Vũ Thị Tú Anh đã trực tiếp giúp đỡ, hướng dẫn, chia sẻ cho em những kiếnthức chuyên môn, cách thức làm việc và cả kinh nghiệm thực tế trong suốt quá trình
em thực hiện đồ án tốt nghiệp Em xin gửi lời cảm ơn sâu sắc nhất tới cô
Tuy nhiên, vì thời gian có hạn, trình độ hiểu biết của bản thân còn hạn chế, kiến
thức chuyên môn còn nhiều thiếu sót khi tìm hiểu và trình bày đồ án Em rất mong
nhận được sự góp ý và quan tâm từ thầy cô cũng như bạn bè để em hoàn thiện đồ án
hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, tháng 12 năm 2023
Sinh viên
An Nguyễn Nam Sơn
An Nguyễn Nam Sơn — DI9PTDPT
Trang 7DANH MỤC CÁC KY HIỆU VÀ CHU VIET TAT.u cccessessessessssesssssssescsesecseeees iv
DANH MỤC CAC BANG ecsssssssssssssssssssssssssssscsscsscsocsecsacsscsacsucsucsucscsecaneaeacsseaeseeaes v
06710055 1
CHƯƠNG 1: TONG QUAN VE DE TTÀII 2-° 5-5 5< 5 se se seesesssezecsee 2
1.1 Giới thiệu đề tài ¿- +: 5c 22221 S2E 2112112212211211211211211111112111111211 1112 re 2
1.2 Lý do chọn dé tài - ¿s1 9E EE12E1211211211211217111111111111111 211111 2
1.3 Mô tả bài toán - 5-5-2 c2212E122121127127112112112112112112111121121121212 111kg 2
1.4 Tính cấp thiết của đồ án - 2-5 s22 12121 181121271211111121 111111111111 te 3
1.5 Quy trình phát triỀn ¿52 SE ES2E9EE2EEEE2E21511212121111112111 1111111111111 re 4
CHUONG 2: GIẢI PHÁP XÂY DỰNG HỆ THÓNG -.- 5° 5525 <se52 6
2.1 6o ái 2i: 71 6
2.1.1 Ngôn ngữ HTML và CSS - 2 22E+2E2EEEEE22E22E12712711211211 2121 xe 6 2.1.2 Ngôn ngữ JaVaSCTIDI - - - c 1 213 111 1111911111 11H TH nry 8 2.1.3 Ngôn ngữ PHP - - - G1 1111 1 1S 1T 1H HH nen 9
2.1.4 Laravel Frame€WOFK - + + + 2111112223111 12531111 S292 11v nen ng xxx 12 2.1.5 Hệ quản tri cơ sở đữ liệu MySQL .- 2c 2S 323 ksrrrrrrerrexee 19
2.2 Mô hình hoạt động - S211 1112 1S 111111 11101119 k1 nghe 20
2.3 Mô hình phát triển hệ thống - 2-2 2 £+E£SEE£EEÊEE2EEEE2EEEEEEEEEEEEEEErErrkrkei 21
2.3.1 Mô hình thác nước là gì? - ¿+ + ++22£EEtEE2E12E12711211221271 21.211 cxe 21 2.3.2 Các giai đoạn chính - - + - +21 1121331111311 1551 1111111111111 E11 1n rrg 22
2.3.3 Ưu, nhược điểm của mô hình thác nước -¿ :+s+s+s+s+E+E+EszezszE+z+zszsz 22
2.3.4 Ứng dụng và trường hợp sử dụng -¿-22++2x2x++zxzzxrzxezrxerxerxee 23
CHUONG 3: XÂY DUNG HE THÓNG -2- 225252 s2 se +sessssesesseses 24
3.1 Xác định yêu cÂu -¿- - + t2 E12EEE19E121E112111121121112111111111111 1111111 rrey 24
3.1.1 Quá trình thực hiện đồ án tốt nghiỆp 2© stEeEE+E£EE2EeErxzEerez 243.1.2 Các tác nhân của hệ thống - ¿+ +E+SE9EE#EEEEEEEE2E12E12E1212212E 22x xE 24
3.1.3 Các ca SU Ụng - án nh TH TH TH TH nh 24
Trang 83.4 Kết 8018510000101 A.a 54
3.4.1 Giao diện Quan tri VIÊT G2 113211112511 112 11115211118 1111111922111 xa 54 3.4.2 Giao diện của Sinh VIÊN 2c 5 2211111222311 11 1111111555555 xe 63 3.4.3 Giao diện của GIANG VIÊN c1 1112112 1 11 1111111111111 811 11k ng key ó6
KET 09007 69
Kết hNo:89ì10 2101.77.44 69
Hướng phát triển trong tương lai - 5c s52 SE2EEEEEE2EEE121E712112121211111 1111 xe 69
TÀI LIEU THAM KHẢO 2- 5Ÿ 5£ 5£ 5£ 8 223232 ES£ E32 Es2 E5 S552 532 s2 70
Trang 10Đồ án tốt nghiệp Đại học
DANH MỤC CAC BANG
Bang 3.2 Đặc tả Use case Đăng nhập - - c1 2.11121112911111 1111111111111 E1 re 28
Bang 3.3 Đặc ta Use case Đăng ký đồ án tốt nghiệp - 5-2 Ssccscccczxerrxres 29
Bảng 3.4 Đặc ta Use case Sinh viên nộp đồ án tốt nghiệp -2- 5 2+2+csczzs¿ 29Bảng 3.5 Đặc ta Use case Nhập danh sách đồ án tốt nghiệp của sinh viên 30Bang 3.6 Đặc ta Use case Thành lập hội đồng - 2 + s+S2+E£EE+E££E+EzEererxrez 30
Bang 3.7 Đặc ta Use case Quan ly đồ án tốt nghiệp sinh viên 2- 5 s52 31Bang 3.8 Đặc ta Use case Nhập điểm đồ án cho sinh viên - 5-2-5252 secsS2 32
Bang 3.9 Đặc ta Use case Quan lý thông tin khoa . 5 S3 + ss+sseerrerrers 32 Bảng 3.10 Đặc ta Use case Quan lý thông tin ngành học c5 sex 33
Bảng 3.11 Đặc tả Use case Quan lý thông tin niên khoá ¿555555 +++<ss52 34 Bảng 3.12 Đặc tả Use case Quan lý thông tin giảng vIiÊn -.- 5-55 + ‡++ss+sss2 34 Bảng 3.13 Đặc tả Use case Quan lý thông tin sinh viÊn 5-52 S55*++s+++ssss2 35
Bang 3.14 Đặc tả Use case Quản lý thông tin hội đỒng - 5-5-2 +c2zzcs£zze2 36Bảng 3.15 Đặc tả Use case Chỉnh sửa dé tài đồ án tốt nghiệp cho sinh viên 36Bang 3.16 Đặc ta Use case Cham điểm đồ án tốt nghiệp của sinh viên 37
Bảng 3.17 Mô tả các bang trong cơ sở dữ lIỆU - c1 1132 3 Esrrresrerres 46 Bảng 3.18 Mô tả các bảng COUCIÏS - -. c 2c 1321113111121 111551 1111911111181 1 1E ke 47
Bảng 3.19 Mô tả các bang council defalÏS - - - + Sc s23 xkstresirrerrrrree 48 Bảng 3.20 Mô tả các bảng deparfimerit - c1 vn ng HH ngư 48 Bang 3.21 Mô tả các bảng Ï€CfUT€TS - - c 1 2010121113121 1119111118111 1 ng 111 nrrreg 48
Bảng 3.22 Mô tả các bảng I4JOFS - - c2 3221112111311 1181 111111111111 111111 811 re, 49 Bảng 3.23 Mô tả các bảng I€WS L1 HS TH 1H11 TH 1H kg key 49
Bảng 3.24 Mô tả các bảng DOSI{IOIS 0 2 31 112 St 1n TH kg kg re 50 Bảng 3.25 Mô tả các bảng TOÌ€S - s11 TH ng HH nh TH nh 50
Bảng 3.26 Mô tả các bảng school _y€AS c2 12212121112 1111111111111 1 1E xe 50 Bảng 3.27 Mô tả các bảng SCOF€S LG 2 01 0112111111111 111011101110 1110111811 8g key 51 Bảng 3.28 Mô tả các bang sfud€nIfS - - c1 1211111111111 11111111 18 1111111111111 1 re, 51 Bảng 3.29 Mô ta các bang student_ theSIs - 2c 2 132323 1313 1x re 52
Bảng 3.30 Mô tả các bang the€SIS ch HH TH TH TH TH nh 52
An Nguyễn Nam Sơn — DI9PTDPT
Trang 11Đơ án tơt nghiệp Đại học
Hình 2.5 Lưu đồ hoạt động của kiến trúc \MVC -.cc + ESt2EE1E121511112112EEEEE xe 13
Hình 2.6 Cách hoạt động khái quát cơ bản của LaravelÌ ¿+ s-s+s++sscsx+ssss2 14
Hình 2.7 Hệ quan tri cơ sở dữ liệu MySQL, - 5322 +2 1+ +3 kxsrrerrerrekre 19
Hình 2.8 Mơ hình hoạt động của hệ thong "— 20
Hình 2.9 Mơ hình thác nước WaterfaÏÏ - - - c1 1x12 1111112 tk SH ng ng re 21
Hinh 3.1 Qua trinh thuc hién đồ án tốt nghiệp của sinh vIiÊn - 55-5 ss++s<s+ 24
Hình 3.2 Biểu đồ Use case tong quát - ¿+ SE E2 E2E1212121112121 111 cEee 27
Hình 3.3 Biểu đồ lớp 2: + 19S19EE9EE2E12E12112112112112171711111111111 11.111 xe 38
Hình 3.4 Biểu đồ trạng thái đăng ký dé tài đồ án tốt nghiệp :- 5-52: 39
Hình 3.5 Biểu đồ trạng thái giảng viên hướng dẫn chỉnh sửa dé tài đồ án 40
Hình 3.6 Biéu đồ trang thái nhập Excel danh sách đồ án tốt nghiệp của sinh vién 40
Hình 3.7 Biéu đồ trạng thái thành lập hội đồng bảo vệ đồ án tốt nghiệp 41
Hình 3.8 Biéu đồ trạng thai sinh viên nộp đồ án tốt nghiệp 25-5 eee 42
Hình 3.9 Biểu đồ trang thái giảng viên cham điểm đồ án sinh viên - 43
Hình 3.10 Biéu đồ trạng thái Sinh viên xem điểm đồ án tốt nghiệp 43
Hình 3.11 Biéu đồ tuần tự đăng ký dé tài đồ án tốt nghiệp 5 25sccscsss¿ 44
Hình 3.12 Biéu đồ tuần tự giảng viên hướng dẫn chỉnh sửa dé tài đồ án 44
Hình 3.13 Biéu đồ tuần tự nhập Excel danh sách đồ án tốt nghiệp của sinh vién 45
Hình 3.14 Biéu đồ tuần tự thành lập hội đồng bảo vệ đồ án tốt nghiệp 45
Hình 3.15 Biéu đồ tuần tự nộp đồ án tốt nghiệp - - + 2 +2+x+E+EeEvEzzxzxerrree 45
Hình 3.16 Biéu đồ tuần tự giảng viên cham điểm đồ án sinh viên 46
Hình 3.17 Lược đỗ cơ sở dữ liệu - : 55cc22ttt2 tre 46
Hình 3.18 Giao điện Trang tổng quan - ¿2+ s+s9EE£EE£EEEEEEEE2E12E12E121221 212 cEee2 54
Hình 3.19 Giao diện Quản lý khoa c2 2211121112 1111 112 111111181191 ng Hy re 54
Hình 3.20 Giao diện Quản lý ngành học - c2 2212211322112 E111 Eeexxks 55
Trang 12Đồ án tốt nghiệp Đại học
Hình 3.21 Giao diện Quản lý niên khoả - 2c 2122322111332 Exxx 55
Hình 3.22 Giao diện Quản lý giảng VIÊn - (c0 201121111 1111111111111 1851 11111 xe 56
Hình 3.23 Giao diện Thêm mới giảng VIÊN - - c3 1321113213511 Exkxrs 56
Hình 3.24 Giao diện Nhập Excel danh sách giảng viên - 5 ss+++sscssssss2 56
Hình 3.25 Giao diện Xác nhận trước khi xoá dit liệu - 5-5 5525 << <++++++++++>s+ 57
Hình 3.26 Giao diện Quản lý chức VỤ - - c0 2222111121111 11111111111 11118111 rà 57
Hình 3.27 Giao diện Quản lý sinh Vién ccc cccccsscesscessceesecsseeeeseceseeesseeesseeeeeeseees 58
Hình 3.28 Giao diện Thông tin chỉ tiết về sinh viên 2: 2 c2 +xete£Ee£eEzrx 58
Hình 3.29 Giao diện Thêm mới sinh viÊn 5 5 222333 * +22 EEE++++++zzzzezseeseexs 58
Hình 3.30 Giao diện Chỉnh sửa thông tin sinh vIÊn - c1 sseeeeree 59
Hình 3.31 Giao diện Nhập Excel danh sách sinh viên .- 5 523 +++<ssssssx+++ 59
Hình 3.32 Giao diện Xác nhận trước khi xoá đữ liệu 5225555 +‡+£+++++>s+ 59
Hình 3.33 Giao diện Quản lý đồ án - 5 5c S1 SE EE12E1211211211211211 1111111 cx6 60
Hình 3.34 Giao diện Thêm mới đồ án 5-5522 tttEEtttrrtttrttttrrrrrtrrrrrrrek 60
Hình 3.35 Giao diện Chỉnh sửa thông tin đồ án ¿ 2 + s2S22E£+zzzxczxzzves 61
Hình 3.36 Giao diện Nhập Excel danh sách AG án St SE 11111111111 tre 61
Hình 3.37 Giao điện Thông tin chi tiết về d6 án -2- 2 sSt2E‡E‡E£E££E2EeEerrrree 61
Hình 3.38 Giao diện Quản lý hội G6ng cececececssessessessessessesessesesessesssessessseesvseeeees 62
Hình 3.39 Giao diện Thanh lập hội đồng - 2-2 2 E+EE+EE+EE2EE+EeEEzErEerxzEerees 62
Hình 3.40 Giao diện Thông tin chi tiết về hội đồng 2-2 s52 z+x+>zzsze: 62
Hình 3.41 Giao diện Quản lý tin fỨC cà 1S 111 SH SSH HT net 63
Hình 3.42 Giao diện Thông tin chi tiết tin tỨC -2- ¿+ SEt+E2E+E£EvEEEErEexerereree 63
Hình 3.43 Giao diện Đăng ký đề tài 5 - St TEE21121121121121121111 1111 tre 64
Hình 3.44 Giao diện Đã đăng ký đề tải 5 cesses nề 2212112112121 1121 1e 64
Hình 3.45 Giao điện D6 án cá nhân -:::- 22+ttEtttttEEttttErrrrrtrrrrrrrrrirrrree 65
Hình 3.46 Giao diện Xem thông tin chi tiết đồ án cá nhân 25:55: 65
Hình 3.47 Giao diện Xem tin fỨC 2 E1 211111113531 111119331 1111185535555 1 1111k xe 66
Hình 3.48 Giao diện Hội đồng tham gia 5: S9 SE 2E E2 E212 xE 66
Hình 3.49 Giao diện Thông tin hội đồng và danh sách d6 án -2- 5-5: 67
Hình 3.50 Giao diện Chấm điểm đồ ann ccseeccseecsseessseeesseeesseeessesssneesneeenes 67
Hình 3.51 Giao diện Danh sách đồ án phụ trách hướng dẫn 5-2: 68
An Nguyễn Nam Sơn — DI9PTDPT vii
Trang 13Đồ án tốt nghiệp Đại học Mở đầu
MỞ DAUHiện nay công nghệ thông tin có vai trò quan trọng, trở nên phổ biến và có ảnh
hưởng tới các hoạt động quản lý và tác nghiệp từ cơ quan nhà nước, trường học, các
doanh nghiệp Cùng với sự phát triển của Internet thì các hệ thống thông tin, phần
mềm quản lý cũng trở nên đa dạng hơn Việc chuyên đổi các hệ thống cũ dựa trên
tương tác trực tiếp giữa hệ thống sang tương tác giữa con người và hệ thống sẽ giúpviệc xử lý, thực hiện các tác vụ một cách tự động hoá dễ dàng và rút ngắn thời gian,
nâng cao hiệu suất công việc Con người có thé ngồi ở nhà hay bat kỳ đâu ma vẫn có
thé quản lý hệ thống và thu thập dữ liệu
Dé áp dụng những tiến bộ trong công việc hàng ngày em đã chon đề tài phát
triển một website quản lý đồ án tốt nghiệp của sinh viên trường Học viện Công nghệ
Bưu chính viễn thông.
Đồ án tốt nghiệp của em sẽ có phạm vi như sau:
e Đối với sinh viên: Đăng ký dé tai đồ án tốt nghiệp, đăng ký giảng viên hướng
dẫn, nộp dé án tốt nghiệp, xem điểm bảo vệ của đồ án, xem tin tức
e Đối với giảng viên: Duyệt dé tài sinh viên đăng ký, xem thông tin hội đồng,
cham điểm cho đồ án
e Đối với quản trị viên: Quan lý các dit liệu về khoa, ngành, niên khoá, hội đồng,
giảng viên, sinh viên, đồ án tốt nghiệp, điểm bảo vệ đồ án, tin tức, phân công
hướng dẫn, phản biện.
Hệ thống được chạy trên nền tảng web dé cho người dùng có thé thuận tiện, dé dang
tương tác với hệ thống Ung dụng được xây dựng bằng ngôn ngữ PHP với framework
Laravel.
Nội dung của báo cáo dé án tốt nghiệp bao gồm những nội dung sau:
e Chương 1: Tổng quan về dé tài Chương này miêu tả bài toán và các chức năng
của hệ thống
e Chương 2: Giải pháp xây dựng hệ thống Chương này sẽ trình bày phương pháp
xây dựng hệ thông bằng việc ứng dụng các công nghệ
© Chương 3: Xây dựng hệ thống Chương này sẽ đưa ra phương pháp xây dựng
hệ thống, phân tích và thiết kế hệ thống, biểu đồ usecase, biểu đồ lớp và biểu đồ
tuần tự cho từng chức năng của hệ thống, xây dựng cơ sở dữ liệu cho hệ thống
e Kết luận: Dua ra kết quả, hướng phát triển tiếp theo và kết luận của việc xây
dựng hệ thống
An Nguyễn Nam Sơn — DI9PTDPT
Trang 14Đồ án tốt nghiệp Đại học Chương 1: Tổng quan về đề tài
CHƯƠNG 1: TONG QUAN VE DE TÀI1.1 Giới thiệu đề tài
Dưới thời đại công nghiệp hoá, hiện đại hoá, sự xuất hiện của công nghệ gópphan quan trong trong khâu quan ly trong mọi lĩnh vực trở nên dé dang hơn, đáp ứngnhu cầu của mọi người Trong đời sống, việc tô chức, quản lý và cham điểm đồ án tốtnghiệp rất phức tạp và rắc rỗi nên em đã xây dựng một hệ thống quản lý đồ án tốtnghiệp bằng ngôn ngữ PHP thông qua quá trình tìm hiểu và nghiên cứu Laravel
Framework.
1.2 Lý do chọn đề tài
Hiện nay công nghệ thông tin có vai trò quan trọng, trở nên phô biến và có ảnh
hưởng tới các hoạt động quản lý và tác nghiệp từ cơ quan nhà nước, trường học, các
doanh nghiệp Cùng với sự phát triển của Internet thì các hệ thống thông tin, phần
mềm quản lý cũng trở nên đa dạng hơn Việc chuyên đổi các hệ thống cũ dựa trên
tương tác trực tiếp giữa hệ thống sang tương tác giữa con người và hệ thống sẽ giúp
việc xử lý, thực hiện các tác vụ một cách tự động hoá dễ dàng và rút ngắn thời gian,
nâng cao hiệu suất công việc Con người có thé ngồi ở nhà hay bat kỳ đâu mà vẫn cóthé quản lý hệ thống và thu thập dit liệu
Sinh viên năm cuối học bậc đại học hoặc cao đăng cuối khoá sẽ phải làm đề tài
tốt nghiệp dé nộp cho nhà trường Việc quan lý đồ án tốt nghiệp sinh viên là một yêucầu thiết yếu của mỗi trường đại học Để quản lý đồ án và lưu trữ có hiệu quả thìkhông đơn giản bởi đòi hỏi kỹ năng của người quản lý Lam sao dé vừa có thé kiểmsoát được số lượng dé tài của các khóa, các hệ đào tạo khác nhau vừa có thể lưu trữ nó
làm tài liệu cho các bạn sinh viên khóa sau đồng thời phân công giảng viên hướng dẫn
đồ án một cách hợp lý Do đó việc đòi hỏi có một ứng dụng trợ giúp cho công việcquản lý và lưu trữ đồ án tốt nghiệp sinh viên là một nhu cầu tất yêu để đảm bảo hiệu
quả và tiết kiệm thời gian trong công việc
Chính vì vậy, em đã chọn đề tài Xây dựng một website quản lý đồ án tốt nghiệp
của sinh viên trường Học viện Công nghệ Bưu chính Viễn thông Đây là quá trình em
áp dụng những kiến thức đã học vào thực tiễn Đề tài của em lấy bối cảnh trường em
đang theo học nên có thé tìm hiểu thêm thông tin và các nghiệp vụ chức năng cần có
để xây dựng nên một website tiện dụng, dễ triển khai và mang lại tính hiệu quả cao
1.3 Mô tả bài toán
Bài toán phát sinh từ tình hình thực tế của các trường đại học nói chung và Học
viện Công nghệ Bưu chính viễn thông nói riêng trong việc tổ chức làm đồ án tốtnghiệp cho sinh viên năm cuối các ngành Kỹ thuật Từ đó xây dựng hệ thống giúp
quản lý đồ án tốt nghiệp, giúp giảm bớt công sức của sinh viên và giảng viên, đồng
thời giúp cho việc quản lý trở nên rõ ràng, tiện lợi Hệ thống quản lý đồ án tốt nghiệp
được xây dựng cho sinh viên, giảng viên, quản trị viên sử dụng Với Học viện Công
nghệ Bưu chính Viễn thông, cách làm việc trước đây (nộp đơn, gửi email ) được đánh
An Nguyễn Nam Sơn — DI9PTDPT
Trang 15Đồ án tốt nghiệp Đại học Chương 1: Tổng quan về đề tài
giá là không phù hợp và thiếu hiệu quả, do đó hệ thống ra đời được kỳ vọng sẽ là giải
pháp cho quy trình đăng ký và quản lý đồ án tốt nghiệp, làm đơn giản việc quản lý
cũng như giúp sinh viên dé dang nắm bắt được thông tin Hệ thống sẽ mang tính kháchquan, công băng, thê hiện qua việc sinh viên đăng ký và người có thâm quyền phê
duyệt.
Hệ thông sẽ bao gôm các chức năng sau:
e Đôi với sinh viên:
©
©
Đăng ký đồ án: sinh viên có thê nêu ra dự định về đề tài, và giảng viên hướngdan mình làm đồ án
Nộp đồ án tốt nghiệp: sinh viên tải lên tập tin đồ án tốt nghiệp của minh dé
giảng viên có thé xem và cham điểmXem điểm đồ án tốt nghiệp: Sau khi hoàn thành đồ án và được hội đồngchấm điểm, sinh viên có thé xem được điểm của minh
Xem tin tức, thông báo từ quản tri viên trên bảng tin của website
® Đôi với giảng viên:
© Phê duyệt đồ án: Giảng viên có thé phê duyệt dé tài đồ án sinh viên do giảng
viên hướng dẫn
Xem hội đồng tham gia: xem thông tin hội đồng tham gia bao gồm thành
viên hội đồng, chức vụ trong hội đồng, những đồ án tốt nghiệp bảo vệ
Cham điểm đồ án: Giảng viên chấm điểm đồ án tốt nghiệp khi sinh viên đãnộp đồ án tốt nghiệp
e Đôi với quản trị viên:
S Đăng tai và quản lý các tin tức: Những người dùng khác có thé thấy được tin
sửa, xóa sinh viên và giảng viên trong hệ thống QTV có thể nhập từ file
Excel mà không cần nhập thủ công từng sinh viên, giảng viênQuản lý đồ án tốt nghiệp của sinh viên: QTV có thể nhập từ file Excel bao
gồm tất cả thông tin về đồ án, sinh viên thực hiện, giảng viên hướng dẫn, hội
đồng bảo vệ QTV phân công hướng dẫn, phân công phản biện cho đồ án tốtnghiệp
Quản lý thông tin về hội đồng: QTV có thể thành lập các hội đồng theo sốquyết định thành lập hội đồng của trường, xem thông tin hội đồng, thành viênhội đồng, đồ án tốt nghiệp bảo vệ
An Nguyễn Nam Sơn — DI9PTDPT
Trang 16Đồ án tốt nghiệp Đại học Chương 1: Tổng quan về đề tài
1.4 Tính cấp thiết của đồ án
Tại Học viện Công nghệ Bưu chính Viễn thông, việc đăng ký đồ án và giảng
viên hướng dẫn là tương đối bắt tiện do phải đăng ký trên giấy và nộp tại Văn phòng
một cửa, sinh viên đăng ký sẽ tốn công sức để đến trường nộp đơn, còn cán bộ tiếp
nhận thì phải mat nhiều thời gian dé xử lý từng đơn, hơn nữa còn có thể nhầm lẫn
trong quá trình xử lý.
Việc quản lý, lưu trữ đồ án tốt nghiệp sinh viên là một yêu cầu thiết yếu củamỗi trường đại học Dé quản lý đồ án và lưu trữ có hiệu quả thì không đơn giản bởi đòihỏi kỹ năng của người quản lý Lam sao dé vừa có thé kiểm soát được số lượng dé tàicủa các khóa, các hệ dao tạo khác nhau vừa có thé lưu trữ nó làm tài liệu cho các bansinh viên khóa sau đồng thời phân công giảng viên hướng dẫn đồ án một cách hợp lý
Một số trường đại học, cao đăng tại Việt Nam cũng đã xây dựng hệ thống cho
van dé này, tuy nhiên chưa giải quyết được triệt để Từ những lý do trên, việc xâydựng hệ thống dé quan lý đăng ký thực tập và đồ án là cần thiết
1.5 Quy trình phát triển
Hệ thống được xây dựng bằng mô hình Client - Server sử dụng ngôn ngữ PHP
(framework Laravel) va cơ sở dt liệu MySQL.
Quá trình phát triển hệ thống sẽ bao gồm các bước sau:
e Thiết kế, xây dựng cơ sở dit liệu: Tạo CSDL dé làm nơi lưu trữ dữ liệu CSDL
được sử dụng trong hệ thống là MySQL MySQL là một trong những cơ sở dit
liệu quan hệ phổ biến nhất hiện nay MySQL có tính bảo mật cao, phù hợp với hệthống quản lý thực tập của đồ án do có truy cập co sử dữ liệu trên Internet Ngoài
ra MySQL hỗ trợ nhiều chức năng SQL (phpMyAdmin, MySQL workbench),người quản trị có thể sử dụng để can thiệp trực tiếp vào cơ sở đữ liệu khi xảy rasai sót khi vận hành và cho phép khôi phục transaction khi xảy ra sự cố, giúp dữ
liệu được bảo toàn đúng đắn
e Xây dựng Server: Tao các bang và mỗi quan hệ trong CSDL, tạo các API va kết
nối các API với CSDL, tất cả đều được thực hiện bởi framework Laravel Laravel
là một framework của ngôn ngữ PHP, được sử dụng rộng rãi dé xây dựngwebsite theo mô hình MVC Laravel cung cấp 1 cơ chế giúp tạo các bảng cho
CSDL mà không cần trực tiếp theo tác trên hệ quản trị CSDL Laravel cung cấp
công cụ tích hợp dòng lệnh, giúp dé dàng thực hiện thay đổi cau trúc bảng trong
Cơ sở dữ liệu hay tạo thêm Controller, Model, Laravel cũng cung cấp cơ chế
mô phỏng các Model dựa trên quan hệ của các bảng trong Cơ sở dữ liệu (được
gọi là Eloquent ORM), giúp thực hiện truy vấn Cơ sở đữ liệu mà không cần sử
dụng ngôn ngữ SQL Ngoài ra Laravel cung cấp sẵn tính năng bảo mật: PDO
chống lại tan công SQL Injection và field token chống lại tan công CSRF, điều
này rất phù hợp với hệ thống đăng ký đồ án do yêu cầu tính bảo mật cao
An Nguyễn Nam Sơn — DI9PTDPT
Trang 17Đồ án tốt nghiệp Đại học Chương 1: Tổng quan về đề tài
e Xây dựng giao diện website: Giao diện website được xây dựng băng Blade, một
engine template mạnh mẽ được tích hợp sẵn trong Laravel, cùng với đó là
HTML, CSS, JavaScript, Bootstrap Blade là một template engine cua Laravel,
giúp ban dé dàng tích hop PHP vào các file view ma không làm phức tap cú
pháp Blade template là một công cụ giúp chúng ta xử ly cú pháp trong view một
cách ngăn gọn, logic Không giống như các template khác trong PHP thì blade
cho phép chúng ta sử dụng cả PHP thuần trong nó Tất cả các blade template sẽ
được biên dịch về mã PHP thuần và cache lại nên về cơ bản sử dụng blade
template cũng không làm cho ứng dụng của bạn chậm đi.
An Nguyễn Nam Sơn — DI9PTDPT
Trang 18Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
CHƯƠNG 2: GIẢI PHÁP XÂY DUNG HE THONG
2.1 Công nghệ sử dụng
2.1.1 Ngôn ngữ HTML và CSS
a HTML,
Định nghĩa HTML: HTML(Hypertext Markup Language) là mã được dùng dé
xây dựng nên câu trúc va nội dung của trang web Vi dụ, nội dung có thê được cau
thành bởi một loạt các đoạn văn, một danh sách liệt kê, hoặc sử dụng những hình ảnh
và bảng biéu
HTML ESB
Hình 2.1 Ngôn ngữ HTML va CSS
Ưu điểm của HTML
Sở hữu nguồn tài nguyên vô cùng rộng lớn và cộng đồng hỗ trợ cực kỳ "hùng
hau" Sử dụng mượt mà trên hau hêt mọi trình duyệt.
Vô cùng đơn giản và dễ học ngay cả với những người mới.
Là mã nguồn mở và hoàn toàn miễn phí
Có markup gọn gàng và đồng nhất Được vận hành bởi World Wide Web
Consortium (W3C).
Tích hợp được với nhiều ngôn ngữ backend như PHP một cách dé dàng
Nhược điểm của HTML
Chỉ được dùng chủ yếu trong việc thiết kế website tĩnh
Đề có thé phát triển nên những tính năng động, ban cần sử dụng Javaccript hoặc
ngôn ngữ backend bên thứ 3 như PHP.
Một số trình duyệt hiện nay còn chậm hỗ trợ tính năng mới
Dường như rất khó kiểm soát cảnh thực thi của trình duyệt
b CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử
dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu(HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web Bạn có thể
An Nguyễn Nam Sơn — D19PTDPT
Trang 19Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
hiểu đơn giản rằng, nếu HTML đóng vai trò định dang các phan tử trên website như
việc tạo ra các đoạn văn bản, các tiêu đề, bang, thi CSS sẽ giúp chúng ta có thé thêm
style vào các phần tử HTML đó như đôi bố cục, mau sắc trang, đôi màu chữ, font chữ,thay đổi cấu trúc
CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996,
vì HTML không được thiết kế dé gắn tag dé giúp định dang trang web
Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn
có thé là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó sẽ áp
dụng các thuộc tính cần thay đổi lên vùng chọn đó
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é tach rời
Lợi ích chính của CSS:
e Giải quyết một van đề lớn Trước khi có CSS, các thẻ như phông chữ, màu sắc,
kiểu nền, các sắp xếp phan tử, đường viền và kích thước phải được lặp lại trênmoi trang web Đây là một quá trình rất dài tốn thời gian và công sức Ví dụ:Nếu bạn đang phát triển một trang web lớn nơi phông chữ và thông tin màuđược thêm vào mỗi trang, nó sẽ trở thành một quá trình dài và tốn kém CSS đã
được tạo ra đề giải quyết vẫn đề này Đó là một khuyến cáo của W3C Nhờ CSS
ma source code của trang Web sẽ được tô chức gọn gàng hơn, trật tự hơn Nội
dung trang web sẽ được tách bạch hơn trong việc định dạng hiển thị Từ đó, quá
trình cập nhập nội dung sẽ dé dàng hơn và có thé hạn chế tối thiêu làm rối cho
mã HTML.
e Tiết kiệm rất nhiều thời gian Dinh nghĩa kiêu CSS được lưu trong các tệp CSS
bên ngoài vì vậy có thê thay đổi toàn bộ trang web băng cách thay đổi chỉ mộttệp Sử dụng CSS sẽ giúp bạn không cần thực hiện lặp lại các mô tả cho từng
thành phan Từ đó, bạn có thé tiết kiệm được tối đa thời gian làm việc với nó,
làm code ngắn lại giúp kiểm soát dé dang hơn các lỗi không đáng có CSS tạo
ra nhiều style khác nhau nên có thể được áp dụng với nhiều trang web, từ đó
giảm tránh việc lặp lại các định dạng của các trang web giống nhau
© Cung cấp thêm các thuộc tính CSS cung cấp các thuộc tính chi tiết hơn HTML
để định nghĩa giao diện của trang web CSS giúp người dùng nhiều styles trênmột trang web HTML nên khả năng điều chỉnh trang của bạn trở nên vô hạn
An Nguyễn Nam Sơn — D19PTDPT
Trang 20Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
bản đồ tương tác, các chức năng của JavaScript có thé cải thiện trải nghiệm người
dùng của trang web Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong
những công nghệ cốt lõi của World Wide Web Ví dụ: khi duyệt internet, bất cứ khi
nào bạn thấy quảng cáo quay vòng dạng hình ảnh, menu thả xuống nhấp dé hiên thịhoặc mau sắc phan tử thay đổi động trên trang web cũng chính là lúc bạn thấy các hiệu
ứng của JavaScrIpt.
b Ứng dụng của JavaScript
Trước đây, các trang web có dang tĩnh, tương tự như các trang trong một cuốn
sách Một trang tĩnh chủ yếu hiển thị thông tin theo một bố cục cố định và không làm
được mọi thứ ma chúng ta mong đợi như ở một trang web hiện đại JavaScript dần
được biết đến như một công nghệ phía trình duyệt dé làm cho các ứng dụng web linh
hoạt hon Sử dụng JavaScript, các trình duyệt có thé phản hồi tương tác của ngườidùng và thay đổi bố cục của nội dung trên trang web
Khi ngôn ngữ này phát triển hoàn thiện, các nhà phát triên JavaScript đã thiết
lập các thư viện, khung và cách thức lập trình cũng như bắt đầu sử dụng ngôn ngữ nàybên ngoài trình duyệt web Ngày nay, bạn có thé sử dung JavaScript dé thực hiện hoạt
động phát triển cả ở phía máy khách và máy chủ
c Cách hoạt động
Tất cả các ngôn ngữ lập trình đều hoạt động bằng cách dịch cú pháp giống tiếngAnh thành mã máy, hệ điều hành sau đó sẽ chạy mã này JavaScript được phân loạikhái quát là một ngôn ngữ viết tập lệnh hoặc một ngôn ngữ diễn giải Mã JavaScript
được diễn giải, tức là được công cụ JavaScript dịch trực tiếp sang mã ngôn ngữ máy cơ
bản Với các ngôn ngữ lập trình khác, trình biên dịch sẽ biên dịch toàn bộ mã thành mã
máy trong một bước riêng Như vậy, tất cả các ngôn ngữ viết tập lệnh đều là ngôn ngữlập trình, nhưng không phải tất cả các ngôn ngữ lập trình đều là ngôn ngữ viết tập lệnh
An Nguyễn Nam Sơn — D19PTDPT
Trang 21Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
d Lợi ích của JavaScript
e Dễ dang học và sử dụng: Cú pháp của JavaScript được lay cảm hứng từ ngôn ngữ
lập trình Java, rất dễ để học và viết mã Các nhà phát triển sử dụng JavaScript
trong hau hết các trang web và ứng dụng di động dé viết tập lệnh phía máy khách
Node.js cũng đã trở nên hết sức phố biến đối với việc viết mã backend trong thập
kỷ qua Nhiều nền tảng phát trực tuyến và video phố biến đã được viết mã bằng
Node.Js.
e Có thé không phụ thuộc vào nền tảng: Không giống như các ngôn ngữ lập trình
khác, bạn có thể chèn JavaScript vào bất kỳ trang web nào và sử dụng với nhiều
ngôn ngữ và khung phát triển web khác Sau khi viết, bạn có thể chạy mã
JavaScript trên bất kỳ máy nào Do đó, với JavaScript, việc phát triển ứng dụng có
thé không phụ thuộc vào nền tảng
e Giảm tải máy chủ: Bạn có thé sử dụng JavaScript để giảm tải máy chủ và tắc
nghẽn mạng vì JavaScript có thể chạy các phép toán logic và thực hiện nhiều công
việc của máy chủ trên chính máy khách Ví dụ: hãy xem xét quá trình điền một
biểu mẫu đăng ký JavaScript nhanh chóng kiểm tra xem bạn đã nhập số có 10 chữ
số cho trường điện thoại di động hay chưa Nếu những yêu cầu này được gửi đến
máy chủ, trang của bạn sẽ tải lại mỗi khi có lỗi, làm cho quá trình đăng ký rất
chậm chạp và tẻ nhạt.
e Cải thiện giao diện người dùng: JavaScript tạo ra các trang web tinh tế giúp thuận
tiện trong việc tìm kiếm và xử lý thông tin phức tạp Các nhà phát triển áp dụngJavaScript dé mở rộng chức năng va độ dé đọc cũng như để tương tác giữa người
dùng và trang web hiệu quả hơn.
e Hỗ trợ đồng thời: JavaScript có thé chạy song song nhiều tập hợp hướng dẫn khác
nhau Về phan backend, Node.js có thé giải quyết va xử lý các phản hồi của máy
chủ được mở rộng quy mô mà không tiêu tốn cùng một lượng băng thông dé làm
việc đó.
2.1.3 Ngôn ngữ PHP
a PHP là gi?
Ngôn ngữ PHP là từ viết tắt của Personal Home Page nay đã chuyển thành
Hypertext Preprocessor Thuật ngữ này là một dạng mã lệnh hoặc một chuỗi ngôn ngữ
kịch bản được dùng dé phát triển các ứng dụng web chạy trên máy chủ Khi các lập
trình viên PHP viết chương trình, chuỗi lệnh sẽ được xử lý trên server sau đó sinh ra
mã HTML trên client Dựa vào đó, các ứng dụng trên website sẽ hoạt động một cách
dễ dàng.
An Nguyễn Nam Sơn — D19PTDPT
Trang 22Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
nó có thé kết nối dé dàng với các website khác có sử dụng HTML PHP cũng là ngôn
ngữ lập trình có mã nguồn mở, tương thích với nhiều nền tảng khác nhau như MacOS,
Linux, Windows, PHP được nhiều người dùng đánh giá là dễ đọc nên đa số các lập
trình viên sẽ lựa chọn học PHP trước khi bắt đầu vào nghề.
b Ứng dụng của ngôn ngữ PHP trong lập trình
Ngôn ngữ lập trình PHP thường tập trung vào việc thiết lập chương trình cho
máy chủ, tạo các cơ sở dữ liệu, xây dựng nội dung website, nhận dir liệu cookie Chua
hết, bạn còn có thể thực hiện được nhiều thao tác, công năng khác khi sử dụng ngôn
ngữ này.
Một số ứng dụng phô biến của PHP trong ngành IT:
Thiết lập chương trình cho hệ thống máy chủ: Đây là một ứng dụng chủ yếunhất của PHP Các PHP Developer sẽ phải thực hiện các thao tác như phân tích ngôn
ngữ lập trình PHP, xây dựng máy chủ web và trình duyệt web.
Tạo các dòng tập lệnh: Các lập trình viên sẽ tạo ra một dòng tập lệnh dé vậnhành chương trình PHP mà không cần đến máy chủ Kiểu lập trình này được sử dụngtrên các hệ điều hành phô biến như Linux hay Windows
Xây dựng các ứng dụng làm việc: Bạn có thể ứng dụng những điểm mạnh vốn
có của PHP đề xây dựng ứng dụng phần mềm Các lập trình viên thường dùng PHP —
GTK làm nền tảng xây dựng phần mềm vì đây là nhánh mở rộng của ngôn ngữ lập
trình này và không có sẵn trong các bản phân phối chính thức hiện nay
Hỗ trợ cho mọi loại cơ sở dữ liệu khác nhau: Khi một website có hỗ trợ cơ sở
dữ liệu tốt sẽ giúp ích cho việc vận hành, sao lưu và đặc biệt là backup dữ liệu đề
phòng trường hợp xảy ra an ninh mạng.
c Ưu nhược điểm của ngôn ngữ lập trình PHP
Ưu điểm: PHP được sử dụng pho biến bởi nhiều lợi ích ma nó mang lại
Mã nguồn mở và miễn phi: PHP sử dụng miễn phí nên giúp tiết kiệm đáng kếngân sách dự án Việc cài đặt và sử dụng ngôn ngữ này cũng rất đễ dàng, bạn chỉ cầnhọc chăm chỉ trong 3 — 6 tháng là đã có thê sử dụng thuần thục
An Nguyễn Nam Sơn — D19PTDPT
Trang 23Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Tính linh hoạt: PHP là một ngôn ngữ đa nền tang, có thé hoạt động trên bất kỳ
hệ điều hành nảo (Windows, Linux, macOS, ) Hơn nữa, PHP còn có thé kết hợp với
nhiều ngôn ngữ lập trình khác dé xây dựng các tính năng công nghệ một cách hiệu quả
nhất
Hệ thống thư viện phong phú, tính cộng đồng cao: Do sự phố biến của ngôn
ngữ PHP nên việc tìm các thư viện code hay hàm liên quan đến PHP sẽ cực kỳ đơn
giản Chưa kể, bạn sẽ nhận được sự trợ giúp từ các diễn đàn, đội nhóm chuyên sâu của
PHP giúp việc học tập hay làm việc trở nên dễ dàng.
Cơ sở dữ liệu đa dạng: PHP cho phép kết nối với hầu hết các cơ sở dữ liệu khác
như mySQL, SQLite, PostgreSQL, MS-SQL,,
Nhược điểm: Mặc dù sở hữu nhiều lợi ich nhưng ngôn ngữ PHP vẫn có một số hạn chế
nhất định, trong đó vấn đề bảo mật được nhiều người quan tâm nhất Bởi bản chất của
PHP có mã nguồn mở nên các lỗ hong của mã nguồn sẽ bị công khai ngay sau khi
chúng được tìm thấy Và các lỗ hồng này có thể bị khai thác cho các mục đích xấu
trước khi chúng ta kip sửa chữa Bên cạnh đó, ngôn ngữ lập trình PHP chỉ hoạt động
được trên các website và giao diện không được gọn gàng, đẹp mắt Độ bảo mật và hiệu
suất của ngôn ngữ này cũng chưa tốt
d Sự khác biệt giữa PHP với các ngôn ngữ lập trình khác
Ngôn ngữ lập trình PHP không chạy trên một trình duyệt mà chủ yếu tương thích với
một máy chủ web Nếu bạn mở một trang web bắt kỳ, máy chủ sẽ chạy tập lệnh PHP
được liên kết sau đó trả lại website cho bạn
Với HTML: Ngôn ngữ này được dùng dé tạo cấu trúc cơ bản của một trang web Hau
hết các trang web hiện nay đều cần sử dụng ngôn ngữ này dé xây dựng website
Với CSS: Sử dụng với mục đích trang trí cho website thêm sinh động, đẹp mắt Các
lập trình viên sử dụng nhiều hiệu ứng khác nhau giúp website bạn trở nên ấn tượng và
thu hút người dùng.
Với Javascript: Các lập trình viên sẽ sử dụng ngôn ngữ này đặt các phép tính, điều
kiện khác nhau để kiểm tra khả năng phản ứng của website trong điều kiện thực tế
Trang 24Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Laravel cung cấp cho nhà phát triển một thư viện không 16 chứa các tinh năng
đã được lập trình san Nhờ vào đó mà người dùng xây dựng trang web trở nên nhanh
chóng và đơn giản hơn do giảm số lượng và thời gian code Các chức năng mà Laravel
cung cấp có thé dé dàng mở rộng và bảo trì Đồng thời, các nhà phát triển còn có thé
thêm thắt chức năng vào ứng dụng phần mềm của mình một cách liền mạch nhờ vào
hệ thống đóng gói module và quản lý thắt chặt
PHP framework là thư viện làm cho sự phát triển của những ứng dụng web viếtbang ngôn ngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản dé
xây dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp bạn thúc đây
nhanh chóng quá trình phát triển ứng dụng Giúp bạn tiết kiệm được thời gian, tăng sự
ồn định cho ứng dụng Giảm thiểu số lần phải viết lai code cho lập trình viên
b Mô hình MVC
Trang 25Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
MAY KHÁCH | MÁY CHỦ
I Gửi yêu cầu
Đanh Sách Khách Hàng Cơ sở dữ liệu
Yêu cau “-x
được gửi đên
ControllerTương tác với ịModel
Model
Trình bày dữ liệu theo sởmẫu định dạng (template)
View - - Controller
Tiên xử lý dữ liệu Nhận dữ liệu
và gửi đến View từ Model
Hình 2.5 Luu đô hoạt động của kiến trúc MVCLaravel tuân theo mô hình kiến trúc MVC (Model-View-Controller), giúp táchbiệt logic của ứng dụng thành các phan riêng biệt dé dé bảo trì và phát triển
MVC (Model-View-Controller) là mẫu kiến tric phần mềm trên máy tính nhằm
mục đích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chia thành
ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao
diện người dùng.
Ba thành phần ấy bao gồm:
e Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi
đúng những phương thức xử lý chúng.
© Model: Là thành phan chứa tat cả các nghiệp vụ logic, phương thức xử lý, truy
xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý
e View: Đảm nhận việc hiển thi thông tin, tương tác với người dùng, nơi chứa tất
cả các đối tượng GUI như textbox, images
Bang cách nay, thông tin nội ham được xử ly tách biệt với phần thông tin xuất hiệntrong giao diện người dùng Bảo đảm các nguyên tắc nghề nghiệp của lập trình viên
c Luéng xử lý
An Nguyễn Nam Sơn — D19PTDPT
Trang 26Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Routing : faites —> Middleware
Migration & Seeding
User gửi yêu câu.
Yêu cầu từ User sẽ được Routing điều hướng:
e Tới Controller dé xu ly yéu cầu Tới Middleware dé kiểm tra
điêu hướng cân thiết.
e Tới thăng View nếu không cần xử lý.
Middleware Middleware có thé xem như bộ loc HTTP từ request, ví dụ như
dùng đê kiêm tra, xác thực người dùng đăng nhập vào hệ thông.
Sau khi kiêm tra, xác thực xong sẽ trả vê Controller đê tiêp tục xử lý.
Controller Controller được xem như trung tâm điều khiển của hệ thống, tất
cả thao tác xử lý nên được thực hiện ở đây.
Kêt quả xử lý sẽ được trả vê view.
Khi có yêu cầu từ Controller, Model sẽ tương tác với Database và
trả kết quả vê Controller, một sô trường hợp can thiệt thì Model
cũng có thê trả thang ket quả vê View.
An Nguyễn Nam Sơn — D19PTDPT
Trang 27Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Migration va © Migration, được dùng dé tao Database
Seeding e Seeding, duoc dùng để tao dit liệu ảo cho Database.
d Ưu điểm của Laravel
e Dùng những tính năng mới nhất của PHP: Dùng những tinh năng mới nhất của
PHP là ưu điểm nồi bật nhất của Laravel Framework.Cu thé, khi dùng công cụ nàybạn có thé sử dụng các tính năng mới nhất của PHP, đặc biệt là trong Interfaces,
Namespaces, Anonymous functions và Overloading, Shorter array syntax Hiện
nay, đã xuất hiện nhiều bộ CMS viết trên nền Laravel, từ mã nguồn mở tới thương
mại, từ các bộ CMS đơn giản cho đến bộ "siêu mạnh"
e Cú pháp đẹp và dé đọc: Laravel có cú pháp rõ ràng và dé đọc, điều này giúp giảm
độ phức tạp của mã nguồn và tạo điều kiện thuận lợi cho việc bảo trì và phát triển
e Nguồn tài nguyên vô cùng lớn và sẵn có: Nguồn tài nguyên của Laravel rất thân
thiện với các lập trình viên với đa dạng tài liệu khác nhau dé tham khảo Các phiên
bản được phát hành đều có nguồn tài liệu phù hợp với ứng dụng của mình
e Tích hợp với dịch vụ mail: Ngày nay, những ứng dụng website cần phải thông báo
về offer và các deal mới cho người sử dụng Việc đăng ký trở thành người dùng
mới là điều vô cùng quan trọng Trên thư viện SwiftMailer của Framework hiện
được trang bi API sạch Trong đó có những Driver cho Mailgun, SMTP, SparkPost, PHP's "mail" function, Mandrill va "sendmail", Amazon SES giúp
chúng ta gửi thư qua dịch vu local hoặc dịch vu dựa trên đám mây.
e Hỗ trợ những cache backend phô biến: Đặc biệt, cũng Redis out-of-the-box và
Memecached, Framework Laravel hỗ trợ những cache backend Ưu điểm này giúp
bạn có thé dé dàng tùy chỉnh được nhiều cấu hình cache
e Tốc độ xử lý nhanh: Không những vậy, công cụ này còn hỗ trợ hiệu quả cho việc
lập những dự án lớn trong khoảng thời gian ngắn hoặc tạo website Vì vậy,
Laravel được những lập trình viên và công ty công nghệ ứng dụng dé phát triển
sản phẩm của họ
e Tính bảo mật cao: Tính bảo mật cao là ưu điểm của Laravel được nhiều người yêu
thích nhất hiện nay Công cụ cung cấp những tính năng bảo mật mạnh giúp ngườidùng an tâm tập trung cao độ cho việc phát triển sản phẩm:
o Dùng PDO dé chống sự tan công của SQL Injection.
o Dùng field token ân dé chống sự tan công kiểu CSRF.
An Nguyễn Nam Sơn — D19PTDPT
Trang 28Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
© Đặc biệt, Laravel escape các biên đêu được đưa ra những view mặc định, vì thê
có thê tránh sự tân công của XSS.
e Những tính năng hữu ích của Laravel
e Eloquent ORM: Laravel sử dung Eloquent ORM để tương tác với cơ sở dữ liệu
Eloquent cung cấp một cách đơn giản và hiệu quả để thực hiện các truy vấn và
quản lý mối quan hệ giữa các bảng
e Blade Template Engine: Blade là một template engine nhẹ, dé đọc và mạnh mẽ.
Nó giúp ban tao va quan lý giao diện người dùng một cach thuận tiện Artisan
Console: Artisan là một công cụ dòng lệnh giúp thực hiện nhiều tác vụ như tạo
migration, seed dir liệu, tao controller, va nhiéu công việc khác một cách nhanh
chóng.
e Middleware: Middleware cho phép bạn xử lý các request trước khi chúng đến
được controller hoặc sau khi response đã được trả về Điều này hữu ích để thực
hiện các tác vụ như xác thực, kiểm soát quyền truy cập, và ghi log
e Routing: Laravel cung cấp hệ thống routing mạnh mẽ, giúp xác định cách các
URL của ứng dụng sẽ được xử lý.
e Dependency Injection: Laravel hỗ trợ Dependency Injection, giúp giảm sự phụ
thuộc giữa các thành phần của ứng dụng và làm cho mã nguồn dễ kiểm soát vàkiểm thử
e Migration va Seeder: Migration cho phép bạn quản lý cấu trúc của cơ sở dit liệu
thông qua mã nguồn, trong khi Seeder giúp ban đồ dit liệu mẫu vào cơ sở dữ liệu
e Tích hợp công cụ front-end: Laravel Mix giúp quản lý và biên dịch tài nguyên
front-end như CSS và JavaScript một cách dễ dàng.
e Quản lý tệp và lưu trữ: Laravel sử dụng gói Flysystem PHP, có thé làm việc với
nhiều hệ thống tệp khác nhau từ hệ thông tệp cục bộ đến lưu trữ dựa trên đám mâynhư Amazon S3 Laravel cũng cung cấp tính năng truyền tệp với Giao thức truyền
tệp SSH (SFTP).
e Bao mật: Laravel có một số tính năng bảo mật bao gồm xác thực người dùng, ủy
quyền vai trò người dùng, xác minh email, dịch vụ mã hóa, băm mật khẩu và tínhnăng đặt lại mật khẩu
e Testing Support: Laravel hỗ trợ việc kiểm thử băng cách tích hợp PHPUnit va
cung cấp các công cụ giúp kiểm thử tự động
f Cấu trúc thư mục của một dự án Laravel
Bảng 2.2 Cấu trúc thư mục của một dự án Laravel
Folder / File | Mô tả | app | Thư mục app, chứa tất cả các project được tạo, hầu hết |
An Nguyễn Nam Sơn — D19PTDPT
Trang 29Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
các class trong project được tạo đều ở trong đây
Không giống các framework khác, các file model không
được chứa trong một thư mục riêng biệt, mà được chứa ngay tại thư mục app này.
app/Console Thư mục Console, chứa các tập tin định nghĩa các câu
lệnh trên artisan.
app/Exceptions Thư mục Exceptions, chứa các tập tin quản lý, điều hướng
lỗi.
app/Http/Controllers Thư mục Controllers, chứa các controller của proJect.
app/Http/Middleware | Thư mục Middleware, chứa các tập tin lọc và ngăn chặn
các requests.
app/Providers Thư mục Providers, chứa các file thực hiện việc khai báo
bootstrap Thư mục bootstrap, chứa những file khởi động cua
framework và những file cấu hình auto loading, route, và
file cache.
config Thu mục config, chứa tat cả những file cau hình
database Thu mục database, chứa 2 thu mục migration (tao va thao
tac database) va seeds (tao dữ liệu mẫu), tiện lợi dé lưu
trữ dữ liệu sau này.
database/factories Thu mục factories, chứa các file định nghĩa các cột bảng
dữ liệu dé tạo ra các dữ liệu mẫu
database/migrations Thư mục migrations, chứa các file tao va chỉnh sửa dữ
liệu.
database/seeds Thu mục seeds, chứa các file tao dtr liệu thêm vào CSDL.
public Thư mục public, chứa file index.php giống như cổng cho
tất cả các request vào project, bên trong thư mục còn chứa
file JavaScript, va CSS.
resources Thư mục resources, chứa những file view va raw, các file
An Nguyễn Nam Sơn — D19PTDPT
Trang 30Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
resources/views
biên soạn như LESS, SASS, hoặc JavaScript Ngoài ra
còn chứa tat cả các file lang trong project
Thư mục views, chứa các file view xuât giao diện người dùng.
Thư mục routes, chứa tất cả các điều khién route (đường
dẫn) trong project Chứa các file route sẵn có: web.php,
channels.php, api.php, và console.php.
routes/api.php
của ứng dụng User (đăng ký, đăng nhập, ).
routes/web.php file web.php, điều khiển các route của view, như route của
trang top, sản pham,
storage Thu mục storage, chứa các file biên soạn blade templates
của ban, file based sessions, file caches, va những file
sinh ra từ project Thư mục app, dùng dé chứa những file
sinh ra từ proJect Thư mục framework, chứa những file
sinh ra từ framework và caches Thư mục logs, chứa
những file logs Thư mục /storage/app/public, lưu những file người dùng tạo ra như hình ảnh.
tests Thư mục tests, chứa những file tests, như PHPUnit test.
vendor Thu mục vendor, chứa các thư viện cua Composer.
env file env, chứa các config chính của Laravel.
artisan file thực hiện lệnh của Laravel.
.p1fattributes File dành cho xử lý git.
.gitignore
composer.json File cua Composer.
composer.lock
composer-setup.php
package.Js file package.js, chứa các package cần dùng cho projects
phpunit.xml file phpunit.xml, xml của phpunit dùng dé testing project
Trang 31Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
webpack.mix.js file webpack.mix.js, file dùng dé build các webpack
2.1.5 Hệ quan trị cơ sở dữ liệu MySQL
MySQL:
Hình 2.7 Hệ quản trị cơ sở dit liệu MySQL
a MySQL là gì?
MySQL là hệ quản trị cơ sở dir liệu mã nguồn mở miễn phí nằm trong nhóm
LAMP (Linux - Apache - MySQL - PHP) >< Microsoft (Windows, IIS, SQL Server,
ASP/ASP.NET), vi MySQL được tích hợp sử dung chung với apache, PHP nên nó phổbiến nhất thé giới Vì MySQL 6n định và dé sử dụng, có tính khả chuyên, hoạt độngtrê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ì đượcnhiều người hỗ trợ mã nguồn mở) và 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 chính vì thế nên MySQL được sử dụng và hỗ trợ của
những lập trình viên yêu thích mã nguồn mở
Nhưng MySQL không bao quát toàn bộ những câu truy van cao cấp như SQLServer Vì vay Mysql chi đáp ứng việc truy xuất đơn giản trong quá trình vận hành của
website, thích hợp cho các ứng dụng có truy cập CSDL trên internet và có thé giải
quyết hầu hết các bài toán trong PHP, Perl MySQL miễn phí hoàn toàn cho nên ban
có thé tai về MySQL từ trang chủ Nó có nhiều phiên ban 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 OSX, Unix,
FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những vi dụ rất co bản về Hệ Quan trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
b Một số đặc điểm của MySQL
MySQL là một phần mềm quan trị CSDL dang server-based (gần tương đương
với SQL Server của Microsoft).
MySQL quản ly dit liệu thông qua các CSDL, mỗi CSDL có thé có nhiều bảng
quan hệ chứa dit liệu MySQL có cơ chế phân quyền người sử dụng riêng, mỗi ngườidùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một
tên truy cập (username) và mật khâu tương ứng để truy xuất đến CSDL
An Nguyễn Nam Sơn — D19PTDPT
Trang 32Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Khi ta truy van tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu
của tai khoản có quyên sử dung CSDL đó Nêu không, chúng ta sẽ không làm được gi
cả giông như quyên chứng thực người dung trong SQL Server vậy.
c Cơ chế hoạt động
Với những thông tin chỉ tiết trên về khái niệm MySQL, theo đó cách thức vận hành
chính tại MySQL môi trường hiện tại là:
MySQL đang tạo ra bang dé có thê lưu trữ dữ liệu và định nghĩa về sự liên quan giữa
những bảng đó.
Client sẽ trực tiếp gửi yêu cầu SQL băng 1 lệnh đặc biệt có trên MySQL
Ứng dụng tại server sẽ tiến hành phản hồi thông tin cũng như trả về những kết quả trên
may client.
d Ly do nên sử dung MySQL
MySQL hiện đang là CSDL có tốc độ ổn định, kha cao và đặc biệt là rat dé sử dung,
hoạt động được trên nhiêu những hệ điêu hành.
Không những có thé sử dụng trên nhiều ứng dụng được, tính bảo mật mạnh mà nó còn
được sử dụng miễn phí hoàn toàn.
MySQL không những bồ trợ cho Perl và PHP, mà còn bé trợ cho rất nhiều những ngônngữ khác Đây chính là nơi để thực hiện lưu trữ tất cả những thông tin trên những
trang Web đang được viết bằng Perl hoặc PHP
2.2 Mô hình hoạt động
Web Client
User
Database
Hình 2.8 Mô hình hoạt động cua hệ thong
Hệ thống được xây dựng theo kiến trúc Client — Server Trong đó máy khách gửi yêu
cầu (HTTP request) đến máy chủ Máy chủ tiếp nhận yêu cầu và xử lý, sau đó trả kếtquả về cho máy khách Hệ thống sử dụng 1 máy chủ duy nhất và máy chủ nay chấp
nhận tất cả các yêu cầu hợp lệ từ máy khách, bat kế vị trí địa lý
An Nguyễn Nam Sơn — D19PTDPT
Trang 33Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
e Website (máy khách): Đây giao diện người dùng được thực hiện bằng các ngôn
ngữ và công nghệ web như HTML, CSS, và JavaScript Người dùng tương tác trực
tiếp với website trên máy tính Website có thé gửi các yêu cầu tới server như thêmsinh viên, đăng ký đồ án, thành lập hội đồng, tìm kiếm người dùng, Máy chủ xử
lý các yêu cau và trả về kết quả cho máy khách Máy khách hiên thị dữ liệu/ thông
báo cho người dùng.
e Backend (máy chủ): Phan backend của hệ thống sử dung framework Laravel của
ngôn ngữ PHP Đây là nơi tiếp nhận và xử lý các yêu cầu từ máy khách qua giao
thức HTTP
e MySQL (cơ sở dit liệu): Cơ sở dit liệu MySQL kết nối trực tiếp với máy chủ
backend Là nơi lưu trữ tất cả dữ liệu của hệ thống: từ thông tin người dùng cho
đến hội đồng, đồ án, thông tin đăng ký đồ án, Dữ liệu có thé thay đổi khi có cácyêu cầu cập nhật từ người dùng
Quy trình hoạt động chung là khi người dùng thực hiện một hành động trên giao diện
người dung (client), ví dụ như nhấn nút dé tạo mới một bản ghi, yêu cầu sẽ được gửiđến Laravel server thông qua mạng Laravel server xử lý yêu cầu này, tương tác với cơ
sở dit liệu dé lưu trữ hoặc truy xuất dữ liệu, và sau đó trả về kết qua cho client dé hién
thi.
2.3 Mô hình phat triển hệ thong
Ngày nay dé tạo ra 1 sản pham chất lượng tốt mà đảm bảo tiết kiệm chi phí sản
xuất và rút ngắn thời gian hoàn thành thì luôn cần có 1 quy trình rõ ràng, chia công
việc thành từng bước, từng giai đoạn dé hoàn thiện Đặc biệt hon trong công việc thiết
kế và phát triển phần mềm, ta có rất nhiều những mô hình phát triển như thác nước,
agile, scrum, Trong đồ án này em đã sử dụng mô hình thác nước dé phát triển hệ
Hình 2.9 Mô hình thác nước Waterfall
An Nguyễn Nam Sơn — D19PTDPT
Trang 34Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
2.3.1 Mô hình thác nước là gì?
Mô hình thác nước (tiếng Anh: waterfall model) là một mô hình của quy trìnhphát triển phần mềm, trong đó quy trình phát triển trông giống như một dòng chảy, với
các pha được thực hiện theo trật tự nghiêm ngặt và không có sự quay lui hay nhảy
vượt pha là: phân tích yêu cầu, thiết ké, triển khai thực hiện, kiểm thử, liên kết và bao
trì Người ta thường dẫn bài báo được Winston W Royce xuất bản vào năm 1970 để
giải thích nguồn gốc cho tên gọi "thác nước": nhưng có điều thú vị là chính Royce đã
dùng mô hình phát triển lặp chứ không hề dùng thuật ngữ "mô hình thác nước"
Mô hình thác nước (Waterfall Model) là một trong những phương pháp phát
triển phần mềm cổ điển và tuần tự Mỗi giai đoạn của quy trình này phải được hoàn
thành và kiểm tra kỹ lưỡng trước khi tiếp tục sang giai đoạn tiếp theo
2.3.2 Các giai đoạn chính
Các giai đoạn chính của mô hình thác nước bao gồm:
e Yêu cầu (Requirements): Trong giai đoạn này, yêu cầu của hệ thống phần mềm
được xác định và ghi chép một cách chỉ tiết Điều này bao gồm việc hiểu rõ nhu
cầu và mong muốn của người dùng cuối
e Thiết kế (Design): Dựa trên yêu cầu, quyết định về cách thức triển khai hệ thống
được thực hiện trong giai đoạn thiết kế Thiết kế có thể được chia thành thiết kế hệ
thống (System Design) và thiết kế chỉ tiết (Detailed Design)
e Triển khai (Implementation): Trong giai đoạn nay, mã nguồn thực hiện được dựa
trên thiết kế và yêu cầu Các lập trình viên thực hiện mã nguồn và kiểm thử cácdon vị nhỏ dé đảm bao tính đúng đắn và hoạt động như mong đợi
e Kiểm thử (Testing): Các đơn vị và hệ thống được kiểm thử dé đảm bao rang tat ca
các thành phần hoạt động một cách chính xác và liên kết với nhau đúng cách
Kiểm thử có thể bao gồm kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hệ
thống
e Triển khai (Deployment): Sau khi kiểm thử hoàn thành và phê duyệt, hệ thống
được triển khai và đưa vào sử dụng
e Bảo trì (Maintenance): Trong giai đoạn này, bảo trì và hỗ trợ kỹ thuật được thực
hiện dé giữ cho hệ thống hoạt động một cách ôn định va đáp ứng được những thay
đổi và yêu cầu mới từ người dùng
2.3.3 Ưu, nhược điểm của mô hình thác nước
Ưu điểm của mô hình thác nước:
e Dễ quản lý: Mô hình thác nước có cấu trúc tuyến tính và tuần tự, giúp quan ly dự
án dé dàng hơn Mỗi giai đoạn được hoàn thành rõ ràng trước khi tiến vào giaiđoạn tiếp theo
e Rõ ràng và dễ hiểu: Mô hình này có cấu trúc rõ ràng, giúp mọi thành viên trong
nhóm dự án hiểu rõ về tiến độ và các bước cần thực hiện
Trang 35Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
Kiểm soát nghiêm ngặt: Vì mỗi giai đoạn phải được hoàn thành trước khi tiễn vào
giai đoạn tiếp theo, kiểm soát và kiểm thử có thé thực hiện một cách chi tiết va
nghiêm ngặt.
Phù hợp với dự án ồn định: Mô hình thác nước thích hợp cho các dự án có yêu cầu
ồn định và ít thay đôi, nơi mà yêu cầu được xác định rõ từ đầu và ít khả năng thay
đôi.
Nhược điêm của mô hình thác nước:
Không linh hoạt: Mô hình thác nước không linh hoạt khi phải đối mặt với sự thayđổi trong yêu cầu hoặc thiết kế Nếu có thay đổi, việc quay lại và sửa lỗi ở giai
Không thích hợp cho dự án lớn và phức tạp: Trong các dự án lớn và phức tạp, việc
đặc tả yêu cầu chỉ tiết và đầy đủ cho tất cả các giai đoạn có thé là một nhiệm vụ
khó khăn và không hiệu quả.
Khó khăn khi phản hồi từ người dùng: Do tính chất tuần tự, phan hồi từ người
dùng cuối thường chỉ được thu thập sau khi hệ thống đã triển khai, điều này có thể
làm tăng chi phí và công sức dé sửa lỗi nếu có phản hồi tiêu cực
2.3.4 Ứng dụng và trường hợp sử dụng
Mô hình thác nước phù hợp với các dự án quy mô lớn lớn, yêu câu duy trì các
giai đoạn và thời hạn theo đúng kế hoạch đã lập ra Hoặc các dự án đã được thực hiện
nhiều lần mà ít xảy ra phát sinh trong quá trình thực thi Đặc biệt phù hợp trong dự án
sản xuất và xây dựng các sản phẩm vật lý và theo các đơn đặt hàng, có thể đễ dàng
tham khảo áp dụng các quy trình quan lý từ các dự án trước đó vào công việc hiện tại
với rất ít hoặc không cần điều chỉnh Việc áp dụng mô hình Waterfall được khuyến
khích khi người thực thi phải năm rõ yêu câu của dự án một cách tôt nhât, yêu câu vê
tính rõ ràng và tính ôn định cao như:
Mô hình thác nước nên sử dụng khi mà đội dự án đã có kinh nghiệm làm việc,
trình độ chuyên môn và kỹ thuật cao bởi mô hình này yêu cầu sự chính xác ngay
từ khi bắt đầu dự án
Mô hình thác nước phù hợp với những dự án mà khách hàng đã đưa ra được yêu
cầu cụ thé, chính xác ngay từ dau và ít có khả năng thay đồi
Áp dụng đối với những khách hàng lớn mà phong cách làm việc của họ chủ yếu
theo mô hình truyền thống hoặc những khách hàng không mong muốn có nhiềuthay đôi trong dự án
Trang 36Đồ án tốt nghiệp Đại học Chương 2: Giải pháp xây dựng hệ thống
e Nam vững được công nghệ và sự phát triển của công nghệ.
Trang 37Đồ án tốt nghiệp Đại học Chương 3: Xây dựng hệ thống
CHƯƠNG 3: XÂY DỰNG HỆ THÓNG
3.1 Xác định yêu cầu
3.1.1 Quá trình thực hiện đồ án tốt nghiệp
Quá trình thực hiện đỏ án tốt nghiệp
Sinh viên = QTV = Giảng viên E Hệ thống
Đăng ký đề tài
Nhập danh sách đề
tai của sinh viên
Tiệp nhận và chỉnh Thông tin đồ ánsửa dé tài
Cham diém eo
Hình 3.1 Quá trình thực hiện đô án tốt nghiệp của sinh viênSinh viên đủ điều kiện tiến hành đăng ký đồ án tốt nghiệp
QTV sẽ nhận được thông tin đăng ký của tat cả sinh viên, còn giảng viên hướng dẫn sẽ
nhận được thông tin đăng ký của các sinh viên đăng ký mình.
Giảng viên hướng sẽ tiễn hành tiếp nhận, chỉnh sửa đề tài đồ án của sinh viên Thông
tin đồ án tốt nghiệp sẽ được lưu lại trong hệ thống
Sau khi sinh viên bảo vệ xong đồ án, giảng viên trong hội đồng sẽ tiến hành vào điểm
đồ án
Sau khi đã vào điểm, sinh viên có thể vào xem điểm đồ án của mình
3.1.2 Các tác nhân của hệ thống
e Người quan tri: quản lý tin tức, quan ly niên khoá, khoa, ngành, quan ly thông
tin hội đồng, quản lý thông tin giảng viên, sinh viên, quản lý danh sách đồ án,
điểm đồ án, xem thống kê đăng ký đồ án, vào điểm đồ án
e Giảng viên: xem tin tức, xem danh sách sinh viên đăng ký hướng dan đồ án,
chấm điểm đồ án trong hội đồng tham gia
e Sinh viên: xem tin tức, đăng ký dé tài đồ án, đăng ký giảng viên hướng dẫn đồ
án, nộp đồ án tốt nghiệp, xem điểm đồ án tốt nghiệp thực hiện
3.1.3 Các ca sử dụng
e Đăng nhập: người dùng đăng nhập hệ thong
Trang 38Đồ án tốt nghiệp Đại học Chương 3: Xây dựng hệ thống
e Đăng tin tức: QTV đăng tin tức lên hệ thống
e Chỉnh sửa tin tức: QTV chỉnh sửa tin tức trên hệ thống
e Xóa tin tức: QTV xóa tin tức đã đăng trên hệ thong
e Xem tin tức: Người dùng hệ thống xem tin tức
e Thêm niên khoá: QTV thêm niên khoá mới vào hệ thống
e Chỉnh sửa niên khoá: QTV chỉnh sửa thông tin của niên khoá
e Xóa niên khoá: QTV xóa niên khoá khỏi hệ thống
e Thêm khoa: QTV thêm khoa mới vào hệ thong
e Chỉnh sửa khoa: QTV chỉnh sửa thông tin của khoa
e Xóa khoa: QTV xóa khoa khỏi hệ thong
e Thêm ngành học: QTV thêm ngành học mới vào hệ thống
e Chỉnh sửa ngành học: QTV chỉnh sửa thông tin của ngành học
e Xóa ngành học: QTV xóa ngành học khỏi hệ thống
e Thêm chức vụ của giảng viên: QTV thêm chức vụ mới vào hệ thống
e Chỉnh sửa chức vụ của giảng viên: QTV chỉnh sửa thông tin của chức vụ
e Xóa chức vụ của giảng viên: QTV xóa chức vụ khỏi hệ thống
e Xem danh sách người dùng (Giảng viên, Sinh viên): QTV xem danh sách người
dùng trong hệ thông, Lọc sinh viên theo ngành, niên khoá, Lọc giảng viên theo khoa, chức vụ
e Tìm kiếm người dùng (Giảng viên, Sinh viên): QTV tìm kiếm người dùng dựa
theo tên e© Nhập danh sách người dùng (Giảng viên, Sinh viên): QTV nhập danh sách người
dùng băng file Excel lên hệ thông
e Xem thông tin chỉ tiết người dùng (Giảng viên, Sinh viên): QTV xem thông tin chi
tiết người dùng trong hệ thong
e Thêm người dùng (Giảng viên, Sinh viên): QTV thêm người dùng đồng thời thêm
tài khoản người dùng vao hệ thong
e Chỉnh sửa người dùng (Giảng viên, Sinh viên): QTV chỉnh sửa thông tin người
dùng
e Xóa người dùng (Giảng viên, Sinh viên): QTV xóa người dùng khỏi hệ thong
e Đăng ký dé tài đồ án tốt nghiệp thủ công cho sinh viên: QTV thêm thủ công đề tài
vào danh sách đô án tôt nghiệp kèm với sinh viên thực hiện và giảng viên hướng dan.
e Nhập danh sách dé tài đồ án tốt nghiệp: QTV nhập danh sách đồ án bang file
Excel lên hệ thông
An Nguyễn Nam Sơn — DI9PTDPT
Trang 39Đồ án tốt nghiệp Đại học Chương 3: Xây dựng hệ thống
Xem danh sách đồ án tốt nghiệp: QTV xem danh sách đồ án tốt nghiệp sinh viên
đăng ký cùng với giảng viên hướng dẫn
Xem chỉ tiết thông tin về đồ án tốt nghiệp: QTV xem tất cả thông tin về đồ án tốt
nghiệp như thông tin cơ bản, sinh viên thực hiện, giảng viên hướng dẫn
Chỉnh sửa thông tin đồ án tốt nghiệp: QTV chỉnh sửa thông tin đồ án tốt nghiệpXoá đồ án tốt nghiệp: QTV xoá thông tin đồ án tốt nghiệp
Nhập điểm đồ án tốt nghiệp cho sinh viên: QTV vào điểm đồ án của sinh viênThành lập hội đồng: QTV thành lập hội đồng bao gồm các thành viên trong hội
Chỉnh sửa tên đề tài đồ án tốt nghiệp: Giảng viên hướng dẫn chỉnh sửa tên đề tài
cho sinh viên phụ trách hướng dẫn
Xem thông tin danh sách hội đồng: Giảng viên xem thông tin chỉ tiết về hội đồngtham gia và các đồ án tốt nghiệp bảo vệ trong hội đồng
Xem danh sách đồ án tốt nghiệp: Giảng viên xem danh sách thông tin đồ án tốt
nghiệp của sinh viên phụ trách hướng dẫn
Chấm diém đồ án tốt nghiệp: Giảng viên trong hội đồng tham gia cham điểm đồ
án tốt nghiệp cho sinh viên
Trang 40Đồ án tốt nghiệp Đại học Chương 3: Xây dựng hệ thống
3.2 Đặc tả hệ thống
3.2.1 Biểu đồ Use case
Quản lý khoa, ngành, niên khoá
Quản lý hội đồng
Quản lý giảng viên
Sinh viên Quản lý sinh viên O
Thông kê điểm
Quản lý đồ án sinh viên
Hình 3.2 Biểu đô Use case tổng quát
Bang 3.1 Mô ta Use case
STT |T œ› n use case < e› - ®
oO ac ng nhap Dang nhập tai khoản người dùng
Quản lý khoa Quản trị viên quản lý thông tin về khoaQuản lý ngành học Quản trị viên quản lý thông tin về ngành học
Quản lý niên khoá Quản trị viên quản lý thông tin về niên khoá
Quản lý hội đồng Quản trị viên quản lý thông tin về hội đồng
Quản lý sinh viên Quan trị viên quản ly thông tin về sinh viên
`
À 7
Quản lý đồ án Quản trị viên quản lý thông tin về đồ án tốt
nghiệp của sinh viên
An Nguyễn Nam Sơn — D19PTDPT