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