1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Công nghệ thông tin: 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

87 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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ác giả Le Hoang Nguyen, Nguyen Le Vinh
Người hướng dẫn THS. Vo Ngoc Tan
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 30,01 MB

Nội dung

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 3

THONG 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 4

LOI 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 5

MỤ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 6

3.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 8

DANH 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 9

Hì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 10

DANH 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 11

Mô 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 12

DANH 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 13

TOM 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 14

MỞ ĐÀ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 15

Chươ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 16

xe 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 17

chuyế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 18

Chươ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 19

2.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 20

Tuy 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 21

Ví 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 23

chọ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 24

eyJhb6ci01.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 25

JSON 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 26

1 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 27

ngườ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 28

Chươ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 30

Bế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 32

3.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 33

từ 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 34

3.3.2 Sơ đồ use-case tổng quát

Trang 35

3.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 36

chạ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 38

phé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 39

Use 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 40

Use 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

Ngày đăng: 02/10/2024, 05:29