Khóa Luận Tốt Nghiệp: Xây Dựng Hệ Thống Website Bán Vé Xe Khách Sử Dụng ASP.NET CORE 5

Luận văn tốt nghiệp kỹ thuật nghiên cứu 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, điều tra thực trạng, phân tích số liệu,

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2022

87
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

1. CHƯƠNG 1: LÝ DO CHỌN ĐỀ TÀI. ĐỐI TƯỢNG NGHIÊN CỨU. MỤC TIÊU ĐỀ TÀI. PHƯƠNG PHÁP THỰC HIỆN. BỐ CỤC KHÓA LUẬN

1.1. Lý do chọn đề tài

1.2. Đối tượng nghiên cứu

1.3. Mục tiêu đề tài

1.4. Phương pháp thực hiện

1.5. Bố cục khóa luận

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. .NET CORE 5

2.2. Nền tảng Google maps API

2.2.1. Autocomplete

2.3. Elastic Search Engine

3. CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.1. Khảo sát hiện trạng

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

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

3.3. Thiết kế hệ thống

3.3.1. Mô hình hoạt động chung

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

3.3.3. Danh sách các actor và mục tiêu

3.3.4. Danh sách các use-case

3.3.5. Quản lý nhà xe

3.3.6. Quản lý quầy vé

3.3.7. Quản lý người dùng

3.3.8. Quản lý doanh thu

3.3.9. Quản lý xe khách

3.3.10. Quản lý chuyến xe

3.3.11. Bán vé tại quầy

3.3.12. Đăng ký/Đăng nhập

3.3.13. Mua vé

3.3.14. Kiểm tra vé xe

3.3.15. Đăng ký kế hoạch

3.3.16. Bảng quan hệ trong hệ thống

3.3.17. Mô tả các bảng dữ liệu

4. CHƯƠNG 4: KẾT QUẢ XÂY DỰNG HỆ THỐNG WEBSITE BÁN VÉ

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. Hướng phát triển

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Tổng Quan Về Xây Dựng Hệ Thống Website Bán Vé Xe Khách

Xây dựng hệ thống website bán vé xe khách là một nhu cầu cấp thiết trong bối cảnh ngành du lịch đang phục hồi. Hệ thống này không chỉ giúp người dùng dễ dàng đặt vé mà còn hỗ trợ nhà xe trong việc quản lý vé và hành khách. Việc áp dụng công nghệ hiện đại như ASP.NET CORE 5 giúp tối ưu hóa quy trình bán vé, nâng cao trải nghiệm người dùng và đảm bảo tính bảo mật thông tin.

1.1. Lợi Ích Của Hệ Thống Bán Vé Trực Tuyến

Hệ thống bán vé trực tuyến mang lại nhiều lợi ích cho cả nhà xe và hành khách. Người dùng có thể dễ dàng tìm kiếm và đặt vé từ bất kỳ đâu, trong khi nhà xe có thể quản lý vé và hành khách một cách hiệu quả hơn.

1.2. Công Nghệ Sử Dụng Trong Hệ Thống

Hệ thống được phát triển trên nền tảng ASP.NET CORE 5, kết hợp với các công nghệ như BootstrapSignalR để đảm bảo giao diện thân thiện và khả năng cập nhật dữ liệu theo thời gian thực.

II. Thách Thức Trong Việc Xây Dựng Hệ Thống Bán Vé Xe Khách

Mặc dù việc xây dựng hệ thống bán vé xe khách mang lại nhiều lợi ích, nhưng cũng gặp phải không ít thách thức. Các vấn đề như bảo mật thông tin, khả năng mở rộng và tính tương thích với nhiều thiết bị là những yếu tố cần được chú trọng.

2.1. Vấn Đề Bảo Mật Thông Tin

Bảo mật thông tin là một trong những ưu tiên hàng đầu khi xây dựng hệ thống. Việc sử dụng công nghệ JWT (JSON Web Token) giúp bảo vệ thông tin người dùng và đảm bảo tính an toàn cho các giao dịch.

2.2. Khả Năng Mở Rộng Hệ Thống

Hệ thống cần có khả năng mở rộng để đáp ứng nhu cầu ngày càng tăng của người dùng. Việc áp dụng kiến trúc microservices trong phát triển hệ thống sẽ giúp dễ dàng mở rộng và bảo trì.

III. Phương Pháp Xây Dựng Hệ Thống Bán Vé Xe Khách Hiệu Quả

Để xây dựng một hệ thống bán vé xe khách hiệu quả, cần áp dụng các phương pháp và công nghệ hiện đại. Việc phân tích yêu cầu người dùng và thiết kế hệ thống một cách hợp lý là rất quan trọng.

3.1. Phân Tích Yêu Cầu Người Dùng

Phân tích yêu cầu người dùng giúp xác định các tính năng cần thiết cho hệ thống. Điều này bao gồm việc tìm hiểu nhu cầu của hành khách và nhà xe để phát triển các chức năng phù hợp.

3.2. Thiết Kế Giao Diện Người Dùng

Giao diện người dùng cần được thiết kế thân thiện và dễ sử dụng. Việc áp dụng Bootstrap giúp tạo ra giao diện responsive, phù hợp với nhiều loại thiết bị.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống Bán Vé Xe Khách

Hệ thống bán vé xe khách không chỉ là một công cụ hỗ trợ mà còn là một giải pháp toàn diện cho ngành vận tải. Việc áp dụng công nghệ hiện đại giúp cải thiện trải nghiệm của hành khách và tối ưu hóa quy trình quản lý cho nhà xe.

4.1. Cải Thiện Trải Nghiệm Khách Hàng

Hệ thống cho phép hành khách dễ dàng tìm kiếm và đặt vé, đồng thời theo dõi trạng thái chuyến xe một cách nhanh chóng và tiện lợi.

4.2. Tối Ưu Hóa Quản Lý Vé

Nhà xe có thể quản lý vé và hành khách một cách hiệu quả hơn thông qua hệ thống, từ đó giảm thiểu sai sót và tăng cường hiệu quả kinh doanh.

V. Kết Luận Và Hướng Phát Triển Tương Lai Của Hệ Thống

Hệ thống bán vé xe khách sử dụng ASP.NET CORE 5 không chỉ đáp ứng nhu cầu hiện tại mà còn mở ra nhiều cơ hội phát triển trong tương lai. Việc tiếp tục cải tiến và cập nhật công nghệ sẽ giúp hệ thống ngày càng hoàn thiện hơn.

5.1. Định Hướng Phát Triển Công Nghệ

Công nghệ sẽ tiếp tục phát triển, và hệ thống cần được cập nhật để đáp ứng các xu hướng mới trong ngành vận tải và thương mại điện tử.

5.2. Tăng Cường Tính Năng Bảo Mật

Bảo mật thông tin sẽ luôn là một yếu tố quan trọng. Việc áp dụng các biện pháp bảo mật tiên tiến sẽ giúp hệ thống an toàn hơn trong tương lai.

10/07/2025
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

Trích đoạn nội dung tài liệu

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 Chương2.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ủa mì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ụ ứng dụ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ăng bảo trì nâng cấp khi cần thiết.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 theo thời gian thực, ASP.NET Core hỗ trợ mạnh mẽ việc tích hợp SignalR — một công nghệ 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. 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ác ngườ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 đa dạ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 request miễn phí. 1 mart 1 Martin Place 1 Martin Street 1 Martin Place Mort Australi 1 Martin Street 1 Martins Avenue Google Hình 2.2: Dự đoán điểm đến dựa trên dữ liệu nhập của người dùng 19 Tuy nhiên, hệ thống có kế hoạch sẽ không phụ thuộc nhiều vào nền tảng nà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ếm trong 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ới Google 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.

Elastic Search Engine Elastic Search là một engine chuyên dùng để tim kiếm dữ liệu, hoạt động như một web server lưu trữ dữ liệu cung cấp khả năng truy cập gọn gàng cho client thông qua các giao thức RESTful. Do các điểm dữ liệu (document) trong Elastic Search 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ủa website 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.3: Logo thương hiệu của Elastic Search 20 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 Search engine 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ật sau đó, kèm theo đó Elastic Search engine không hỗ trợ transaction, điều này đặc biệ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 ta hoà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ủa ngườ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ường xuyên tại hệ thống bán vé. MaEqiaie Pak ee rine Pat mm, Austral lễ a / \ ots k Pat — > ie a = .ˆ Da hi Hình 2.4: Minh họa quét các trạm dừng theo bán kính cho trước 21 Đố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ạm dừ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à được quả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ần quả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 SQL Server, kết hợp với dữ liệu trạm dừng, điểm dừng được lưu ở Elastic Search Engine.

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ức hoạ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 SignalR Hub Lecturer's response update Send response Set state —=. Send response Client_n Hình 2.5: Mô hình hoạt động của SignalR Đối với bài toán đặt vé xe, đặc biệt trong các giờ cao điểm, các chuyến xe được đặt nhiều và nhanh, nếu không có hệ thống real-time thì người dùng sẽ khó 22 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. 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 HEADER: eyJhb6ci01.JTUzT1NiTsTnR5cCT6TkpXVC.ey JzdWTi01TxMjM@ôNTY30DkwTiwibmFtZST6Tkpva { "alg": "HS256", G4gRG91T1wiaWF9TjoxNTE2MjM5MDTyfQ. Sf1Kx “typ”: "JWT" wRJSMeKKF2QT4fwpMe.JY_adQssw5c } PAYLOAD: { "sub": "1234567896", "name": "John Doe", "iat": 1516239822 } VERIFY SIGNATURE HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload) , 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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Xây Dựng Hệ Thống Website Bán Vé Xe Khách Sử Dụng ASP.NET CORE 5" cung cấp một cái nhìn tổng quan về quy trình phát triển một hệ thống website bán vé xe khách hiệu quả bằng công nghệ ASP.NET Core 5. Tài liệu này không chỉ hướng dẫn chi tiết về các bước thiết kế và lập trình mà còn nhấn mạnh những lợi ích mà hệ thống mang lại cho người dùng, như khả năng quản lý vé, tối ưu hóa trải nghiệm khách hàng và tăng cường hiệu suất hoạt động.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo thêm tài liệu Xây dựng website bán cây sử dụng asp net core mvc, nơi bạn sẽ tìm thấy những ứng dụng thực tiễn của ASP.NET Core trong việc phát triển các loại website thương mại khác. Ngoài ra, tài liệu Phân tích và thiết kế hệ thống mua bán sách cũng sẽ giúp bạn hiểu rõ hơn về quy trình thiết kế hệ thống thương mại điện tử. Cuối cùng, tài liệu Building an e commerce website for fashion shop totoro store sẽ cung cấp thêm góc nhìn về việc xây dựng website thương mại điện tử cho các lĩnh vực khác nhau.

Những tài liệu này không chỉ giúp bạn nắm vững kiến thức mà còn mở ra nhiều cơ hội để áp dụng vào thực tiễn.