Hệ thống được phân luồng xử lý chức năng phù hợp cho từng loại người dùng; xây dựng một số chức năng tiện lợi cho người mua vé và việc quản lý nhà xe như: dữ liệu trạng thái ghế ngồi đượ
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN KHOA KHOA HOC VA KY THUAT THONG TIN
LE HOANG NGUYEN - 19520182 NGUYEN LE VINH - 19520355
KHÓA LUẬN TÓT NGHIỆP
XÂY DỰNG HỆ THÓNG WEBSITE VÀ ỨNG DỤNG BÁN
VÉ XE KHÁCH SỬ DỤNG ASP.NET CORE 5
BUILDING THE WEBSITE SYSTEM AND APPLICATION FOR
SELLING BUS TICKETS USING ASP.NET CORE 5
CU NHAN NGANH CONG NGHE THONG TIN
TP HO CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KHOA HOC VA KY THUAT THONG TIN
LE HOANG NGUYEN - 19520182 NGUYEN LE VINH - 19520355
KHOA LUAN TOT NGHIEP
XAY DUNG HE THONG WEBSITE VA UNG DUNG BAN
VE XE KHACH SU DUNG ASP.NET CORE 5
BUILDING THE WEBSITE SYSTEM AND APPLICATION FOR
SELLING BUS TICKETS USING ASP.NET CORE 5
CU NHAN NGANH CONG NGHE THONG TIN
GIANG VIEN HUONG DAN
THS VO NGỌC TÂN
TP HO CHi MINH, 2022
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
Ti8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LOI CAM ON
Loi dau tién, chúng tôi xin gởi lời cảm ơn chân thành đến Trường Đại học
Công nghệ Thông Tin, Khoa Khoa học và Kỹ thuật Thông tin đã tạo cơ hội cho
chúng tôi được học tập, rèn luyện và tích lũy kiến thức, kỹ năng đề thực hiện khóa
luận.
Chúng tôi xin gửi lời cảm ơn đặc biệt đến Ths.Võ Ngọc Tân Thầy đã tận
tình hướng dẫn và trang bị cho chúng em những kiến thức và kỹ năng cần có trongsuốt quá trình nghiên cứu và thực hiện đề tài này
Chúng tôi cũng xin gửi lời cảm ơn đến các thầy cô giáo đã tận tình truyền đạtnhững kiến thức quan trọng và bổ ích trong suốt thời gian học tập tại trường
Trong quá trình làm khóa luận, chúng tôi đã trau dồi được rất nhiều nhữngkiến thức bổ ích và những kỹ năng, kinh nghiệm cho trong công việc sau này
Mặc dù đã có gắng hoàn thành luận văn trong phạm vi và khả năng có thể.Tuy nhiên sẽ không tránh khỏi những thiếu sót Em rất mong nhận được sự cảm
thông và tận tình chi bảo của quý thầy cô và toàn thé các bạn
Cuối cùng, xin kính chúc toàn thé thầy cô sức khỏe — thành công
Trang 5MỤC LUC
Chương 1 GIỚI THIỆU sscseeeeereeeeeereeereerrserrsrrsrsur LD
1.1 Lý do chọn để tài -eeeeereeeeerereerrrrrrrrrrrrrrrrer, LD1.2 Đối tượng nghiên cứu ssseeereereereereereeeererrerrerrersre TỔ1.3 Mục tiêu để tissues TỔ
1.4 Phương pháp thực hiện -. -sceceeeeeeeeiiiriririrrruue LZ
1.5 Bố cục khóa luận -.-eeeeerrrrrrrrrrrrerrroee T7Chương 2 CƠ SỞ LÝ THUYẾT ssttrrererrrerrsrsreresex LB
2.1 ASP.NET Core 5 - co LB
2.2 Nền tảng Google maps API eseeeeeeeeereerseesreeseeeeoer TÔ
2.3 Elastic Search Engine sssssssssssssssssssssssssssssssssssssssssssssesssssssssesssssssssssssssssssssssssssssessssssssss DO
2.4 Real-time web-app với SigmalR eeeccecssssssssssssssssssssssssssssssssssssssssssesssssssssssssssssssssssssseses 2D
2.5 Cơ chế xác thực sử dụng JSON Web Token (JWWTT) 213
2.6 Bam mật khẩu 26
Chương 3 PHAN TÍCH VA THIẾT KẾ HỆ THỐNG 28
3.1 Khảo sát hiện trạng -ccccceeeeeerirrrertiirrrririiiiiirrririeessrooe 2U,
3.2 Phân tích yêu cầu hệ thống
3.2.1 _ Phân tích yêu cầu người dùng eeeerseseee SL3.2.2 _ Phân tích yêu cầu nhân viên
3.2.3 Phân tích yêu cầu quản trị es.eeeeeeeerreree 3723.3 Thiết kế hệ thống
3.3.1 Mô hình hoạt động chung c.s.vveeeetseeeeriettriiersreisrieuuee SL3.3.2 Sơ đồ use-case tổng quát wn 343.3.3 Danh sách các actor và mục tiÊU «ccc‹vveeeerxsveeersseererrsroeeeres OD
Trang 63.3.4 Danh sách các S€-CaSe -c c-ccccecveseeerirrrtrtrtirrirrirrririrserie
3.3.5 DAC tả UIS€-CAS€ ch HH1 1 rrrrrrrrkrrereree
Quản lý nhà Xe -c nhe
Quản lý QUAY vé 2s-2sstitrertertrrrrrrrrrrrrrrerrrre
Quản lý người dùng cceceeeeerrririiirirrrirrririree
Quản lý doanh thu ccccccccecccceccceeceeeeeeeeeeeeeeeeereeree
58 59
Trang 8DANH MỤC HÌNH
Hình 2.1: Bảng giá API tự động điền của Google Maps -. -e 19 Hình 2.2: Dự đốn điểm đến dựa trên dữ liệu nhập của người dùng 19
Hình 2.3: Logo thương hiệu của Elastic Searchh -cccccsecsrxrrerrererrerrrrrerrree 20
Hình 2.4: Minh họa quét các trạm dừng theo bán kính cho trước - 21 Hình 2.5: Mơ hình hoạt động của SignaÏlR - csc5c<sreereekteetirrrrtrrrrrerrrrkee 22
Hình 2.6: Minh họa một JW T' +.LcHHH HH HH HH này 24
Hình 2.7: Cấu trúc của ¡00 0 ~ ,ƠỎ 25 Hình 2.8: Cơ chế xác thực được chúng tơi xây dựng trong hệ thống bán V6 26
Hình 2.9: Cơ chế băm mật khâu trước khi lưu -cccee+ceeevevrrrreesvvvrrrrre 27
Hình 3.1: Danh sách cơ định của dit liệu điểm đi điểm đến — VeXeRe 29 Hình 3.2: Dữ liệu ghế khơng cập nhật thời gian thực của 1 chuyến xe — FutaBus 30 Hình 3.3: Lỗi hiển thị responsive của trang web xe khách Hồng Thùy 30
Hình 3.4: Mơ hình hoạt động chung -e-+ccsererxerrrrxererkerrrrkerrrkerrrrkerrrke 32
Hình 3.5: Sơ đồ use-case tổng quát «ccs.rreeetreeverrererrtrrerrrrrtrrrrerrie 34 Hình 3.6: Sơ đồ use-case quản lý nhà xe ces-+eeceerreeeevrrrerverrrrererrrree 39 Hình 3.7: Sơ đồ use case quản lý kế hoạch -cc-e-ccccetreecvvrrreererrrree 40 Hình 3.8: Sơ đồ use-case quản lý quầy VE -. +cceereeeerrreeerrrreerrrrerrre 41 Hình 3.9: Sơ đồ use-case quản lý người dùng .ccccerrrccverrrrererrrree 42
Hình 3.10: Sơ đồ use case quản lý doanh thu s +ccs+ecc+trceetrrcezrrre 43
Hình 3.11: Sơ đồ use case quản lý xe ccs.-eceetreeeerrererrrrrerrrrrvrrrrerrre 45 Hình 3.12: Sơ đồ use case quản lý chuyến xe -. +-ccce.ecceerrrreverrrree 46
Hình 3.13: Sơ đồ use case bán vé tại QUAY -e-ccerreeeerreertrrererrre 47
Hình 3.14: Sơ đồ use case đăng nhập / đăng ký -cccccciccecveerrrrreeeerrrrrree 48 Hình 3.15: Sơ đồ use case mua Vé Xe -+-cc2i+eccvetrrreeverrrrrrrrrrrrrrrrrrrrerrrree 49
Hình 3.16: Sơ đồ use case quản lý vé Xe -+cc2+eceerrecerrrererrrretrrrrrrrre 50
Hình 3.17: Sơ đồ use case kiỂm tra VE Xe e ceiriirirririrriiriirrrirrrie 51 Hình 3.18: Sơ đồ use case đăng ký kế hoạch -:-ccccccrrrrccevvrrrrrrrereerrrrre 52
Trang 9Hình 3.19: Sơ đồ use case tạo vé điện tử :::cecccsvvvvEEErtiittireekttkrrrrrrirrrirsree 53 Hình 3.20: Sơ đồ cơ sở dit liệu thu gọn ce2-+cceereeeerrreeerrerevrrrrerrre 54 Hình 4.1: Trang tìm kiếm chuyến xe :++eecccerrrrreeevverrrrrrererrrrrrrrrrrrrrrre 81
lung VAT 82 Hình 4.3: Trang quản lý các vé bán của quản trỊ VIÊN -‹ -c-seeceerrrrserrrke 83
Trang 10DANH MỤC BANG
Bang 3.1: Bảng danh sách các actor và mục CBU -c-s<srxeirrkerererirrierrrke 35
Bảng 3.2: Bảng danh sách CAC US€-CAS€ sscs HH Hàn gà ghườt 35
Bảng 3.3: Bảng đặc tả UCO [ -csscccss+csrxererkrtrrertrtkrttrkrrtrtrrrrrrirrirrrrrerrrierrrke 39 Bảng 3.4: Bảng đặc tả UCÖ2 c cc+csrerirtrrttHHH HH rgờt 40 Bảng 3.5: Bảng đặc tả UCO3 «<5 HH H1 11g11 riưg 41 Bảng 3.6: Bảng đặc tả UCO4 -5s-css+ccrxrrrkxrtkrkrrrrtkrrtrkrrrrrrrrkerrrirrrrerrrierrrke 42 Bảng 3.7: Bảng đặc tả UCO5 cs-css+ccrketrrkertrrkrtrrrkrttrkerrrrkrrrrkerrirrrrrerrrierrrke 44
Bảng 3.8: Bảng đặc tả UC06 «ch HH HH giệt 45 Bang 3.9: Bang Gac 00i 6u 46
Bang 3.10: Bảng đặc ta UCO6 «s1 HH gi grưkg 47 Bảng 3.11: Bảng đặc tả UCO9 ce esessessssesseesseesstessneesstessneesstesssessaeesseessaeesseessseessessseesssersneeaes 48 Bang 3.12: Bảng đặc ta UCCOO s01 1 g1 1g riư 49 Bảng 3.13: Bảng đặc tả UC [2 cccceccsrkvirrrrrrirrrrrirrrriiiirrriiiirrrirrrrrree 50 Bảng 3.14: Bảng đặc tả UC [2 c-cccsveecrkiirtErtiirttiiirrtiiiiriiiiiiiiriiiiirirree 51 Bảng 3.15: Bảng đặc tả CC TỔ cs-csc HH HH Hà Hàng hàng giệt 52
Trang 11Mô tả bảng PHANQU YEÌN HH nhưg 65
Mô tả bảng TRAMDỮNG HH Hư 65
Mô tả bảng DLADIEM - sài nên 66
Mô tả bảng TUYENDUONG HH Hư 67
Mô tả bảng CHITET_ TUYENDƯƠNG -ccccccesereeereee 68
Mô tả bảng THUONGHIEU «sàng 68
Mô tả bảng KEHOACH sàn nà nà gi nưkg 69
Mô tả bảng CHITTIET_ KEHOAACH -scccnetireeiieirrireee 70
Mô tả bảng QUAYBAN HH Hà nà gi nHưg 74
Mô tả bảng PHANQUAYBAN cc HH Hư 75
Mô tả bảng GIÁ VĨ «ccctnhnhhtHHHHHnhghhtprreg 75
Mô tả bảng HOAHONGVE HH nưg 76
Mô tả bảng HOAADON HH Hành 77
Mô tả bảng VEXXEH ch HỶ Hà Hàn nàng 79
Trang 12DANH MỤC TỪ VIET TAT STT | Từ viết tắt Diễn giải
1 API Application Programming Interface
2 PK Primary Key
3 FK Foreign Key
4 JWT JSON Web Token
Trang 13TOM TAT KHÓA LUẬN
Sự phát triển của ngành du lịch, kéo theo nhu cầu di chuyển giữa các địaphương tăng cao, nhất là vào những dịp lễ tết Với số lượng hành khách lớn như
vậy, việc quản lý vé xe và hành khách trở nên khó khăn, thách thức cho nhà xe Và
hành khách cũng gặp những khó khăn khi mua vé và theo dõi chuyến xe của mìnhvới những phương pháp quản lý và bán xe vé truyền thống Vì vậy, việc xây dựng
hệ thống bán vé xe điện tử là một nhu cầu cần thiết, nhất là đối với các bến xe với
số lượng nhà xe và hành khách lớn
Hiện nay, các hệ thống website bán vé xe đang hoạt động dựa trên các địađiểm đi với đến cố định là các tỉnh, thành phố lớn và từ đó đưa ra các chuyến xe khảdụng cho khách hàng Chúng tôi nhận thấy rằng, nhu cầu địa điểm đi với đến của
người dùng có thé chỉ tiết hơn, ở các cấp độ nhỏ hơn (như đường, phường, huyện,
xã ) Khi đó hệ thống bán vé sẽ cần hiền thị các chuyến xe phù hợp với các trạmdừng lân cận với các địa điểm này, từ đó làm tăng khả năng tiếp cận người dùng và
đem lại hiệu quả trong việc bán vé.
Trong khóa luận này, chúng tôi sẽ xây dựng hệ thống bán vé điện tử cho Bến
xe Miền Đông trên nền tang website Hệ thống được phân luồng xử lý chức năng
phù hợp cho từng loại người dùng; xây dựng một số chức năng tiện lợi cho người
mua vé và việc quản lý nhà xe như: dữ liệu trạng thái ghế ngồi được cập nhật theo
thời gian thực, tìm kiếm chuyến xe gần nhất với nhu cầu của hành khách Bên cạnh
đó, website được thiết kế giao điện hiện đại, bố cục hợp lý giúp người dùng dễ dàng
thao tác và sử dụng các chức năng Ngoài ra, người dùng có thể đễ dàng truy cập
website trên bat kỳ thiết bị nào nhờ mã nguồn được thiết kế hiền thị giao diện phù
hợp với mọi kích thước màn hình Hệ thống được phát triển bằng các công nghệ
ASP.NET Core 5, Xamarin, Bootstraps 5, SignalR[5][6][7] và SQL Server.
13
Trang 14MỞ ĐÀU
Trong giai đoạn hậu Covid-19 như hiện nay, mọi người đã dần thích nghiđược với cuộc sông “bình thường hóa” Vì thé mà các hệ thống giao thông đã trở lạihoạt động 6n định nhất là đối với các dich vụ xe khách khi mà nhu cầu di chuyểncủa mọi người ngày càng cao đặc biệt là vào các dịp lễ Việc đặt mua vé và soát vé
xe bằng hệ thống sẽ không chỉ giúp người mua vé thấy tiện lợi mà còn giúp nhà xe
có thể quản lý dễ dàng hơn Đặc biệt trong bối cảnh thông tư 78/2021 của Bộ Tàichính ban hành hướng dẫn các doanh nghiệp phải sử dụng hóa đơn điện tử (hóa đơn
có mã số thuế, có kết nối với ngành thuế) từ ngày 01/07/2022 điều này lại càng cần
thiết
Vi thế, chúng tôi lựa chọn đề tài: “XÂY DỰNG HE THONG WEBSITE VÀỨNG DỤNG BÁN VÉ XE KHÁCH SỬ DỤNG ASP.NET CORE 5” nhằm đáp ứngnhu cầu thực tế về việc quản lý nhà xe và cải thiện trải nghiệm hành khách khi đặt
mua vé xe.
14
Trang 15Chương 1 GIỚI THIỆU
1.1 Lý do chọn đề tài
Việc sử dụng công nghệ trong các ngành dịch vụ trong còn xa lạ trong thời
đại công nghệ phát triển hiện nay Một số nhà xe trong ngành giao thông vận tải
cũng đã áp dụng công nghệ để xây dựng các hệ thống bán vé trực tiếp nhằm giải
quyết những vấn đề tồn đọng khi sử dụng phương pháp truyền thống Mặc dù, các
hệ thống đó đáp ứng đủ các chức năng cơ bản cần thiết Tuy nhiên, các nhà xe chưa
thật sự đầu tư chỉnh chu cho hệ thống của mình Hầu hết, các trang web có giao diệnđơn điệu, sơ xài và hiển thị không đáp ứng trên nhiều thiết bị khác nhau Bên cạnh
đó, các chức năng chính cơ bản vẫn được đảm bảo cho khách hàng có thé sử dụng.Vấn đề không dừng lại ở đó, các trang web đặt vé xe đang hoạt động hiện nay
không mang lại hiệu quả trong việc phản hồi kết quả các chuyến xe phù hợp cho
khách hàng Cụ thé là khách hàng bat buộc phải chọn các địa điểm đi với đến củamình dựa vào danh sách các tỉnh — thành phố mà hệ thống liệt kê Ở đây khách đặt
vé không thể nhập chính xác nơi mình muốn đến ở các cấp nhỏ hơn (như đường, xã,huyện) vì kết quả các chuyền xe trả về gần như rất thấp
Như vậy bài toán được đặt ra cho một hệ thống bán vé xe hiện đại, tập trungvào tập đối tượng người dùng là làm thế nào để người dùng có thể nhập chính xác
nơi mình muốn đến từ đó hệ thống xử lý và trả về kết quả các chuyến xe phù hợpnhất dựa trên khoảng cách các trạm dừng và địa điểm này Cùng với đó, hiện trạng
quá tải vào các dịp lễ, thời gian cao điểm vì nhu cầu khách hàng tăng cao dé xảy ra
xung đột khi đặt vé Vì thế, việc cập nhật dữ liệu ghế theo thời gian thực là vô cùngcần thiết giúp hệ thống hạn chế việc xảy ra lỗi khi khách hàng đặt vé Cuối cùng,với bản chất là một hệ thống website thương mại điện tử thì vấn đề bảo mật thông
tin và các kết nối cũng là ưu tiên hàng dau
Để đạt được yêu cầu của bài toán trên, chúng tôi đã chọn và thực hiện đề tài
“XÂY DỰNG HỆ THÓNG WEBSITE VÀ ỨNG DỤNG BÁN VÉ XE KHÁCH
SỬ DỤNG ASP.NET CORE 5” Đề tài nghiên cứu về hệ thống quản lý tại các bến
15
Trang 16xe và kế thừa các thông tin như doanh nghiệp vận tải và kế hoạch lưu thông của cácnhà xe từ hệ thống quản lý xe và vào bến đã có sẵn, từ đó xây dựng hệ thống bán véđiện tử cho khách hàng trên hai nền tảng website và ứng dụng di động Bên cạnh
đó, đề tài tìm hiểu và giải quyết bài toán quét qua các trạm dừng so với địa điểm dichuyển theo nhu cầu của khách hàng nhằm khuyến nghị các chuyến xe phù hợp
Ngoài ra, khi khách hàng đặt vé, dữ liệu trạng thái của các ghế trên các chuyến xe sẽđược cập nhật một cách chủ động theo thời gian thực giữa các máy khách giúp tiết
kiệm thời gian nếu xảy ra xung đột khi đặt chung một ghé Hệ thống được phát triểnbằng các công nghệ ASP.NET Core 5, Bootstrap và SQL Server
1.2 Đối tượng nghiên cứu
Trong để tài khóa luận này, chúng tôi tập trung tìm hiểu về một hệ thống
website bán vé xe Đây là một đối tượng nghiên cứu không quá mới mẻ nhưng vẫncòn các vấn đề xoay quanh nó cần được khai thác Thực hiện khảo sát và đánh giá
các ví dụ có liên quan từ đó đưa ra kế hoạch phát triển hệ thống là một trong những
bước quan trọng trong quá trình nghiên cứu và hoàn thành đề tài
1.3 Mục tiêu đề tài
Dé đạt được các yêu cầu dé ra cho hệ thống trong dé tài khóa luận này, điềutrước tiên là tìm hiểu về website bán vé trực tuyến và cách vận hành một hệ thống
bán vé xe Điều này giúp chúng tôi có đủ kiến thức nền tảng về nghiệp vụ quy trình
và cụ thể chúng tôi sẽ tìm hiểu sâu ở thực thé “Bến xe Miền Đông mới” nhằm phục
vụ cho đề tài này
Sau khi phân tích và đưa ra được yêu cầu, chúng tôi sẽ tìm hiểu các công
nghệ hỗ trợ như ASP.NET Core 5[10], Bootstrap, ElasticSearch, MS SQL Server,
Firebase, Dựa trên cơ sở đó chúng tôi sẽ xây dựng hệ thống website quản lý bán
vé xe đáp ứng được tương đối nhu cầu của người mua vé bằng cách giải quyết được
bài toán quét các trạm dừng và địa điểm mong muốn của khách hàng dé có những
16
Trang 17chuyến xe phù hợp Đồng thời hệ thống cung cấp đầy đủ các tính năng quản lý chocác quản trị viên thông qua các API cung cấp dịch vụ mà chúng tôi thiết kế.
1.4 Phương pháp thực hiện
Các công nghệ được sử dụng và quy trình thực hiện cũng là các yếu tố quan
trọng bởi lẽ một hệ thống website bán vé xe không chỉ cần đáp ứng các yêu cầu tốithiểu như đặt vé cho khách hàng mà còn phải có giao diện phù hợp, hiện đại, mang
đến sự tin tưởng và có thể tương thích với các thiết bị truy cập Ngoài ra còn rấtnhiều yêu cầu khác Và các công nghệ, công cụ phát triển sẽ hỗ trợ và giúp website
hoạt động tốt hơn
Chúng tôi tiền hành nghiên cứu và tìm hiểu Bootstrap đề xây dựng giao diệngần gũi với người dùng Bên cạnh đó, hệ thống API xử lý các dịch vụ được triểnkhai bằng ASP.NET Core 5[10] Kỹ thuật tìm kiếm, quét các trạm dừng so với địa
điểm được yêu cầu bằng ElasticSearch để đưa ra kết quả phù hợp được chúng tôi áp
dụng giải quyết bài toán của đề tài Toàn bộ dữ liệu sẽ được lưu trữ ở cơ sở dữ liệu
MS SQL Server và dịch vụ lưu trữ đám mây Firebase Chúng tôi xác thực các yêucầu từ máy khách đến hệ thống API bằng công nghệ JWT (JSON Web Token)[2]
1.5 Bố cục khóa luận
Khóa luận được tô chức có 5 chương và có bố cục như sau:
Chương 1: Giới thiệu
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích và thiết kế hệ thống
Chương 4: Kết quả xây dựng
Chương 5: Tổng kết và hướng phát triển
17
Trang 18Chương2 CƠ SỞ LÝ THUYET
2.1 ASP.NET Core 5
Đối với một website bán vé xe mang tính chất của một website thương mạiđiện tử, hệ thống sẽ có thể phải đối mặt một lượng lớn truy cập cũng như nguồn dữ
liệu Ngày nay có rất nhiều ngôn ngữ cũng như nên tảng công nghệ hỗ trợ các lập
trình viên thực hiện các tính toán logic, truy xuất dữ liệu cho hệ thông website củamình nhưng nỗi bật hơn hết phải kể đến đó là ASP.NET Core và NodeJS - hai
framework có độ phổ biến cao trong lĩnh vực xây dựng và phát triển dịch vụ ứngdụng web ở phía máy chủ Nhờ vào đặc điểm có thé mở rộng (Scalability) mà cả
hai có thể triển khai chia các xử lý dịch vụ nhỏ hơn, độc lập với nhau(microservice) từ đó tăng khả năng giải quyết yêu cầu với một lượng lớn truy cập
Điều này sẽ giúp website chúng tôi trở nên đa nhiệm hơn
Yếu tố tiếp theo khi đề cập đến một website thương mại điện tử đó là tính
bảo mật Về khía cạnh này, ASP.NET Core và NodeJS đều có thể đáp ứng tốt
Mặc khác, một dự án xây dựng website quản lý bán vé xe sẽ cần phải có khả năngbảo trì nâng cấp khi cần thiết Và ASP.NET Core thê hiện rõ điểm mạnh của mình
trong việc quản lý và tô chức mã nguồn được viết bằng ngôn ngữ C# của mình.Trong khi đó, các dịch vụ ở NodeJS được viết bằng ngôn ngữ Javascript — một ngôn
ngữ mang tính tiện dụng nhanh nhưng không đảm bảo được tính lâu dài trong việc
bảo trì, nâng cấp và sửa chữa Cùng với yêu cầu dữ liệu ghế xe phải cập nhật theothời gian thực, ASP.NET Core hỗ trợ mạnh mẽ việc tích hợp SignalR — một côngnghệ cho phép dữ liệu được truyền đi và tiếp nhận realtime giữa client và server.Hơn thế nữa, ASP.NET Core cung cấp cho các lập trình viên một cộng đồng sửdụng và hỗ trợ rất lớn và giàu tiềm năng giúp họ có thể tham khảo mỗi khi gặp khó
khăn.
18
Trang 192.2 Nền tảng Google maps API
Đây là nền tảng bản đồ vô cùng mạnh mẽ được phát triển bởi gã không lồcông nghệ Google Là một nền tảng miễn phí được sử dụng rất phổ biến với cácngười dùng cuối ở Việt Nam Còn đối với doanh nghiệp muốn có các yêu cầu dữ
liệu theo mong muốn thì phải tra phí dựa trên phiên (session), yêu cầu (request),lượt tải bản đồ (load map)
Autocomplete
Autocomplete - Per request* - 10,000
Autocomplete + Place - 10,000
Details - Per session*
Hình 2.1: Bảng giá API tự động điền của Google Maps
Đối với bài toán cho phép người dùng nhập dữ liệu bất kỳ để đề xuất chuyến
xe như website của chúng tôi, thì sự hỗ trợ của nền tảng này là thực sự cần thiết, với
cơ sở dữ liệu hơn 200 triệu doanh nghiệp và địa điểm, Google maps sẽ cung cấp đadạng cách lựa chọn đầu vào gần như là đúng ý muốn người dùng Khi người dùng
chọn một địa điểm Google maps API sẽ trả về tọa độ địa lý của điểm đó và cũng làđầu vào dé quét qua những trạm dừng, điểm dừng gan với vị trí đó Hiện tại, với
chính sách của Google, chúng ta chỉ cần xác thực thẻ tín dụng (credit card) là có thể
có 200 đô la miễn phí mỗi tháng dé sử dụng dịch vụ bản đồ của Google Với mức
miễn phí như vậy, mỗi tháng website sẽ có được khoảng 10.000 session và 10.000 request miễn phí.
Trang 20Tuy nhiên, hệ thống có kế hoạch sẽ không phụ thuộc nhiều vào nền tảngnày trong tương lai, vì vậy mỗi yêu cầu tìm kiếm của người dùng sẽ được tìm kiếmtrong cơ sở dữ liệu trong hệ thống trước, néu như kết qua ít hơn 5 thì sẽ gọi API tớiGoogle dé lấy dữ liệu, sau đó sẽ lưu lại dữ liệu này Bên cạnh đó, dé tiết kiệm chỉphí cho hệ thống, trong chức năng chỉ đường cho người dùng từ điểm nhập tới trạm
dừng, chúng tôi sẽ mở đường link sang google map thay vì nhúng map vào hệ thống
website.
2.3 Elastic Search Engine
Elastic Search là một engine chuyên dùng để tim kiếm dữ liệu, hoạt độngnhư một web server lưu trữ dữ liệu cung cấp khả năng truy cập gọn gàng cho clientthông qua các giao thức RESTful Do các điểm dữ liệu (document) trong ElasticSearch Enginge được đánh index khi lưu và sửa, nên dữ liệu sẽ được tìm kiếm
nhanh hơn cách tìm kiếm đữ liệu tuần tự truyền thống Elastic search hỗ trợ nhiều
cách tìm kiếm dữ liệu, nỗi trội như fulltext và đặc biệt là hỗ trợ kiểu dữ liệu địa lý(geopoint) cho phép người dùng tìm kiếm dữ liệu trong một bán kính cụ thể dựa
trên vĩ độ, kinh độ đầu vào Cách tìm kiếm này đặc biệt phù hợp với bài toán củawebsite trong tìm kiếm những trạm gần nhất trong một bán kính cho phép so với
điểm đi và điểm đến của người dùng nhập vào
elasticsearch
Hình 2.3: Logo thương hiệu của Elastic Search
20
Trang 21Ví tất cả thuộc tính trong một document đều là khóa chính, Elastic Search sẽđánh index cho đữ liệu đầu vào, cũng như tiến hành đánh index lại mỗi khi có hànhđộng cập nhật, xóa, vì vậy nhìn chung tốc độ thêm, xóa, sửa của Elastic Searchengine sẽ chậm hơn đáng kể so với cơ sở dữ liệu truyền thống Elastic Search chỉphù hợp với những hệ thống cần tìm kiếm nhanh và dữ liệu không được cập nhật và
thêm liên tục Đối với hệ thống bán vé xe của chúng tôi dữ liệu mua vé được thêm
liên tục, và thông tin về trạng thái thanh toán của người dùng cũng sẽ được cập nhậtsau đó, kèm theo đó Elastic Search engine không hỗ trợ transaction, điều này đặcbiệt khá khó xử đối với hệ thống bán vé, cần chèn nhiều ghế vào cơ sở dữ liệu Ví
dụ khi một người cần chèn 3 ghế 1, 2, 3 vào cơ sở dữ liệu, khi chèn đến ghế thứ 2
thì một người khác đã chén ghế thứ 3 Vì không hỗ trợ transaction nên chúng tahoàn toàn không thé rollback lại Chúng ta phải chọn ghế được xóa, sẽ là ghế số 3,
vì người kia đã đến và chèn trước, sau đó tiến hành chèn tiếp ghế cuối cùng củangười đầu tiên Điều này gây ra những kịch bản khó kiểm soát cũng như làm chậm
đi các yêu cầu đến từ người ding và đây cũng là kịch bản có thé xảy ra thườngxuyên tại hệ thống bán vé
Trang 22Đối với trường hợp trạm dừng trong hệ thống bán vé thì khác, dữ liệu trạmdừng sẽ ít được thêm, xóa sửa, các trạm dừng, điểm dừng thường là cố định và đượcquản lý bởi các cơ quan, tô chức có thấm quyền, loại dữ liệu này cũng không cầnquản lý bởi transaction, nhưng đặc biệt chúng lại cần tìm kiếm nhanh theo tọa độnhững trạm gần nhất so với điểm đi và đến của người dùng Vì vậy, trong hệ thông
bán vé xe của chúng tôi, tất cả dữ liệu sẽ được lưu và quản lý chặt chẽ bởi SQLServer, kết hợp với dữ liệu trạm dừng, điểm dừng được lưu ở Elastic Search Engine
2.4 Real-time web-app với SignalR
Đây là một thư viện mã nguồn trong ASP Net mở được phát triển bởi
Microsoft Thư viện cho phép chúng ta xây dựng web — app nhanh chóng, dé dàng
và hiệu quả với các cú pháp đơn giản SignalR thực sự cần thiết đối với các web —
app ASP Net cần nhận phản hồi nhanh chóng và chủ động từ máy chủ Cách thứchoạt động của signalR khá đơn giản, mỗi client sẽ kết nối và giữ kết nối với một
Hub ở máy chủ (trong tiếng Anh kết nối này được gọi là pipeline), kết nối này cho
phép client và server gọi các phương thức của nhau theo thời gian thực một cách
chủ động thay vì chờ yêu cầu (request) đến từ client
——: P- « Client
le) Send response
Send state h Set state
Trang 23chọn được những ghế mong muốn cũng như hoàn toàn việc đặt 1 cách dé dàng Ví
dụ như một người cần 3 ghế trong 1 chuyến xe và một trong 3 ghế đó đã được đặt
thành công bởi một người khác và khi người muốn đặt 3 ghế tiến hành đặt vé, hệ
thống sẽ trả lỗi ghế x đã được đặt, điều này có thé giảm trải nghiệm người dùng của chúng ta khi một người tiến hành đặt liên tục không được trong khi đã tiến hành
reload website nhiêu lân.
2.5 Cơ chế xác thực sử dụng JSON Web Token (JWT)
Bên cạnh các bài toán chính là cho phép tìm kiếm đa dạng và chọn ghế thời
gian thực thì có một bài toán không thể thiếu ở một website thương mại điện tử đó
là bài toán bảo mật Đề một website thương mại điện tử có thê hoạt động tốt và đảm bảo thông tin được chỉnh sửa đúng cách thì cơ chế xác thực và phân quyền người dùng là không thê thiếu Đề giải quyết bài toán này chúng tôi sẽ sử dụng một cơ chế
dựa trên JWT.
JWT là một các ký tự được máy chủ sinh ra và gửi cho client khi thực hiện
đăng nhập vào hệ thống Thường được lưu trữ ở cookies hoặc local storage, va được
đính kèm vào header của mỗi request người dùng thực hiện Khi một request đến máy chủ, máy chủ tiến hành xác thực token (authentication) sau đó là phân quyền
(authorization) dựa trên JWT này.
23
Trang 24eyJhb6ci01.JTUzT1NiTsTnR5cCT6TkpXVC.J9.eyJzdWTi01TxMjM@ôNTY30DkwTiwibmFtZST6Tkpva {
your-256-bit-secret ) secret base64 encoded
Hinh 2.6: Minh hoa mot JWT
Cấu trúc của một JWT gồm 3 phan: Header, Payload va Signature Phan Header thường chứa các thông tin về kiều của chuỗi ký tự này (là JWT) và thuật
toán mã hóa JWT này Phần payload thường chứa thông tin do máy chủ thêm vào, mỗi cặp key — value trong JWT được gọi là claim Các claim trong phan payload thường là sub (viết tắt của từ subject), name, exp (viết tắt của tir expiration time),
issuer Chúng ta hoàn toàn có thé thêm bat kỳ claim nào mà chúng ta muốn, tuy
nhiên JWT bản chất là để xác thực, không dùng dé chuyển thông tin, mặc khác
chuỗi JWT được mã hóa dựa trên thuật toán base64UrlEncoder, vì vậy có thé được
giải mã dé dang, và những thông tin nhạy cảm như tên đăng nhập, mật khâu sẽ bị lộ khi người khác bắt được gói tin Thêm vào đó, nếu kích thước của một JWT quá lớn
có thể dẫn đến tình trạng bị phân mảnh mà kết hợp lại không đúng khiến máy chủ từ chối yêu cầu Phần thứ 3 của JWT là Signature phần này được tạo ra bằng công thức
[Header].[Payload],[secretkey] được băm bởi thuật toán được mô tả trên phan
Header Vì có kèm theo secret key của server nên chúng ta hoàn toàn có thé kiểm tra tính đúng đắn và toàn vẹn của JWT bằng cách lấy thông tin từ Header và Payload kết hợp với secret key trên server dé băm, sau đó lấy chuỗi này so sánh với phần signature trong JWT.
24
Trang 25JSON WEB TOKEN BASE64URL (payload),
secret)
Hình 2.7: Cấu trúc của một JWT Nhìn chung, JWT dang là cơ chế xác thực mới đang dan thay thé cho session
vi tính dé mở rộng của nó Với session khi hệ thống mở rộng ra với nhiều server thì
hệ thống phải chuyên nhiều yêu cầu từ 1 người dùng đến một máy chủ server duy
nhất, vì session được lưu trong bộ nhớ đệm (cache) của server, nếu không máy chủ
sẽ không tìm thay session id của request trong bộ nhớ đệm của máy chủ Trong khi
đó chỉ cần có secret key một server hoàn toàn có thê giải quyết yêu cầu của client Tuy nhiên, JWT cũng có nhược điểm là kích thước lớn hơn session, nhưng đôi lại
nó được lưu ở client nên cũng sẽ giảm gánh nặng cho server.
25
Trang 261 POST: username và password
Browser Server
Lưu lại refresh_pass
3 GET + token, refresh_ pass Kiểm tra token
Cấp lại nếu hết hạnCấp token và refresh_pass
Lưu lại refresh_pass
i
Hình 2.8: Co chế xác thực được chúng tôi xây dung trong hệ thống bán vé
Đây là cơ chế xác thực được chúng tôi áp dụng trong hệ thống bán vé xe Khi
một người dùng đăng nhập thành công, máy chủ sẽ tiến hành tạo ra 1 token và mật
mã làm mới token có hiệu lực trong vòng 10 phút Một token được sinh ra nên có
thời gian hết hạn của nó, trong hệ thống website là 15 phút, khi một token hết hạn
và mật khẩu được gửi đến máy chủ, máy chủ sẽ tiến hành kiểm tra nếu token đúng nhưng hết hạn và mật khẩu làm mới đúng thì người dùng được cấp mới một token Chúng ta cần có một mật khẩu dé làm mới token, vì nếu chi xét điều kiện đúng và hết hạn dé làm mới thi sẽ phát sinh trường hợp một token lạc từ rất lâu được cấp quyền truy cập vào hệ thống.
2.6 Băm mật khẩu
Trong hệ thống website của chúng tôi, mật khâu của người dùng không được
lưu ở dạng thô mà sẽ được băm trước sau đó mới lưu trữ vào cơ sở dir liệu Tránh
trường hợp rò ri thông tin và mật khẩu của người dừng cũng bị lộ Trong trường hop người dùng dùng một mật khâu cho nhiều tài khoản thì thiệt hại gây ra cho người dùng sẽ còn lớn hơn rất nhiều Bên cạnh đó, mật khẩu dạng thô của người dùng sẽ
được hệ thống cộng thêm một mã ngẫu nhiên nhằm tăng độ mạnh cho những mật khẩu đơn giản Khi một người dùng đăng nhập vào hệ thống website, máy chủ tiến hành tìm mật khâu (đã băm) và chuỗi ngẫu nhiên được lưu trước đó (trong tiếng Anh người ta thường gọi chuỗi này là salt), tiến hành kết hợp salt với mật khẩu của
26
Trang 27người dùng, sau đó băm theo thuật toán đã tạo ra mật khẩu băm trước đó, cuối cùng
tiến hành so khớp 2 mật khẩu này, nếu chúng trùng nhau thì người dùng đăng nhập
nguyen125 Rla 2*as SHA512 0802088 1667 30C8FSDFO4C4DE3692C045E
Hình 2.9: Cơ chế băm mật khẩu trước khi lưu
27
Trang 28Chương 3 PHAN TÍCH VA THIẾT KE HE THONG
3.1 Khao sat hién trang
Hiện nay, một số xe bến xe hoặc nha xe đã áp dụng công nghệ vào quy trình vận hành doanh nghiệp hoặc từng bộ phận nhỏ hơn cụ thể là những website hoặc ứng dụng đặt vé xe dành cho khách hàng đem đến sự tiện lợi và tiết kiệm thời gian trong khâu đặt vé Hai ví dụ trong số đó là website đặt vé xe của xe khách Hoàng
Thủy (http://xekhachhoangthuy.com) website VeXeRe — là một nền tang bán ve cho
các nhà xe đã dang ký (https://vexere.com) và website FutaBus của xe khách
Phương Trang (https://futabus.vn) Thông qua khảo sát về hai khía cạnh của một website là giao điện người dùng và chức năng, tính năng nổi bật, nhìn chung ở trang đặt vé xe dành cho khách hàng, cả hai đều có bố cục giống nhau bao gồm một thanh tìm kiếm với các tham số điểm đi, điểm đến và ngày đi, một bộ lọc kết quả tìm kiếm
và phan nội dung hiền thị các chuyến xe theo kết quả tìm kiếm Song, hệ thống nào
cũng sẽ có những mặt tích cực và hạn chê đôi với trải nghiệm người dùng.
về phần ưu điểm, trang đặt vé của cả 2 website đều có bố cục tỉnh gọn, tập
trung, tối giản cho người dùng dé dang nắm bắt thông tin Các chuyên xe trong kết quả tìm kiếm đều hiện thị tóm tắt các thông tin cần thiết như tên nhà xe phụ trách, loại xe, số ghế còn trống, giá vé, giờ khởi hành và giờ đến đích dự kiến, Khi người dùng chọn đặt chuyến xe, sẽ có minimap các ghế trên xe cho người dùng chọn được ghế ưng ý Ngoài ra, cả hai hệ thống website đều thiết kế responsive dé phù hợp kích thước cho mọi loại thiết bị truy cập.
Về phan hạn chế, trang web đặt vé xe khách Hoàng Thủy thiết kế có phần
theo khuynh hướng “dã chiến”, thiếu sự chỉnh chu khi mà giao diện đơn sắc thiếu sự
sinh động bắt mắt người dùng, một số chức năng trên trang web gặp lỗi hién thị khi thu nhỏ kích thước trình duyệt web như thanh menu Đối với trang web VeXeRe, giao diện chưa được thiết kế responsive hoàn toàn và diện tích dành cho quảng cáo
khá lớn.
28
Trang 29Ở chức năng đặt vé xe, cả hai trang web đều hoạt động tương đối ôn định và
không xảy ra lỗi Khách hàng có thể lựa chọn nhiều phương thức thanh toán khác
nhau mà hệ thống đề xuất Bên cạnh đó vẫn có những hạn chế như trang web không
tiến hành giữ ghế xe khi khách hang đang chọn ghế (cập nhật dit liệu ghế theo thời gian thực) Và khi chọn điểm đi và điểm đến người dùng không thé tùy chỉnh địa danh theo ý muốn mà phải chọn theo danh sách của hệ thống Ngoài ra, khách hàng không thé giữ ghế trong chuyên xe như một giỏ hàng ở các website nay.
Một số hình ảnh các website tham khảo:
Trang 30Bến Tre - TP.Hồ Chí Minh Bến Tre - TP.Hồ Chí Minh
Ben xe Mien lay
LỊCH TRÌNH CHUYẾN ĐI Q Bến xe Miền Tay
LICH TRÌNH CHUYỂN ĐI
Hình 3.3: Lỗi hiển thị responsive của trang web xe khách Hoàng Thùy
> Bài toán đặt ra:
Thông qua phần khảo sát các hệ thống website đặt vé xe, có thể nhận thấy rằng khi chọn điểm đi và điểm đến người dùng sẽ phải chọn hoặc nhập thông tin giống như trong danh sách các địa điểm có sẵn Danh sách hién thị chỉ dựa trên kết quả truy xuất điểm đầu và điểm cuối của một chuyến xe Nếu người dùng nhập/chọn điểm đến khác với điểm đến của chuyến xe và trên thực tế 2 địa điểm có
vị trí lân cận, rất gần nhau thì hệ thống sẽ không trả về chuyến xe phù hợp Mục tiêu của đề tài nghiên cứu là hệ thống website đưa ra trạm dừng phù hợp trong hệ thống cho địa điểm người dùng nhập vào dựa trên khoảng cách địa lý giữa 2 địa điểm này.
30
Trang 31Đồng thời hệ thống sẽ cập nhật thời gian thực tình trạng các ghế ngồi trên xe khi
khách hàng đang đặt vé Điều này giảm thiểu khả năng một trong 2 khách phải thực hiện lại quy trình đặt vé khi chọn cùng 1 ghế.
3.2 Phân tích yêu cầu hệ thống
3.2.1 Phan tích yêu cầu người dùng
Về phía khách hàng đặt vé, giao diện cần trực quan, dễ nhìn, dễ sử dụng Khách hàng có thé đăng ký tài khoản sử dung và được dam bảo bảo mật thông tin, đồng thời cho phép xem và cập nhật các thông tin cá nhân cũng như là lịch sử đặt vé
tại hệ thống Giao diện cần có thanh menu điều hướng dé người dùng dễ dang nắm
bắt và thao tác đặt vé Và chức năng tìm kiếm các chuyên xe cần có bộ lọc và bộ sắp xếp được tích hợp đề người dùng tìm thấy được kết quả mong muốn một cách nhanh chóng Một chuyên xe cần hiển thị cụ thé rõ ràng, đầy đủ các thông tin cần thiết và sơ đồ hệ thống ghế trên xe kèm các chú giải để người dùng xem xét khi chọn lựa Việc lựa chọn ghế cũng cần được cập nhật dir liệu theo thời gian thực giữa các người dùng nhằm hạn chế lỗi xảy ra trên hệ thống khi đặt vé và tiết kiệm thời
gian của khách hàng Ngoài ra đối với các khách hàng không có tài khoản vẫn có
thê đặt được vé xe trên hệ thống.
3.2.2 Phan tích yêu cầu nhân viên
Bên cạnh hệ thống đặt vé, các nhân viên trực thuộc có thể sử dụng tài khoản
đăng nhập dé quản lý hệ thống Và tùy thuộc vào vi trí và vai trò của từng nhân viên
mà sẽ được quản trị viên phân quyền và đảm nhiệm cho các chức năng cụ thé Mỗi một chức năng đều đảm bảo có các tác vụ truy xuất, thêm mới, cập nhật và xóa bỏ Nhân viên có thé cập nhật thông tin cá nhân của bản thân Hệ thống quản trị còn cho
phép các nhân viên có thể bán vé cho khách hàng trực tiếp tại quầy và chức năng
đặt vé đều có các tiện ích giống như hệ thống của khách hàng.
31
Trang 323.2.3 Phân tích yêu cầu quản trị
Quản trị viên quản lý chung các thông tin như các nhà xe trực thuộc, chuyến
xe khả dụng và người dùng trên hệ thống Các thông tin và trạng thái hoạt động có
thé được cập nhật dé dang và nhanh chóng Các quản trị viên có thé phân quyền chức năng cho từng nhóm người dùng trên hệ thống.
3.3 Thiết kế hệ thống
3.3.1 Mô hình hoạt động chung
SQLServer & Firebase !
+ Máy chủ (server): Đây là máy chủ sẽ tiếp nhận và xử lý yêu cầu người
dùng được cai đặt theo mô hình MVC (Model-View-Controller) Trong đó, Model
là nơi giao tiếp với các cơ sở dữ liệu khi cần thiết, Controller là nơi tiếp nhận các yêu cầu từ người dùng sau đó thực hiện gọi đến View dé lay dữ liệu ra (hoặc thêm
vào cơ sở dit liệu), sau đó Controller sẽ đây dữ liệu hién thị sang View View tiến
hành kết hợp dữ liệu và mã razor biên dịch sang mã html bang Razor Engine sau đó
đây dữ liệu về phía người dùng.
+ Cơ sở dt liệu: Day là nơi lưu trữ toàn bộ dữ liệu của hệ thống website.
Toàn bộ dữ liệu trừ hình ảnh sẽ được lưu ở máy chủ SQL Server, dữ liệu upload ảnh
32
Trang 33từ phía người dùng sẽ lưu ở Firebase, và bản sao các dữ liệu trạm dừng diém dừng
sẽ được lưu ở Elastic Search Server.
33
Trang 343.3.2 Sơ đồ use-case tổng quát
Trang 353.3.3 Danh sách các actor và mục tiêu
Bảng 3.1: Bảng danh sách các actor và mục tiêu
STT Actor Muc tiéu
Đăng nhập Quản lý toàn bộ hệ thống như quản ly nhà
1 Bến xe xe, quản lý kế hoạch, quản lý quầy bán vé, quản lý
người dùng, quản lý doanh thu.
Đăng nhập Sử dụng những chức năng mà hệ thống
2 Nhà xe cung cấp dé hoạt động chạy xe như đăng ký kế hoạch
quản lý xe, chuyến xe và quản lý doanh thu nhà xe
3 Nhân viên bán vé | Sử dụng chức năng bán vé tại quây.
Đăng nhập, đăng ký dé sử dụng hệ thống như mua vé
4 Khách hàng =- : ad 5 5
xe, xem lại lịch sử mua vé.
Sử dụng chức năng quét mã QR để kiểm tra vé xe
Lưu trữ, truy vẫn thông | Thêm nhà xe.
UCOI Quản lý nhà xe tin về nhà xe (doanh | Sửa nhà xe.
nghiệp, vận tai) Xóa nhà xe.
UC02 | Quản lý kế hoạch
Lưu trữ, thực hiện các
truy vấn thông tin về kế hoạch lưu thông của | Lưu trữ kế hoạch.
các nhà xe Các thông | Duyệt kế hoạch.
tin quản lý bao gồm:
nhà xe nào, ngày nào
35
Trang 36chạy, số chuyến chạy,
tuyên đường nào.
Lưu trữ, truy vẫn thông
tin về các quầy bán vé | Thêm quây bán.
` tại bến xe như nhà xe|Sửa quầy bán.
UC03 | Quản lý quây bán vé ` `
nào bán tại quây | Giao quây bán cho
nào.Đông thời phân bổ | các nhà xe.
quay bán cho nhà xe.
Lưu trữ, tạo mới người
dùng sử dụng hệ thống
quản lý bán vé như | Thêm người dùng.
quản trị viên quản lý | Sửa người dùng.
UC04 | Quản lý người dùng | cho các nhà xe, nhân | Phân quyền người
viên soát vé, nhân viên | dùng.
bán vé, đồng thời quản | Xóa người dùng.
lý các khách hàng đăng
ký.
Thực hiện tính toán
tổng doanh thu theo ,
Thông kê doanh
UCOS | Quan lý doanh thu tháng, quý, năm của
tùng nhà xe hoặc toàn mm
bộ nhà xe.
Lưu trữ, truy vấn thông
UCOG | Quản lý xe tin về xe của các nhà | Thêm, xóa, sửa xe.
xe.
Lưu trữ, truy vấn thông | Thêm, xóa, sửa các
, tin về chuyến xe chạy | chuyến xe dựa trên
UC07 | Quản lý chuyên xe
của nhà xe Được tạo ra
dựa trên kế hoạch đã
kê hoạch của nhà
Xe.
36
Trang 37đăng ký thành công với
bến xe Sau khi tạo nhà
xe có thể cập nhật lại
xe, tài xế, lơ xe đối với
các chuyến xe được tạo
trước đê bán vé sớm.
UC08 Bán vé tại quây
Các nhân viên của các
nhà xe bán vé trực tiếp tai quay của bến xe,
nhân viên thuộc nhà xe
nào chỉ có thé chon bán tai quay được phân cũng như chuyến xe
của nhà xe đó.
Quản lý và cho phép thao tác bán
về tai quây
UC09 Đăng nhap/Dang ky
Cho phép khach hang
đăng ký các thông tin
đi, điêm
11 UCII Quản lý vé xe
Cho phép khách hàng xem lại các vé xe đã
đặt.
37
Trang 38phép lơ xe xem thông
tin vé điện tử của
khách hàng để kiểm
tra.
Các nhà xe thực hiện
đăng tạo và gửi kế
hoạch chạy cho bến xe Các kế hoạch có thể
được nhập từ form
hoặc từ template excel.
14 UCI4 Tạo vé điện tử
Hệ thông sử dung các
API của Viettel, VNPT
giúp tạo vé điện tử sau
khi đã hoàn tất thanh
toán.
38
Trang 39Use Case Name Quản lý nhà xe
Use Case ID UCOI
Description Bến xe sau khi đăng nhập có thê sử dụng chức năng quản lý nhà
xe của hệ thống như lưu trữ, truy vấn thông tin về nhà xe (doanh
nghiệp, vận tải)
Actor Bên xe
Preconditions Bến xe đăng nhập vào hệ thống thành công.
Tài khoản người dùng đã được tạo sẵn.
Tài khoản của người dùng được phân quyên.
Postconditions Thực hiện thành công các chức năng mong muôn.
Hệ thống sẽ ghi nhận, lưu trữ các thay đồi.
39
Trang 40Use Case Name Quản lý kế hoạch
Use Case ID UC02
Description Bến xe sau khi đăng nhập có thé sử dung chức năng quan lý kế
hoạch như lưu trữ, thực hiện các truy vấn thông tin về kế hoạch lưu thông của các nhà xe Các thông tin quản lý bao gồm: nhà xe
nào, ngày nào chạy, số chuyến chạy, tuyến đường nào.
Actor Bến xe
Preconditions Bến xe đăng nhập vào hệ thống thành công.
Tài khoản người dùng đã được tạo sẵn.
Tài khoản của người dùng được phân quyên.
40