1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website quản lý đặt vé xe của DNVT cúc tư

83 26 0

Đ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

Định dạng
Số trang 83
Dung lượng 2,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN (11)
    • 1. Đặt vấn đề (11)
    • 2. Nhiệm vụ đồ án (12)
    • 3. Cấu trúc đồ án (13)
  • CHƯƠNG II: LÝ THUYẾT VỀ MÔ HÌNH MVC (15)
    • 1. Giới thiệu (15)
      • 1.1. Lịch sử ra đời (15)
      • 1.2. Mô hình MVC cơ bản (15)
      • 1.3. Một vài đặc tính trong ASP.NET MVC (17)
    • 2. Sự khác biệt với WebForm (17)
    • 3. URL routing (Định tuyến URL) (19)
      • 3.1. Nhiệm vụ của hệ thống định tuyến trong ASP.NET MVC (19)
      • 3.2. Các quy tắc định tuyến URL mặc định trong ASP.NET MVC Web (19)
    • 4. Các ưu điểm và nhược điểm của ASP.NET MVC (20)
      • 4.1. Ưu điểm (20)
      • 4.2. Nhược điểm (20)
  • CHƯƠNG III: PHÂN TÍCH & THIẾT KẾ (21)
    • 1. Danh sách Actor (21)
    • 2. Danh sách Use Case (21)
    • 3. Sơ đồ Use Case tổng quát (22)
    • 4. Mô tả và biểu đồ Use Case (23)
    • 5. Thiết kế Cơ sở dữ liệu (69)
  • CHƯƠNG IV: HIỆN THỰC (75)
    • 1. Cấu trúc website (75)
    • 2. Yêu cầu cài đặt (76)
    • 3. Một số giao diện của Website (77)
  • CHƯƠNG V: TỔNG KẾT (81)
    • 1. Một số kết quả đạt được (81)
    • 2. Hướng phát triển đồ án (82)
  • TÀI LIỆU THAM KHẢO (83)

Nội dung

TỔNG QUAN

Đặt vấn đề

Sau gần 15 năm hoạt động trên tuyến Tp Tuy Hòa – Tp Hồ Chí Minh, Doanh nghiệp Vận tải và Du lịch Cúc Tư, do bà Nguyễn Thị Kim Cúc sáng lập, chính thức thành lập vào ngày 25-10-2005 Doanh nghiệp này có nguồn gốc từ HTX vận tải cơ giới đường bộ Phú Yên và được xây dựng bằng vốn tích lũy của gia đình.

Hiện nay, với sự phát triển của doanh nghiệp, khách hàng có thể dễ dàng đặt vé xe khách trực tuyến một cách nhanh chóng và tiết kiệm, mà không cần phải đến phòng vé và chờ đợi.

Doanh nghiệp cần phát triển một ứng dụng trực tuyến cho phép khách hàng đặt vé xe và thanh toán dễ dàng Thông tin đặt vé và khách hàng sẽ được cập nhật liên tục, giúp quản lý và nhân viên theo dõi thông tin bất cứ lúc nào Khách hàng chỉ cần truy cập vào website, chọn mục đặt vé, nhập điểm đi, điểm đến và ngày đi để hệ thống hiển thị danh sách xe, giờ chạy và số chỗ còn trống Sau khi chọn xe phù hợp, khách hàng sẽ thấy danh sách chỗ ngồi và xác nhận để đưa vào giỏ vé Ngoài ra, khách hàng có thể đặt vé cho nhiều xe khác nhau trên cùng một tuyến trong cùng ngày và giờ đi.

Nếu khách hàng không tìm được chỗ ở xe có giờ đi mong muốn, họ có thể sử dụng chức năng “Đặt chờ vé” Chức năng này cho phép khách hàng đăng ký để được ưu tiên đi xe khi có người hủy vé, giúp họ có cơ hội sở hữu chỗ ngồi vào giờ mình muốn.

Khách hàng cần đăng nhập vào hệ thống để đặt vé Sau khi đặt, vé phải được thanh toán qua tài khoản ngân hàng hoặc tại phòng vé trong thời gian quy định; nếu không, hệ thống sẽ tự động hủy vé và trả ghế về trạng thái trống Ngoài ra, website cũng hỗ trợ thanh toán trực tuyến.

Ket-noi.com kho tài liệu miễn phí

Paypal Ngoài ra, khách hàng có thể xem thông tin về những vé mình đã đặt, tra cứu lịch sử Đặt vé của mình

Hệ thống cần thiết lập tính linh hoạt và các ràng buộc cho việc đặt vé của khách hàng, chẳng hạn như hiển thị các ghế còn trống sau khi người dùng chọn xe từ danh sách lịch trình Đồng thời, hệ thống sẽ ngăn cản người dùng đăng ký vào ghế đã được đặt trước bởi người khác.

Nhân viên quản lý có quyền cập nhật lịch trình xe chạy và kiểm tra thông tin chi tiết của từng tuyến xe, bao gồm ngày giờ khởi hành Họ có thể xác định ghế nào còn trống và ghế nào đã được đặt, đồng thời hiển thị sơ đồ ghế trên xe để thuận tiện cho hành khách.

Nhiệm vụ đồ án

Xây dựng website đặt vé xe online bao gồm các phân hệ chính như: phân hệ đặt vé, phân hệ quản lý và điều hành, cùng với phân hệ báo cáo thống kê, nhằm tối ưu hóa trải nghiệm người dùng và nâng cao hiệu quả quản lý.

Các phân hệ có thể được sử dụng tập trung hay riêng lẽ tùy vào quyền truy cập hệ thống của người dùng Cụ thể như sau:

Phân hệ đặt vé: được sử dụng bởi khách hàng Có các chức năng:

Phân hệ quản lý, điều hành:

Quản lý dữ liệu danh mục: Các danh mục cần quản lý bao gồm:

- Danh mục Hình thức giảm giá

- Quản lý lịch trình: Lập lịch trình xe chạy

Ket-noi.com kho tài liệu miễn phí

Phân hệ báo cáo thống kê:

- Thống kê doanh thu theo ngày

- Thống kê số lượng vé bán, số lượng vé hủy

- Báo cáo doanh thu theo xe, tuyến.

Cấu trúc đồ án

Toàn bộ nội dung đồ án được tổ chức thành 5 chương, bao gồm:

Bắt đầu bằng việc đặt ra vấn đề của đồ án, nhiệm vụ của đồ án

Lý thuyết về Mô hình MVC và mô tả tóm tắt các công nghệ được sử dụng trong đồ án

Chương 3: Phân tích và Thiết kế

Chương này tập trung vào việc phân tích và thiết kế hệ thống qua ba vấn đề chính: thiết kế tầng dữ liệu, thiết kế tầng xử lý và thiết kế đối tượng giao tiếp người dùng Bằng cách áp dụng phương pháp phân tích thiết kế hướng đối tượng, chúng tôi lập danh sách các use case và actor của hệ thống, đồng thời phân tích và thiết kế các lược đồ use case, cũng như chi tiết hóa hoạt động của từng use case.

Phần thiết kế dữ liệu của hệ thống bao gồm việc ánh xạ các bảng dữ liệu từ các lớp đối tượng, nhằm mô tả chi tiết các bảng trong hệ thống.

Phần thiết kế hoạt động xử lý chính trong ứng dụng bao gồm mô tả các hàm xử lý của các lớp đối tượng theo mô hình ba lớp Bài viết sẽ trình bày thiết kế sơ đồ phối hợp hoạt động tổng thể giữa các đối tượng ở ba tầng: tầng giao tiếp cơ sở dữ liệu, tầng xử lý và tầng giao tiếp người dùng.

Phần thiết kế của chương trình chính là cốt lõi chính cho việc cài đặt và thử nghiệm chương trình trong chương kế tiếp

Ket-noi.com kho tài liệu miễn phí

Chương 3 trình bày cách xử lý ba lớp trong môi trường ASP.NET sử dụng ngôn ngữ C#.NET Tiếp theo, chương 4 sẽ giới thiệu kết quả cài đặt hệ thống thông qua các giao diện người dùng của ứng dụng mô hình MVC.

Tổng kết lại, bài viết đã nêu rõ những ưu và nhược điểm của hệ thống, đồng thời đề xuất các phương án khắc phục những nhược điểm đó Hướng phát triển của đề tài cũng được trình bày cụ thể, kèm theo danh sách tài liệu tham khảo để người đọc có thể tìm hiểu thêm.

Ket-noi.com kho tài liệu miễn phí

LÝ THUYẾT VỀ MÔ HÌNH MVC

Giới thiệu

Vào tháng 11 năm 2007, tại hội thảo ALT.NET ở Austin, Texas, giám đốc điều hành Scott Guthrie của Microsoft đã giới thiệu nền tảng phát triển web MVC mới, được xây dựng trên ASP.NET, nhằm đáp ứng các chỉ trích trước đó.

ASP.NET MVC nổi bật với sự tách biệt rõ ràng giữa các thành phần, mặc dù mô hình MVC không phải là điều mới mẻ, khi lần đầu tiên được giới thiệu vào năm 1978 trong dự án Smalltalk của Xerox PARC Hiện nay, MVC trở thành kiến trúc phổ biến cho các ứng dụng web nhờ vào những lợi ích vượt trội mà nó mang lại.

Người dùng tương tác với ứng dụng MVC thông qua một chu trình liên tục: khi thực hiện hành động, ứng dụng sẽ cập nhật mô hình dữ liệu và gửi lại trang đã được thay đổi cho người dùng Quá trình này giúp ứng dụng web xử lý hiệu quả nhiều yêu cầu và phản hồi.

Các ứng dụng web cần kết hợp nhiều công nghệ như cơ sở dữ liệu, HTML và mã xử lý, thường được tổ chức thành nhiều lớp Những mẫu thiết kế này đã phát triển thành các khái niệm trong MVC, với ASP.NET MVC thực hiện một phiên bản hiện đại của MVC, đặc biệt phù hợp cho các ứng dụng web.

1.2 Mô hình MVC cơ bản:

ASP.NET MVC là một framework phát triển ứng dụng web hiện đại của Microsoft, kết hợp mô hình Model – View – Controller (MVC) với công nghệ tiên tiến nhất Nó mang lại hiệu quả và tính nhỏ gọn, đồng thời là lựa chọn thay thế cho nền tảng WebForm trong việc phát triển ứng dụng web sử dụng ASP.NET.

MVC là viết tắt của các chữ cái đầu của Model – View - Controller

Ket-noi.com kho tài liệu miễn phí

Hình 1: Mô hình MVC cơ bản

MVC chia giao diện UI thành 3 phần tương ứng:

Trong các ứng dụng MVC, Models là thành phần chịu trách nhiệm lưu trữ thông tin và trạng thái của các đối tượng, thường được ánh xạ từ bảng trong cơ sở dữ liệu.

Views là các thành phần đảm nhận việc hiển thị thông tin cho người dùng qua giao diện, thường lấy dữ liệu từ các thành phần Models.

Controllers chịu trách nhiệm xử lý các tác động giao diện và thao tác với models, đồng thời chọn view phù hợp để hiển thị trên màn hình Trong kiến trúc MVC, view chỉ có chức năng hiển thị giao diện, trong khi việc điều khiển dòng nhập xuất của người dùng vẫn do Controllers đảm nhận.

Sử dụng phương pháp MVC mang lại lợi ích lớn nhờ vào sự phân chia rõ ràng giữa các thành phần models, views và controllers trong ứng dụng Cấu trúc này không chỉ giúp tổ chức mã nguồn một cách hiệu quả mà còn làm cho việc kiểm tra lỗi trở nên dễ dàng hơn.

Ket-noi.com kho tài liệu miễn phí

1.3 Một vài đặc tính trong ASP.NET MVC:

Clearly delineate relationships to enhance TDD (Test Driven Development) capabilities Unit testing can be conducted within the application without the need to run Controllers alongside the ASP.NET process, allowing the use of any unit testing framework such as NUnit, MBUnit, or MS Test.

The MVC framework is designed for scalability, allowing for easy customization and replacement of components, such as the choice of a specific view engine, routing policies, and parameter serialization.

Bài viết này trình bày về việc sử dụng ánh xạ URL mạnh mẽ để xây dựng ứng dụng với các URL sạch và không cần phần mở rộng Ví dụ, địa chỉ /Products/Edit/4 có thể ánh xạ đến hành động "Edit" của lớp điều khiển ProductControllers, trong khi địa chỉ /Blog/SomeTopic thực hiện hành động tương ứng.

“Display Topic” của lớp điều khiển BlogEngineController)

The ASP.NET MVC Framework supports ASP.NET files such as ASPX, ASCX, and Master, designating them as "view templates." This allows for the utilization of various ASP.NET features, including master page nesting, snippets, server controls, templates, data binding, and localization However, it eliminates postback and interactive server-side processing, shifting the interaction to a Controller class, thereby removing view state and the traditional page lifecycle.

The ASP.NET MVC Framework fully supports a range of security features inherent to ASP.NET, including form and Windows authentication, URL authorization, membership and role management, as well as output and data caching Additionally, it provides robust session and profile state management, a comprehensive configuration system, and a flexible provider architecture.

Sự khác biệt với WebForm

ASP.NET WebForm sử dụng ViewState để quản lý trạng thái, với mỗi trang đều có lifecycle riêng Hệ thống này hỗ trợ postback và sử dụng các web controls cùng các events để thực hiện hành động tương tác với người dùng Tuy nhiên, điều này dẫn đến việc ASP.NET WebForm thường xử lý chậm.

Ket-noi.com kho tài liệu miễn phí

ASP.NET MVC Framework được chia thành ba thành phần chính: Models, Views và Controllers Tất cả các tương tác của người dùng với Views sẽ được xử lý thông qua Controllers, loại bỏ hoàn toàn khái niệm postback, lifecycle và events.

Kiểm tra và gỡ lỗi trong ASP.NET yêu cầu chạy toàn bộ tiến trình của ứng dụng, và bất kỳ thay đổi nào về ID của controls đều có thể ảnh hưởng đến hiệu suất Đối với ASP.NET MVC Framework, việc sử dụng unit test giúp đánh giá dễ dàng cách mà các Controller hoạt động.

Tính năng ASP.NET 2.0 ASP.NET MVC

Kiến trúc mô hình WebForm ->

Kiến trúc sử dụng việc phân chia chương trình thành Controllers, Models, Views

Sử dụng cú pháp của WebForm, tất cả các sự kiện và controls do server quản lý

Các sự kiện được điều khiển bởi controllers, các controls không do server quản lý

Sử dụng hầu hết các công nghệ truy cập dữ liệu trong ứng dụng

Phần lớn dùng LINQ to SQL class để tạo mô hình truy cập đối tượng

Debug chương trình phải thực hiện tất cả bao gồm cả lớp truy cập dữ liệu, sự hiển thị, điều khiển các controls

Debug có thể sử dụng các unit test kiểm tra các phương thức trong controller

Tốc độ phân tải chậm khi trong trang có quá nhiều các controls vì ViewState quá lớn

Phân tải nhanh hơn do không phải quản lý các ViewState để quản lý các control trong trang

Tương tác với javascript khó khăn vì các controls được điều khiển bởi server

Tương tác với javascript dễ dàng vì các đối tượng không do server quản lý điều khiển

Cấu trúc địa chỉ URL có dạng

.aspx?&

Cấu trúc địa chỉ rành mạch theo dạng Controllers/Action/Id

Ket-noi.com kho tài liệu miễn phí

URL routing (Định tuyến URL)

3.1 Nhiệm vụ của hệ thống định tuyến trong ASP.NET MVC:

ASP.NET MVC Framework sở hữu một hệ thống định tuyến URL linh hoạt, cho phép xác định các quy tắc ánh xạ địa chỉ URL trong ứng dụng Hệ thống định tuyến này có hai mục đích chính.

 Xây dựng một tập hợp các URL đi vào ứng dụng và định tuyến chúng tới các Controller và thực thi các phương thức Action để xử lý

 Xây dựng các URL gửi đi mà có thể gọi ngược trở lại Controllers/Actions (ví dụ: form posts, liên kết và các lời gọi AJAX)

Sử dụng quy tắc ánh xạ URL giúp điều khiển các URL vào và ra, tăng tính linh hoạt cho lập trình ứng dụng Điều này cho phép thay đổi cấu trúc URL, chẳng hạn như từ /Catalog thành /Products, chỉ cần điều chỉnh một tập hợp quy tắc ánh xạ mà không cần viết lại mã trong Controllers và Views.

3.2 Các quy tắc định tuyến URL mặc định trong ASP.NET MVC Web Application:

Khi tạo ứng dụng ASP.NET MVC trong Visual Studio, một lớp ứng dụng ASP.NET tên là Global.asax sẽ được tạo ra, chứa cấu hình các quy tắc định tuyến URL Các định tuyến được xây dựng thông qua phương thức RegisterRoutes (RouteCollection routes), và khi ứng dụng khởi động, phương thức Application_Start() trong Global.asax.cs sẽ gọi RegisterRoutes để thiết lập bảng định tuyến.

Mặc định định tuyến URL trong ASP.NET MVC Framework có cấu trúc dạng: Controllers/ControllerAction/Id

In an ASP.NET MVC Web Application, the default controller is HomeController, the default action is Index, and the default ID is empty This means that when accessing a website built using the ASP.NET Web Application template, the URL http://localhost/ corresponds to http://localhost/Home/Index/.

Ket-noi.com kho tài liệu miễn phí

When an ASP.NET MVC Web Application receives a URL, the MVC Framework evaluates the routing rules in the RouteTable.Routes collection to determine which Controller will handle the request.

MVC Framework chọn Controller bằng cách định giá các quy tắc trong bảng định tuyến theo trật tự đã có sẵn.

Các ưu điểm và nhược điểm của ASP.NET MVC

Phát triển phần mềm là một lĩnh vực chuyên nghiệp, cho phép phân chia công việc cho nhiều nhóm với các kỹ năng đa dạng, từ thiết kế mỹ thuật, lập trình cho đến quản lý cơ sở dữ liệu.

Bảo trì hệ thống trở nên dễ dàng hơn nhờ vào việc phân chia thành các lớp, cho phép thay đổi các thành phần mà không ảnh hưởng đến toàn bộ chương trình Sự thay đổi có thể được giới hạn trong từng lớp hoặc chỉ tác động đến lớp liền kề, giúp giảm thiểu rủi ro và tăng tính linh hoạt trong quá trình bảo trì.

Việc mở rộng chức năng cho từng lớp trong mô hình ba lớp sẽ dễ dàng hơn so với các phương pháp phân chia khác.

Effective support for test-driven development involves implementing automated unit tests that identify and verify requirements before coding begins.

 Đối với dự án nhỏ: Cồng kềnh, tốn thời gian phát triển

 Tốn kém nhiều tài nguyên cho sự cân bằng, do tốn thời gian trung chuyển DTO (Data Transfer Object) giữa các layers

Ket-noi.com kho tài liệu miễn phí

PHÂN TÍCH & THIẾT KẾ

Danh sách Actor

1 Quản trị Quản trị hệ thống

2 Nhân viên Quản lý Tuyến, Xe, Lịch trình

3 Khách hàng Đặt vé và Quản lý vé của mình

4 Khách viếng thăm Tra cứu Tuyến

Danh sách Use Case

STT Use Case Mô tả

1 Đăng nhập Use case Đăng nhập hệ thống

2 Phục hồi mật khẩu Use case phục hồi lại mật khẩu đăng nhập hệ thống

3 Đăng xuất Use case Đăng xuất hệ thống

4 Tra cứu vé Use case cho phép Tra cứu thông tin để Đặt vé

5 Đặt vé Use case cho phép Đặt vé xe

6 Thanh toán Use case cho phép thực hiện thanh toán tiền vé

7 Hủy vé Use case cho phép Hủy vé xe đã đặt

8 Xác nhận Vé đã Thanh toán Use case cho phép Xác nhận Vé đã Thanh toán

9 Xử lý Khách chờ Use case cho phép Xử lý Khách hàng đã đặt chờ vé

10 Quản lý Tài khoản Use case cho phép đăng ký tài khoản mới, sửa thông tin Tài khoản

11 Quản lý Danh mục địa điểm Use case cho phép thêm, xóa, sửa, xem thông tin Xe

12 Quản lý Hình thức giảm giá Use case cho phép thêm, xóa, sửa, xem thông tin Tuyến

13 Quản lý Lịch trình Use case cho phép thêm, xóa, sửa, xem thông tin Lịch trình

14 Quản lý Loại Vé Use case cho phép thêm, xóa, sửa, xem thông tin Loại Vé

15 Quản lý Loại Xe Use case cho phép thêm, xóa, sửa, xem thông tin Loại Xe

16 Quản lý Tuyến Use case cho phép thêm, xóa, sửa, xem thông tin Hình thức giảm giá

17 Quản lý Xe Use case cho phép thêm, xóa, sửa, xem thông tin Danh mục địa điểm

18 Thống kê Use case thực hiện báo cáo thống kê

Sơ đồ Use Case tổng quát

Hình 2: Use case Tổng quát

Mô tả và biểu đồ Use Case

Description Cách Actor đăng nhập vào hệ thống thông qua tài khoản của mình

Actor Quản trị, Nhân viên, Khách hàng

Preconditions Actor đã có tài khoản trong hệ thống và chưa đăng nhập vào hệ thống

Conditions Actor đã đăng nhập vào hệ thống

1 Actor nhập vào Tên đăng nhập và Mật khẩu

2 Actor chọn nút Đăng nhập

3 Hệ thống kiểm tra Tên đăng nhập và Mật khẩu ở DB

4 Đăng nhập thành công, hệ thống chuyển về trang chủ

Exception 3.1 Tên đăng nhập hoặc Mật khẩu sai: hệ thống thông báo đăng nhập không thành công và yêu cầu nhập lại

Hình 3: Biểu đồ Tuần tự cho Use case Đăng nhập

USE CASE PHỤC HỒI MẬT KHẨU

Name Phục hồi mật khẩu

Description Cách Actor phục hồi mật khẩu của mình

Preconditions Actor đã có tài khoản trong hệ thống và chưa đăng nhập

Conditions Actor nhận được email chứa mật khẩu mới từ hệ thống

1 Actor nhập Tên đăng nhập hoặc Email

2 Hệ thống kiểm tra Tên đăng nhập hoặc Email phải được nhập vào Tên đăng nhập không chứa ký tự đặc biệt, Email đúng cú pháp

3 Hệ thống kiểm tra Tên đăng nhập hoặc Email ở DB

3.1 Tên đăng nhập hoặc Email tồn tại trong hệ thống, hệ thống tự động gửi Email chứa mật khẩu mới tới địa chỉ mail đã đăng ký 3.2 Tên đăng nhập hoặc Email không tồn tại trong hệ thống, thông báo không tồn tại tài khoản và kết thúc Use Case

Hình 4: Biểu đồ Tuần tự cho Use case Phục hồi mật khẩu

Description Cách Actor đăng xuất khỏi hệ thống

Actor Quản trị, Nhân viên, Khách hàng

Preconditions Actor đang đăng nhập hệ thống

Conditions Actor đã đăng xuất ra khỏi hệ thống

1 Actor chọn chức năng Đăng xuất

2 Hệ thống hủy phiên làm việc hiện tại và tự động chuyển về trang chủ

USE CASE QUẢN LÝ TÀI KHOẢN

Hình 5: Use Case Quản Lý Tài khoản

16 Hình 6: Biểu đồ Hoạt động của Use Case Quản lý Tài khoản

USE CASE ĐĂNG KÝ TÀI KHOẢN MỚI

Name Đăng ký Tài khoản mới

Description Use case mô tả cách Actor đăng ký tài khoản mới

Preconditions Actor chưa có tài khoản trong hệ thống

Actor đăng ký tài khoản thành công

Main flow 1 Use case sẽ được thực hiện khi Actor chọn chức năng Đăng ký

2 Hệ thống hiển thị trang Đăng ký

3 Actor nhập vào các thông tin: tên đăng nhập, mật khẩu, xác nhận mật khẩu, họ tên, email, điện thoại, giới tính, ngày sinh, chứng minh thư, địa chỉ, mã xác nhận Sau đó click nút Đăng ký

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin tài khoản mới xuống DB

6 Chuyển qua trang thông báo tạo tài khoản mới thành công và tự động đăng nhập vào hệ thống, chuyển tới trang Thông báo đăng ký tài khoản mới thành công

Exception 4.1 Kiểm tra tên đăng nhập bắt buộc phải nhập, không chứa ký tự đặc biệt, chưa được đăng ký, nếu không yêu cầu Actor chọn tên đăng nhập khác

4.2 Kiểm tra độ dài mật khẩu phải lớn hơn hoặc bằng 6 ký tự, không chứa ký tự đặc biệt và xác nhận mật khẩu phải giống với mật khẩu, nếu không yêu cầu nhập lại

4.3 Kiểm tra email phải đúng cú pháp, chưa tồn tại, nếu không yêu cầu nhập lại

4.4 Kiểm tra số điện thoại chỉ chứa số, chưa tồn tại, nếu không yêu cầu nhập lại

Hình 7: Biểu đồ Tuần tự cho Use case Đăng ký Tài khoản mới

USE CASE SỬA THÔNG TIN TÀI KHOẢN

Name Sửa Thông tin Tài khoản

Description Use case mô tả cách Actor Sửa Thông tin tài khoản của mình

Actor Khách hàng, Nhân viên, Quản trị

Preconditions Actor đã đăng nhập vào hệ thống

Actor thay đổi thông tin tài khoản thành công

Main flow 1 Use case sẽ được thực hiện khi Actor chọn chức năng Sửa

2 Hệ thống hiển thị trang Sửa Thông tin Cá nhân

3 Actor chỉ được phép sửa các thông tin sau: mật khẩu, email, họ tên, điện thoại, địa chỉ Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống cập nhật lại thông tin tài khoản xuống DB

6 Thông báo cập nhật thành công

Exception 4.5 Kiểm tra độ dài mật khẩu có nhỏ hơn 6 ký tự, có chứa ký tự đặc biệt và không giống với xác nhận mật khẩu, yêu cầu nhập lại Nếu bỏ trống thì không cập nhật lại mật khẩu

4.6 Kiểm tra email chưa đúng cú pháp, đã tồn tại và không giống với xác nhận địa chỉ email, yêu cầu nhập lại

4.7 Kiểm tra số điện thoại chưa đúng cú pháp, đã tồn tại, yêu cầu nhập lại

4.8 Kiểm tra họ tên, địa chỉ chưa được nhập, yêu cầu nhập đầy đủ

Hình 8: Biểu đồ Tuần tự cho Use case Sửa Thông tin Tài khoản

USE CASE TRA CỨU VÉ

Description Use case mô tả cách Actor tra cứu vé để đặt vé xe

Actor Khách hàng, nhân viên, quản trị

Preconditions Actor đã đăng nhập

Actor tìm được vé thích hợp để đặt vé

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Đặt vé trực tuyến

2 Actor chọn điểm đi, điểm đến, ngày đi và nhấn nút tìm kiếm

3 Hệ thống truy vấn dữ liệu thỏa mãn yêu cầu tìm kiếm và hiển thị ra danh sách các xe, giờ chạy, số lượng chỗ còn trống

4 Actor chọn xe còn chỗ trống có giờ chạy mà mình muốn

5 Hệ thống hiển thị sơ đồ chỗ của xe được chọn

Exception 4.1 Nếu Actor không chọn được chỗ ở xe có giờ chạy mình muốn, thì có thể chọn chức năng Đặt chờ vé ở xe có giờ chạy mình muốn Để được đưa vào danh sách chờ bắt buộc Actor phải đăng nhập vào hệ thống Kết thúc Use case

Hình 9: Biểu đồ Tuần tự cho Use case Tra cứu vé

USE CASE ĐẶT VÉ XE

Description Cách Actor đặt vé xe

Actor Khách hàng, Nhân viên, Quản trị

Preconditions Actor đã đăng nhập

Actor tạo được Giỏ vé đặt

Main flow 1 Actor chọn điểm đi, điểm đến, ngày đi và nhấn nút Tìm kiếm

2 Hệ thống truy vấn dữ liệu thỏa mãn yêu cầu tìm kiếm và hiển thị ra danh sách các xe, giờ chạy, số lượng chỗ còn trống

3 Actor chọn xe còn chỗ trống có giờ chạy mà mình muốn

4 Hệ thống hiển thị sơ đồ chỗ của xe được chọn

5 Actor chọn chỗ còn trống muốn đặt, có thể chọn nhiều chỗ trống trong một lần đặt Chọn xong nhấn nút Đưa vào Giỏ vé, để có thể chọn chỗ trống ở xe khác trong cùng điểm đi, điểm đến, ngày đi và giờ đi

6 Chọn xong Giỏ vé, Actor chọn thanh toán giỏ vé, hệ thống chuyển tới trang hình thức thanh toán và chuyển sang Use case thanh toán Use case kết thúc

Exception 3.1 Nếu Actor không chọn được chỗ ở xe có giờ chạy mình muốn, thì có thể chọn chức năng Đặt chờ vé ở xe có giờ chạy mình muốn Để được đưa vào danh sách chờ bắt buộc Actor phải đăng nhập vào hệ thống Kết thúc Use case

Hình 10: Biểu đồ Tuần tự cho Use case Đặt vé xe

Description Mô tả các hình thức và cách thanh toán tiền vé xe đã đặt

Actor Khách hàng, Nhân viên, Quản trị

Preconditions Actor đã đăng nhập vào hệ thống và giỏ vé đã có

Actor thanh toán vé thành công

Hệ thống hiển thị trang thanh toán với ba hình thức thanh toán sau khi người dùng chọn thanh toán giỏ vé Người dùng sẽ lựa chọn một trong ba hình thức thanh toán này.

- Trực tiếp khi lấy vé

- Chuyển khoản qua ngân hàng

- Thanh toán trực tuyến bằng Paypal

1 Actor chọn hình thức thanh toán trực tiếp khi lấy vé

1.1 Hệ thống hiển thị Thông tin Khách hàng, quy định về điều kiện vận chuyển và thanh toán, yêu cầu nhập thông tin tên người sẽ thanh toán tiền, số điện thoại và mã bảo mật của hệ thống 1.2 Actor nhập thông tin, mã bảo mật và xác nhận đặt vé

1.3 Hệ thống ghi nhận thông tin đặt vé vào DB

1.4 Hệ thống thực hiện gửi email thông báo đặt vé và hiển thị mẫu phiếu giữ chỗ Actor có thể in phiếu này để thực hiện thanh toán tại phòng vé

2 Actor chọn hình thức thanh toán chuyển khoản qua ngân hàng 2.1 Hệ thống hiển thị danh sách các tài khoản ngân hàng mà Actor có thể chuyển khoản thanh toán tiền vé của mình, hệ thống yêu cầu chọn Ngân hàng và nhập họ tên, số tài khoản của Actor và mã bảo mật

2.2 Actor nhập thông tin, mã bảo mật và xác nhận đặt vé

2.3 Hệ thống ghi nhận thông tin đặt vé vào DB

2.4 Hệ thống thực hiện gửi email thông báo đặt vé và hiển thị

24 mẫu phiếu giữ chỗ Actor có thể in phiếu này để nhận vé tại phòng vé

3 Actor chọn hình thức thanh toán trực tuyến bằng Tài khoản Paypal

3.1 Hệ thống thực hiện chuyển tiếp thông tin phiếu đặt (hóa đơn) đến trang website của dịch vụ thanh toán

3.2 Actor thực hiện thanh toán với dịch vụ thanh toán

Exception 1.2.1 Actor nhập mã bảo mật bị sai, yêu cầu nhập lại

1.2.2 Actor không thực hiện xác nhận đặt vé, hệ thống hủy quá trình đặt vé

2.2.1 Actor nhập mã bảo mật bị sai, yêu cầu nhập lại

2.2.2 Actor không thực hiện xác nhận đặt vé, hệ thống hủy quá trình đặt vé

Hình 11: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán trực tiếp)

Hình 12: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán qua Ngân hàng)

Hình 13: Biểu đồ Tuần tự cho Use case Thanh toán (Thanh toán Paypal)

USE CASE HỦY VÉ XE

Description Use case mô tả cách Actor hủy vé xe đã đặt

Actor Khách hàng, nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống

Actor hủy vé xe thành công

Main flow A Actor chọn hủy vé

1 Use case sẽ thực hiện khi Actor chọn hành động hủy vé của vé cần hủy từ danh sách vé đã đặt

2 Hệ thống xác nhận hành động hủy vé của Actor

3 Actor xác nhận hành động hủy của mình

B Hệ thống tự động hủy vé

Nếu khách hàng không thanh toán vé trong thời gian quy định, hệ thống sẽ tự động hủy vé, chuyển đổi trạng thái của vé sang trạng thái hủy.

Exception 3.1 Xác nhận Hủy vé, hệ thống sẽ cập nhật lại tình trạng của Vé về trạng thái hủy

3.2 Hủy hành động Hủy vé, và kết thúc Use case

Hình 14: Biểu đồ Tuần tự cho Use case Hủy Vé

USE CASE XÁC NHẬN VÉ ĐÃ THANH TOÁN

Name Xác nhận vé đã thanh toán

Description Use case mô tả cách Actor xác nhận vé được đặt đã thanh toán

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống

Actor xác nhận vé được đặt đã thanh toán thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Xác nhận vé đã thanh toán

2 Hệ thống hiển thị danh sách vé đã được đặt, có cho phép tìm

28 kiếm theo các điều kiện như: ngày đặt, ngày đi, tên tuyến, tên khách hàng, số điện thoại của khách hàng

3 Actor chọn Xem Chi tiết vé đặt từ danh sách để thực hiện xác nhận thanh toán

4 Hệ thống hiển thị Chi tiết vé đã được chọn

5 Actor chọn nút Xác nhận để thực hiện Xác nhận thanh toán

6 Hệ thống cập nhật lại tình trạng cho vé là đã thanh toán

Hình 15: Biểu đồ Tuần tự cho Use case Xác nhận Vé đã Thanh toán

USE CASE XỬ LÝ KHÁCH CHỜ

Name Xử Lý Khách Chờ

Description Use case mô tả cách Actor Xử Lý Khách Chờ

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Xử Lý Khách

Chờ trên menu Quản lý

2 Hệ thống hiển thị Danh sách Khách Chờ

3 Actor chọn Tạo Vé Đặt cho khách chờ sau khi có xác nhận đặt vé từ khách chờ này

4 Hệ thống thực hiện Tạo Vé Đặt

5 Hệ thống cập nhật lại tình trạng đã xử lý cho khách chờ được chọn và thông báo xử lý thành công

Exception 4.1 Hệ thống không tạo được vé đặt, thông báo lỗi và quay lại trang Danh sách Khách Chờ

Hình 16: Biểu đồ tuần tự cho Use Case Xử lý Khách chờ

USE CASE QUẢN LÝ DANH MỤC ĐỊA ĐIỂM

Hình 17: Biểu đồ Hoạt động của Use case Quản lý Danh mục địa điểm

USE CASE TẠO MỚI ĐỊA ĐIỂM

Description Use case mô tả cách Actor tạo Địa Điểm

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới Địa Điểm thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới Địa Điểm

2 Hệ thống hiển thị trang tạo mới Địa Điểm

3 Actor nhập các thông tin: Tên địa điểm, ghi chú Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Địa Điểm mới vào DB

6 Chuyển tới trang Danh sách Địa Điểm

Exception 4.1 Kiểm tra Tên Địa Điểm chưa được nhập vào, đã tồn tại, yêu cầu nhập lại và không quá 50 ký tự

4.2 Kiểm tra Ghi Chú phải được nhập không quá 50 ký tự

Hình 18: Biểu đồ tuần tự cho Use Case Tạo mới Địa điểm

USE CASE SỬA THÔNG TIN ĐỊA ĐIỂM

Name Sửa thông tin Địa Điểm

Description Use case mô tả cách Actor sửa thông tin Địa Điểm

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Địa Điểm thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin Địa Điểm

2 Hệ thống hiển thị trang Sửa thông tin Địa Điểm

3 Actor chỉ được phép sửa các thông tin: Tên địa điểm và ghi chú Sau đó click nút Cập nhật

4 Hệ thống kiểm tra thông tin sửa đổi

5 Hệ thống cập nhật thông tin Địa Điểm vào DB

6 Chuyển tới trang chi tiết thông tin địa điểm

Exception 5.1 Kiểm tra Tên Địa Điểm chưa được nhập vào, đã tồn tại, yêu cầu nhập lại và không quá 50 ký tự

5.2 Kiểm tra Ghi Chú nhập không quá 50 ký tự

Hình 19: Biểu đồ tuần tự cho Use Case Sửa thông tin Địa điểm

USE CASE XÓA THÔNG TIN ĐỊA ĐIỂM

Name Xóa thông tin Địa Điểm

Description Use case mô tả cách Actor Xóa thông tin của Địa Điểm

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Địa Điểm thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin Địa Điểm

2 Hệ thống hiển thị trang xác nhận hành động xóa thông tin Địa Điểm của Actor

3 Actor xác nhận hành động Xóa của mình

4 Chuyển tới trang danh sách địa điểm

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của Địa Điểm trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Danh Mục Địa Điểm và kết thúc Use case

Hình 20: Biểu đồ tuần tự cho Use Case Xóa thông tin Địa điểm

USE CASE QUẢN LÝ TUYẾN

Hình 21: Biểu đồ hoạt động của Use Case Quản lý Tuyến

USE CASE TẠO MỚI TUYẾN

Description Use case mô tả cách Actor tạo Tuyến

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới Tuyến thành công

Main flow 7 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới

8 Hệ thống hiển thị trang tạo mới Tuyến

9 Actor nhập các thông tin: tên tuyến, địa điểm đi, địa điểm đến và ghi chú Sau đó click nút Lưu

10 Hệ thống kiểm tra thông tin Actor nhập vào

11 Hệ thống lưu thông tin Tuyến mới vào DB

12 Chuyển tới trang Danh sách Tuyến

Exception 4.1 Kiểm tra Tên Tuyến chưa được nhập vào, đã tồn tại, yêu cầu nhập lại

4.2 Kiểm tra địa điểm đi, địa điểm đến phải được chọn, nếu chưa yêu cầu chọn đầy đủ, địa điểm đi và địa điểm đến không được trùng nhau

Hình 22: Biểu đồ tuần tự cho Use Case Tạo mới Tuyến

USE CASE SỬA THÔNG TIN TUYẾN

Name Sửa thông tin Tuyến

Description Use case mô tả cách Actor sửa thông tin Tuyến

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Tuyến thành công

Main flow 7 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

8 Hệ thống hiển thị trang Sửa thông tin Tuyến

9 Actor chỉ được phép sửa các thông tin: tên tuyến, địa điểm đi, địa điểm đến và ghi chú Sau đó click nút Cập nhật

10 Hệ thống kiểm tra thông tin sửa đổi

11 Hệ thống cập nhật thông tin Tuyến vào DB

12 Chuyển tới trang chi tiết tuyến

Exception 5.1 Kiểm tra Tên Tuyến chưa được nhập vào, đã tồn tại, yêu cầu nhập lại

5.2 Kiểm tra địa điểm đi, địa điểm đến phải được chọn, nếu chưa yêu cầu chọn đầy đủ, địa điểm đi và địa điểm đến không được trùng nhau

Hình 23: Biểu đồ tuần tự cho Use Case Sửa thông tin Tuyến

USE CASE XÓA THÔNG TIN TUYẾN

Name Xóa thông tin Tuyến

Description Use case mô tả cách Actor Xóa thông tin của Tuyến

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Tuyến thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin

2 Hệ thống hiển thị trang xác nhận hành động xóa thông tin Tuyến của Actor

3 Actor xác nhận hành động Xóa của mình

4 Chuyển tới trang danh sách tuyến

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của

Tuyến trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Tuyến và kết thúc Use case

Hình 24: Biểu đồ tuần tự cho Use Case Xóa thông tin Tuyến

USE CASE QUẢN LÝ XE

Hình 25: Biểu đồ Hoạt động của Use Case Quản lý Xe

USE CASE TẠO MỚI XE

Description Use case mô tả cách Actor tạo mới Xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới xe thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới Xe

2 Hệ thống hiển thị trang tạo mới Xe

3 Actor nhập các thông tin: Số xe, Loại xe, Số lượng ghế Sau đó click vào nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Xe mới vào DB

6 Chuyển tới trang Danh sách Xe

Exception 4.1 Kiểm tra Số xe chưa được nhập vào, đã tồn tại, yêu cầu nhập lại và không quá 10 ký tự

4.2 Kiểm tra Loại xe chưa được nhập vào, yêu cầu nhập lại và không quá 30 ký tự

4.3 Kiểm tra Số lượng ghế nhập vào phải là số nếu chưa được nhập, yêu cầu nhập lại

Hình 26: Biểu đồ Tuần tự cho Use case Tạo mới Xe

USE CASE SỬA THÔNG TIN XE

Name Sửa thông tin Xe

Description Use case mô tả cách Actor sửa thông tin Xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Xe thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

2 Hệ thống hiển thị trang Sửa thông tin Xe

3 Actor chỉ được phép sửa các thông tin: Số xe, Loại xe, Số lượng ghế Sau đó click vào nút Lưu

4 Hệ thống kiểm tra thông tin sửa đổi

5 Hệ thống cập nhật thông tin Xe vào DB

6 Chuyển tới trang xem chi tiết Xe

Exception 5.1 Kiểm tra Số xe chưa được nhập vào, đã tồn tại, yêu cầu nhập lại và không quá 10 ký tự

5.2 Kiểm tra Loại xe chưa được nhập vào, yêu cầu nhập lại và không quá 30 ký tự

5.3 Kiểm tra Số lượng ghế nhập vào phải là số, nếu chưa được nhập, yêu cầu nhập lại

Hình 27: Biểu đồ Tuần tự cho Use case Sửa thông tin Xe

USE CASE XÓA THÔNG TIN XE

Name Xóa thông tin xe

Description Use case mô tả cách Actor Xóa thông tin của xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Xe thành công

Main flow 1 User case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin

2 Hệ thống hiển thị trang xác nhận hành động Xóa thông tin Xe của Actor

3 Actor xác nhận hành động xóa của mình

4 Chuyển tới trang Danh sách Xe

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của Xe trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Xe và kết thúc Use case

Hình 28: Biểu đồ Tuần tự cho Use case Xóa thông tin Xe

USE CASE QUẢN LÝ LỊCH TRÌNH

Hình 29: Biểu đồ Hoạt động của Use case Quản lý Lịch trình

USE CASE TẠO MỚI LỊCH TRÌNH

Description Use case mô tả cách Actor tạo Lịch trình

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới Lịch trình thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới Lịch trình

2 Hệ thống hiển thị trang tạo mới Lịch trình

3 Actor nhập các thông tin: Tên Lịch trình, Ngày đi, Giờ đi và chọn Số Xe từ danh sách có sẵn Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Lịch trình mới vào DB

6 Chuyển tới trang danh sách lịch trình

Exception 4.1 Kiểm tra Tên Lịch trình chưa được nhập vào, đã tồn tại, yêu cầu nhập lại

4.2 Kiểm tra Ngày đi và Giờ đi phải được nhập, nếu chưa yêu cầu nhập đầy đủ

Hình 30: Biểu đồ tuần tự cho Use Case Tạo mới Lịch Trình

USE CASE SỬA THÔNG TIN LỊCH TRÌNH

Name Sửa thông tin Lịch trình

Description Use case mô tả cách Actor sửa thông tin Lịch trình

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Lịch trình thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

2 Actor chọn Link Sửa thông tin Lịch trình trên danh sách Lịch trình được hiển thị

3 Hệ thống hiển thị trang Sửa thông tin Lịch trình

4 Actor chỉ được phép sửa các thông tin: Số Xe, Ngày đi và Giờ đi Sau đó click nút Cập nhật

5 Hệ thống kiểm tra thông tin sửa đổi

6 Hệ thống cập nhật thông tin Lịch trình vào DB

7 Chuyển tới trang chi tiết lịch trình

Exception 5.1 Kiểm tra Ngày đi và Giờ đi chưa được nhập vào, yêu cầu nhập lại

Hình 31: Biểu đồ tuần tự cho Use Case Sửa thông tin Lịch Trình

USE CASE XÓA THÔNG TIN LỊCH TRÌNH

Name Xóa thông tin Lịch trình

Description Use case mô tả cách Actor Xóa thông tin của Lịch trình

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Lịch trình thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn link Xóa thông tin Lịch trình trên danh sách Lịch trình được hiển thị

2 Hệ thống xác nhận hành động xóa thông tin Lịch trình của Actor

3 Actor xác nhận hành động xóa của mình

4 Chuyển tới trang danh sách lịch trình

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại tình trạng của Lịch trình là Inactive và cập nhật vào DB

3.2 Hủy hành động Xóa, và kết thúc Use case

Hình 32: Biểu đồ tuần tự cho Use Case Xóa thông tin Lịch Trình

USE CASE QUẢN LÝ LOẠI VÉ

Hình 33: Biểu đồ Hoạt động của Use Case Quản lý Loại Vé

USE CASE TẠO MỚI LOẠI VÉ

Description Use case mô tả cách Actor tạo Loại vé

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới Loại vé thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới Loại vé

2 Hệ thống hiển thị trang tạo mới Loại vé

3 Actor nhập các thông tin: Tên Loại vé, Giá, Ngày áp dụng và Ghi chú Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Loại vé mới vào DB

6 Chuyển tới trang Danh sách Loại vé

Exception 4.1 Kiểm tra Tên Loại vé chưa được nhập vào, yêu cầu nhập lại

4.2 Kiểm tra Giá nhập vào phải là số và Ngày áp dụng phải được nhập, nếu chưa yêu cầu nhập lại

Hình 34: Biểu đồ tuần tự cho Use case Tạo mới Loại vé

USE CASE SỬA THÔNG TIN LOẠI VÉ

Name Sửa thông tin Loại vé

Description Use case mô tả cách Actor sửa thông tin Loại vé

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Loại vé thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

2 Hệ thống hiển thị trang Sửa thông tin Loại vé

3 Actor chỉ được phép sửa các thông tin: Tên loại vé, Giá vé, Ngày áp dụng và Ghi chú Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin sửa đổi

5 Hệ thống cập nhật thông tin Loại vé vào DB

6 Chuyển tới trang chi tiết loại vé

Exception 4.1 Kiểm tra Tên Loại vé chưa được nhập vào, yêu cầu nhập lại

4.2 Kiểm tra Giá nhập vào phải là số và Ngày áp dụng phải được nhập, nếu chưa yêu cầu nhập lại

Hình 35: Biểu đồ Tuần tự cho Use case Sửa thông tin Loại vé

USE CASE XÓA THÔNG TIN LOẠI VÉ

Name Xóa thông tin Loại vé

Description Use case mô tả cách Actor Xóa thông tin của Loại vé

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Loại vé thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin

2 Hệ thống hiển thị trang xác nhận hành động xóa thông tin Loại vé của Actor

3 Actor xác nhận hành động xóa của mình

4 Chuyển tới trang danh sách loại vé

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của

Loại vé trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Loại vé và kết thúc Use case

Hình 36: Biểu đồ Tuần tự cho Use case Xóa thông tin Loại vé

USE CASE QUẢN LÝ LOẠI XE

Hình 37: Biểu đồ hoạt động của Use Case Quản lý Loại Xe

Hình 38: Biểu đồ Tuần tự cho Use case Tạo mới Loại Xe

USE CASE TẠO MỚI LOẠI XE

Description Use case mô tả cách Actor tạo Loại Xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor tạo mới Loại Xe thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới

2 Hệ thống hiển thị trang tạo mới Loại Xe

3 Actor nhập các thông tin: tên Loại Xe Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Loại Xe mới vào DB

6 Chuyển tới trang Danh sách Loại Xe

Exception 4.1 Kiểm tra Tên Loại Xe chưa được nhập vào, đã tồn tại, yêu cầu nhập lại

52 Hình 39: Biểu đồ Tuần tự cho Use case Sửa Thông tin Loại Xe

USE CASE SỬA THÔNG TIN LOẠI XE

Name Sửa thông tin Loại Xe

Description Use case mô tả cách Actor sửa thông tin Loại Xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Loại Xe thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

2 Hệ thống hiển thị trang Sửa thông tin Loại Xe

3 Actor chỉ được phép sửa các thông tin: tên loại xe Sau đó click nút Cập nhật

4 Hệ thống kiểm tra thông tin sửa đổi

5 Hệ thống cập nhật thông tin Loại Xe vào DB

6 Chuyển tới trang chi tiết Loại Xe

Exception 5.1 Kiểm tra Tên Loại Xe chưa được nhập vào, đã tồn tại, yêu cầu nhập lại

Hình 40: Biểu đồ Tuần tự cho Use case Xóa Thông tin Loại Xe

USE CASE XÓA THÔNG TIN LOẠI XE

Name Xóa thông tin Loại Xe

Description Use case mô tả cách Actor Xóa thông tin của Loại Xe

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Loại Xe thành công

Main flow 5 Use case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin

6 Hệ thống hiển thị trang xác nhận hành động xóa thông tin Loại

7 Actor xác nhận hành động Xóa của mình

8 Chuyển tới trang danh sách Loại Xe

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của

Loại Xe trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Loại Xe và kết thúc Use case

USE CASE QUẢN LÝ HÌNH THỨC GIẢM GIÁ

Hình 41: Biểu đồ hoạt động Use Case Quản lý Hình thức giảm giá

USE CASE TẠO MỚI HÌNH THỨC GIẢM GIÁ

Name Tạo Mới Hình thức Giảm Giá

Description Use case mô tả cách Actor tạo Hình thức Giảm Giá

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Post Conditions Actor tạo mới Hình thức Giảm Giá thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Tạo mới

2 Hệ thống hiển thị trang tạo mới Hình thức Giảm Giá

3 Actor nhập các thông tin: tên hình thức giảm giá, số lượng vé và phần trăm Sau đó click nút Lưu

4 Hệ thống kiểm tra thông tin Actor nhập vào

5 Hệ thống lưu thông tin Hình thức Giảm Giá mới vào DB

6 Chuyển tới Danh sách Hình thức Giảm Giá

Exception 4.1 Kiểm tra Tên Hình thức Giảm Giá chưa được nhập vào, yêu cầu nhập lại và không quá 50 ký tự

4.2 Kiểm tra Phần trăm không được rỗng và chỉ nhập được số

Hình 42: Biểu đồ Tuần tự cho Use case Tạo mới Hình thức giảm giá

Hình 43: Biểu đồ Tuần tự cho Use case Sửa thông tin Hình thức giảm giá

USE CASE SỬA THÔNG TIN HÌNH THỨC GIẢM GIÁ

Name Sửa thông tin Hình thức Giảm Giá

Description Use case mô tả cách Actor sửa thông tin Hình thức Giảm Giá

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor cập nhật lại thông tin Hình thức Giảm Giá thành công

Main flow 1 Use case sẽ thực hiện khi Actor chọn Chức năng Sửa thông tin

2 Hệ thống hiển thị trang Sửa thông tin Hình thức Giảm Giá

3 Actor chỉ được phép sửa các thông tin: tên hình thức giảm giá, số lượng vé và phần trăm Sau đó click nút Cập nhật

4 Hệ thống kiểm tra thông tin sửa đổi

5 Hệ thống cập nhật thông tin Hình thức Giảm Giá vào DB

6 Chuyển tới trang chi tiết hình thức giảm giá

Exception 4.1 Kiểm tra tên hình thức chưa được nhập vào, yêu cầu nhập lại và không quá 50 ký tự

4.2 Kiểm tra phần trăm không được phép rỗng và chỉ nhập được số

USE CASE XÓA THÔNG TIN HÌNH THỨC GIẢM GIÁ

Name Xóa thông tin Hình thức Giảm Giá

Description Use case mô tả cách Actor Xóa thông tin của Hình thức Giảm

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor xóa thông tin Hình thức Giảm Giá thành công

Main flow 9 Use case sẽ thực hiện khi Actor chọn chức năng Xóa thông tin

10 Hệ thống hiển thị trang xác nhận hành động xóa thông tin Hình thức Giảm Giá của Actor

11 Actor xác nhận hành động Xóa của mình

12 Chuyển tới trang danh sách hình thức giảm giá

Exception 3.1 Xác nhận Xóa, hệ thống sẽ cập nhật lại trường Đã xóa của

Hình thức Giảm Giá trong DB là True

3.2 Hủy hành động Xóa, quay về trang danh mục Hình thức Giảm Giá và kết thúc Use case

Hình 44: Biểu đồ Tuần tự cho Use case Xóa Hình thức giảm giá

Name Báo cáo thống kê

Description Use case mô tả cách Actor xem báo cáo thống kê

Actor Nhân viên, quản trị

Preconditions Actor đã đăng nhập vào hệ thống và có quyền là Quản trị

Actor có được kết quả cần thống kê

Main flow 1 Use case sẽ thực hiện khi Actor chọn chức năng Báo cáo thống kê trên menu Quản lý

2 Hệ thống hiển thị Danh sách Báo cáo

3 Actor chọn thời gian báo cáo từ ngày đến ngày, chọn loại báo cáo từ danh sách, chọn xong nhấn nút Xem báo cáo

4 Hệ thống kiểm tra thông tin thống kê

5 Hệ thống truy vấn dữ liệu từ DB

6 Hệ thống hiển thị Báo cáo ra màn hình

Exception 4.1 Thông tin chọn sai, yêu cầu nhập lại

Hình 45: Biểu đồ tuần tự cho Use Case Thống kê

Thiết kế Cơ sở dữ liệu

Hình 46: Database Diagram Đặt Vé

Tên Field Kiểu dữ liệu Mô tả

IDTaiKhoan int ID Tài khoản

TenDangNhap char(30) Tên đăng nhập

MatKhau char(30) Mật khẩu đăng nhập

CMND char(10) Số chứng minh nhân dân

Quyen char(1) Quyền trong hệ thống (0: Admin; 1: Nhân viên; 2: Khách hàng) DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDKhachCho int ID Khách chờ

IDTaiKhoan int ID Tài khoản

IDLichTrinh int ID Lịch trình

SLCho int Số lượng chỗ cần đặt chờ

NgayDangKy datetime Ngày đăng ký chờ

TinhTrang char(1) Tình trạng xử lý (0: chưa xử lý; 1: đã xử lý)

Tên Field Kiểu dữ liệu Mô tả

IDLoaiVe int ID Loại vé

IDLoaiXe int ID Loại xe

TenLoaiVe nvarchar(30) Tên loại vé

NgayApDung date Ngày áp dụng

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDDiaDiem int ID Địa điểm

TenDiaDiem nvarchar(50) Tên địa điểm

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDHTGiamGia int ID Hình thức giảm giá

TenHTGiamGia nvarchar(50) Tên hình thức giảm giá

SLVe int Số lượng vé đặt cần để áp dụng giảm giá

PhanTram float Phần trăm giảm giá

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDLoaiXe int ID Loại xe

TenLoaiXe nvarchar(50) Tên Loại xe

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDLoaiXe int ID Loại xe

SoLuongGhe int Số lượng ghế trên xe

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDDiaDiemDi int ID Địa điểm đi

IDDiaDiemDen int ID Địa điểm đến

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa)

Tên Field Kiểu dữ liệu Mô tả

IDLichTrinh int ID Lịch trình

DaXoa bit Đã bị xóa (true: đã xóa; false: chưa bị xóa) NgayCapNhat datetime Ngày cập nhật

Tên Field Kiểu dữ liệu Mô tả

IDChiTietVeDat int ID Chi tiết vé đặt

IDLichTrinh int ID Lịch trình

IDVeDat int ID Vé đặt

NgayHuy datetime Ngày hủy vé

TinhTrang char(1) Tình trạng chi tiết vé

NgayCapNhat datetime Ngày cập nhật

Tên Field Kiểu dữ liệu Mô tả

IDVeDat int ID Vé đặt

IDTaiKhoan int ID Tài khoản

IDHTGiamGia int ID Hình thức giảm giá

SoLuongVe int Tổng số lượng vé đặt

TongTien decimal(18, 0) Tổng tiền vé

TienGiam decimal(18, 0) Tổng tiền giảm

NgayDat datetime Ngày đặt vé

HTThanhToan char(1) Hình thức thanh toán

TenNganHang nvarchar(30) Tên ngân hàng của người đặt vé

TenNguoiTT nvarchar(80) Tên người thanh toán

SoTK_TEL char(20) Số tài khoản ngân hàng hoặc số điện thoại của người thanh toán

TinhTrang char(1) Tình trạng vé đặt

HIỆN THỰC

Cấu trúc website

Quản lý Hình thức Giảm giá

Quản lý Danh mục Địa Điểm

Báo cáo Doanh thu theo ngày

Báo cáo Doanh thu theo Xe

Báo cáo Số lượng Vé bán

Báo cáo Số lượng Vé hủy

Báo cáo Doanh thu theo Tuyến

Yêu cầu cài đặt

Các công cụ phát triển cần thiết:

 Cài đặt Microsoft Visual Studio 2008

 Cài đặt ASP.NET MVC 2

 Sau khi cài đặt xong SQL Server Khởi động chương trình từ menu SQL Server Management Studio

 Chọn Attach database từ file DatVeXe.mdf trong thư mục App_Data

Chạy chương trình từ File Datvexe.sln trong thư mục source của CD Đồ án Sau khi cài đặt các chương trình cần thiết và cấu hình thông số kết nối, bạn có thể khởi chạy Website và đăng nhập vào Quản trị.

Để kích hoạt dịch vụ Hủy vé tự động, bạn cần cài đặt một dịch vụ chạy trên máy chủ bằng cách sử dụng file Setup_HuyVeTuDong_Service.msi hoặc Setup.exe có trong thư mục Setup_HuyVeTuDong_Service\Debug\ của dự án Mật khẩu để truy cập là admin.

Một số giao diện của Website

Hình 48: Trang Tra cứu vé

Hình 49: Trang Sơ đồ chỗ của Xe

Hình 50: Trang Chọn Hình thức Thanh toán

Hình 52: Trang Quản lý Danh mục Lịch trình

Hình 53: Báo cáo Doanh thu Tổng hợp theo ngày

TỔNG KẾT

Ngày đăng: 22/07/2021, 10:47

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w