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

Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin

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

Tiêu đề Xây Dựng Ứng Dụng Đặt Vé Xe Có Hỗ Trợ Thanh Toán Online
Trường học Khoa Đào Tạo Chất Lượng Cao
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Định dạng
Số trang 95
Dung lượng 3,73 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (9)
    • 1.1. Lý do chọn đề tài (9)
    • 1.2. Mục tiêu (9)
    • 1.3. Công nghệ sử dụng (9)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (10)
    • 2.1. Java (10)
      • 2.1.1. Lịch sử (0)
      • 2.1.2. Giới thiệu về Java và SpringBoot (10)
      • 2.1.3. Lý do chọn Java Spring boot (10)
    • 2.2. Angular (11)
      • 2.2.1. Lịch sử (0)
      • 2.2.2. Giới thiệu về Angular (11)
      • 2.2.3. Ưu điểm (13)
      • 2.2.4. Nhược điểm (13)
      • 2.2.5. Tại sao lại sử dụng Angular (14)
    • 2.3. MySql (14)
      • 2.3.1. Giới thiệu về MySql (14)
      • 2.3.2. Tại sao cần sử dụng MySql (14)
  • CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU (15)
    • 3.1. Khảo sát hiện trạng (15)
      • 3.1.1. Trang web hoamaicar.com (15)
      • 3.1.2. Trang web tienoanh.com (16)
      • 3.1.3. Trang web Futabus.vn (17)
      • 3.1.3. Kết luận (17)
    • 3.2. Xác định yêu cầu (0)
      • 3.2.1. Nghiệp vụ (18)
      • 3.2.2. Phạm vi (18)
    • 3.3. Đánh giá và lựa chọn công nghệ (0)
      • 3.3.1. Mục tiêu đề tài (19)
      • 3.3.2. Nội dung (19)
      • 3.3.3. Hiện thực hệ thống (0)
      • 3.3.4. Phương pháp nghiên cứu (20)
      • 3.3.5. Ý nghĩa khoa học thực tiễn (0)
    • 3.4. Mô hình hóa hệ thống (21)
      • 3.4.1 Danh sách các Actor (21)
      • 3.4.2. Sơ đồ Usecase (21)
      • 3.4.3. Mô tả sơ đồ Usecase (22)
    • 3.5. Đặt tả một số Usecase chính (24)
      • 3.5.1. Usecase LogIn (UC_02) (24)
      • 3.5.2 Usecase Book-Ticket (UC_04) (25)
      • 3.5.3. View Invoice (UC_08) (29)
      • 3.5.4. Manage Personal Account (UC_12) (30)
      • 3.5.5. Manage Information Individual (UC_11) (31)
      • 3.5.6. Manage Bus Station (UC_17) (32)
      • 3.5.7. Manage Routes (UC_18) (34)
      • 3.5.8. Manage Bus (UC_19) (38)
      • 3.5.9. Export file (UC_20) (0)
  • CHƯƠNG 4: THIẾT KẾ PHẦN MỀM (0)
    • 4.1. Thiết kế hệ thống (41)
      • 4.1.1. Lược đồ lớp (41)
      • 4.1.2. Lược đồ tuần tự (42)
    • 4.2. Thiết kế dữ liệu (51)
      • 4.2.1. Lược đồ thực thể (ERD) (0)
    • 4.3. Thiết kế giao diện (51)
      • 4.3.1. Danh sách giao diện (51)
      • 4.3.2. Mô tả giao diện (53)
  • CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ (78)
    • 5.1. Cài đặt (78)
    • 5.2. Các bước chạy hệ thống (78)
    • 5.3. Kiểm thử (79)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 6.1. Tổng kết (93)
    • 6.2. Về mặt lý thuyết (93)
    • 6.3. Về mặt hiện thực (93)
    • 6.4. Hạn chế (94)
    • 6.5. Hướng phát triển (94)

Nội dung

TỔNG QUAN

Lý do chọn đề tài

Hiện nay, sự phát triển mạnh mẽ của internet và công nghệ thông tin đã dẫn đến sự xuất hiện của nhiều phần mềm và công cụ ứng dụng, giúp con người làm việc chuyên nghiệp hơn Những ứng dụng này giải quyết hiệu quả nhiều bài toán phức tạp mà trước đây chỉ có máy móc mới có thể thực hiện chính xác.

Con người ngày càng thích ứng và phụ thuộc vào công nghệ, dẫn đến sự thay đổi trong thói quen sinh hoạt để tận dụng những tiện ích của công nghệ thông tin hiện đại Điều này giúp công việc trở nên thuận lợi và giảm thiểu bất cập Vì vậy, nhóm chúng tôi quyết định chọn đề tài này nhằm giúp mọi người đặt vé xe đi chơi hoặc về quê một cách nhanh chóng và thuận tiện.

Mục tiêu

Mục tiêu của đồ án là áp dụng kiến thức đã học để xây dựng nền tảng web, giúp khách hàng dễ dàng đặt vé và quản lý thông tin nhà xe một cách hiệu quả.

Công nghệ sử dụng

Trong đề tài này nhóm em đã tìm hiểu và tìm ra và áp dụng những công nghệ sau:

- Front-end: Ứng dụng web xây dựng bởi Angular

- Back-end: Nền tảng Java SpringBoot

- Một số công nghệ khác như: HTML, CSS và JavaScript

CƠ SỞ LÝ THUYẾT

Java

Java, được phát triển bởi James Gosling và nhóm của ông với tên gọi ban đầu là Oak, đã ra mắt vào năm 1994 Sau khi Oracle mua lại Sun Microsystems vào năm 2009-2010, họ đã cam kết trở thành "người quản lý công nghệ Java" với mục tiêu xây dựng một cộng đồng tham gia và minh bạch.

2.1.2 Giới thiệu về Java và SpringBoot

Java là ngôn ngữ lập trình hướng đối tượng (OOP) nổi bật với cách biên dịch mã nguồn thành bytecode thay vì mã máy Điều này cho phép bytecode được thực thi bởi môi trường thực thi (runtime environment), mang lại tính linh hoạt và khả năng tương thích cao cho các ứng dụng Java.

Java kế thừa nhiều cú pháp từ C và C++, nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp Nhờ đó, việc lập trình bằng Java trở nên dễ dàng hơn và giảm thiểu công sức trong việc sửa lỗi.

Spring MVC là một nền tảng phát triển web của Spring framework, nhưng quá trình cấu hình thường phức tạp và tốn thời gian do phải tải lại nhiều thư viện mỗi khi khởi tạo dự án mới Để khắc phục vấn đề này, nhóm phát triển đã giới thiệu Spring Boot, một công nghệ giúp giảm thiểu cấu hình và tích hợp sẵn các thư viện thường dùng Spring Boot thuộc nhóm module của Spring framework, cung cấp tính năng RAD (Rapid Application Development), giúp lập trình viên tiết kiệm thời gian và công sức trong việc phát triển ứng dụng.

Application Development) Spring boot được sử dụng để tạo ra ứng dụng độc lập dựa trên spring mà bạn có thể chạy ngay sau khi cấu hình lại spring

2.1.3 Lý do chọn Java Spring boot

Java được phát triển để biên dịch mã nguồn thành bytecode, cho phép bytecode này chạy trên môi trường thực thi Nhờ đó, chương trình Java có khả năng hoạt động trên nhiều thiết bị và hệ điều hành khác nhau.

- Quá trình cấp phát, giải phóng bộ nhớ thực hiện tự động Không sử dụng con trỏ hoặc phép toán con trỏ

Java được biên dịch qua máy ảo Java (JVM), điều này giúp tăng cường bảo mật cho ứng dụng, vì tất cả các đối tượng đều phải qua JVM trước khi tiếp cận hệ điều hành.

- Java hỗ trợ lập trình cho hệ thống phân tán như client-server, RMI… bằng Java Web, UDP, TCP

- Tạo các ứng dụng độc lập có thể được bắt đầu bằng cách sử dụng java-jar

- Nhúng trực tiếp Tomcat, Jetty hoặc Undertow Không cần triển khai các tệp WAR

- Cung cấp starter POMs được đề xuất để đơn giản hóa cấu hình Maven Tự động cấu hình Spring bất cứ khi nào có thể

- Không tự sinh mã và không yêu cầu XML.

Angular

AngularJS, được phát triển bởi Misko Hevery và Adam Abrons từ năm 2009, ban đầu chỉ là một dự án riêng Tuy nhiên, dự án này đã trở nên nổi bật khi Misko Hevery tham gia vào dự án Google Feedback với vai trò lập trình viên bán thời gian.

Lịch sử phát hành:

AngularJS 20/10/2010 Phiên bản đầu tiên

Bảng 1:Lịch sử phiên bản Angular

- Angular là một javascript framework do google phát triển để xây dựng các Single Page Application (SPA) bằng JavaScript, HTML và TypeScript

- Code được viết bằng TypeScript biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt

Component là phần chính cho các ứng dụng Angular Mỗi thành phần bao gồm:

- HTML template khai báo những gì hiển thị trên trang

- Typescript class xác định các hành vi

- CSS xác định cách thành phần được sử dụng trong template

- Trong Angular, một template là một chunk của HTML Bên trong template có thể sử dụng nhiều cú pháp đặt biệt để tận dụng nhiều tính năng của Angular

- Mỗi Angular template trong ứng dụng là một section của HTML điều đó có thể bao gồm là một phần của page mà trình duyệt hiển thị

- Một Angular HTML template hiển thị chế độ xem hoặc giao diện người dùng trong browser giống như HTML thông thường nhưng có nhiều chức năng hơn

- Cho phép kiểm soát UX/UI bằng cách phối hợp dữ liệu giữa các lớp và template

Built-in attribute directives lắng nghe và sửa đổi hành vi của các elements, attributes, properties và components của HTML khác

Nhiều NgModules như RouterModule và FormsModule xác định các thuộc tính của riêng chúng Các attribute directives khác như là:

- NgClass – thêm và xóa bộ các lớp CSS

- NgStyles – thêm và xóa bộ các kiểu HTML

- NgModel – thêm ràng buộc dữ liệu hai chiều đến HTML form element

Built-in structural directives are responsible for shaping the HTML layout by modifying the structure of the DOM They typically achieve this by adding, removing, and manipulating host elements that are assigned to them.

Một số built-in structural directives:

- NgIf – điều kiện tạo hoặc hủy bỏ subviews từ template

- NgFor – lặp lại các node duyệt các item trong list

- NgSwitch – một tập hợp các lệnh chuyển đổi giữa các chế độ xem thay thế

Dependency refers to the services or objects that a class requires to perform its functions Dependency injection is a design pattern that allows a class to obtain its dependencies from an external source rather than creating them internally.

- Khả năng ràng buộc dữ liệu ở hai chiều: code ở cả JavaScript và HTML đều được đồng bộ hóa, giúp tiết kiệm thời gian lập trình

Việc mở rộng và phát triển tính năng của các file HTML trở nên dễ dàng hơn nhờ sự hiện diện của các chỉ thị Người dùng chỉ cần thêm tiền tố "ng-" trước thuộc tính HTML để kích hoạt các chỉ thị này.

- Hỗ trợ thiết kế ứng dụng bằng các đoạn code ngắn gọn nhờ các template mà cấu trúc Code – Angular

- Hỗ trợ việc thử nghiệm, tích hợp

Công cụ của tương lai với hệ thống chức năng vượt trội, liên tục phát triển cơ sở người dùng và thường xuyên cập nhật tài liệu chuyên sâu.

- Tương thích với nhiều thiết bị, bao gồm cả di động lẫn để bàn

- Bảo mật kém, có khả năng bảo mật thấp Phải có tính năng bảo mật và xác thực phía server sẽ giúp ứng dụng trở nên an toàn hơn

- Nếu người sử dụng ứng dụng của bạn vô hiệu hóa JavaScript thì họ chỉ nhìn được trang cơ bản, không thấy gì thêm

2.2.5 Tại sao lại sử dụng Angular

- Là một frameworks nên Angular mang đến một kiến trúc rõ ràng

- Extensive binding giúp quá trình hiển thị dữ liệu, điều khiển DOM, thực thi các event một cách trơn tru và dễ dàng

- Hỗ trợ đầy đủ các tính năng điều hướng có thể truyền dữ liệu giữa các route.

MySql

MySQL là một chương trình quản lý hệ thống cơ sở dữ liệu (CSDL), giúp lưu trữ và tổ chức thông tin một cách rõ ràng và ngăn nắp Hệ thống này cho phép người dùng truy cập dữ liệu dễ dàng và nhanh chóng Ngoài ra, MySQL cũng hỗ trợ hầu hết các ngôn ngữ lập trình hiện nay.

2.3.2 Tại sao cần sử dụng MySql

- Khả năng mở rộng và tính linh hoạt

- Hỗ trợ giao dịch mạnh mẽ

- Điểm mạnh của Web và Data Warehouse

- Bảo vệ dữ liệu mạnh mẽ

- Phát triển ứng dụng toàn diện

- Mã nguồn mở tự do và hỗ trợ 24/7

- Chi phí sở hữu thấp nhất

KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

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

Với sự phát triển kinh tế và chất lượng cuộc sống hiện nay, người dân địa phương ở các tỉnh thường đổ về các thành phố lớn để tìm việc làm Mỗi dịp lễ, Tết hay ngày nghỉ, họ trở về quê để đoàn tụ gia đình, tạo ra nhu cầu lớn về phương tiện di chuyển Để đáp ứng nhu cầu này, các nhà xe đã áp dụng công nghệ, cho ra đời trang web đặt vé xe trực tuyến, giúp khách hàng dễ dàng đặt vé mọi lúc, mọi nơi mà không cần phải đến trực tiếp hoặc gọi điện Điều này mang lại sự tự chủ cho khách hàng trong việc lựa chọn vé phù hợp với nhu cầu của mình.

Trang web hoamaicar là một trang web cho phép người dùng, khách hàng đặt vé xe thông qua biểu mẫu

Hình 2: Giao diện hoamaicai.com Ưu điểm:

- Đặt vé xe có thể đặt được nhiều khung giờ trải dài trong một ngày …

- Thiết kế đơn giản, tóm lược

- Có tương đối các chức năng cơ bản

- Chỉ được đặt trong khu vực cụ thể, không mở rộng ra khu vực khác

- Chưa có chức năng thanh toán online, chỉ có liện hệ để được đặt vé

- Chưa có giá cụ thể cho từng chuyến xe

- Khả năng tương tác và sự tiện lợi còn kém hiệu quả

3.1.2 Trang web tienoanh.com Đây là trang web đặt vé xe được thành lập từ năm 2010 cho đến nay, có trên 10 năm kinh nghiệm trong lĩnh vực vận tải, và phục vụ chỉ trên tuyến đường Hồ Chí Minh – Đăk Lăk

Hình 3: Trang web tienoanh.com Ưu điểm:

- Bộ lọc giá cả, thời gian, không gian xe

- Có vận chuyển hàng hóa ngoài hành khách

- Hiện đầy đủ các mục tuyến đi

- Giá cả rõ ràng, không mập mờ

- Thiếu sót lưu trữ thông tin người dùng

- Không thể tra cứu được những vé đã từng đi cho khách hàng

- Không có sự rõ ràng về chức năng thanh toán online như đã đề cập ở đầu trang web

Hình 4: Trang web Futabus.vn Ưu điểm:

- Có giao diện dễ dùng

- Hiển đầy đủ thông tin chuyến đi

- Xử lý tác vụ nhanh

- Không có phần chi tiết cho khách hàng

- Không có thông tin giá vé cụ thể

- Thanh toán chưa đa dạng, gây khó khăn cho người sử dụng phương thức thanh toán khác

3.1.3.1 Những vấn đề cần chú ý:

- Thiết kế giao diện đẹp mắt

- Tốc độ load ảnh của website

- Thêm các chức năng cơ bản cho người dùng: tìm kiếm tuyến xe, xem thông tin tuyến xe, đặt vé…

3.1.3.2 Những ưu điểm cần tiếp thu cho sản phẩm:

- Thiết kế giao diện đơn giản, dễ sử dụng, có bố cục gọn, rõ ràng, dễ nhìn.

Xác định yêu cầu

- Có giao diện dễ sử dụng, người dùng không cần phải xem hướng dẫn mà có thể đặt vé dễ dàng

- Có hệ thống đăng nhập tài khoản cho phép người dùng có thể lưu trữ thông tin cũng như các ưu đãi

- Có các chức năng hỗ trợ xem trang website

3.1.3.3 Những khuyết điểm cần tránh

- Giao diện trang website quá dài

- Các chức năng không đúng yêu cầu và dư thừa

- Hiển thị sai thông tin và dài dòng gây khó chịu khi tìm kiếm

- Hạn chế các quảng cáo trong trang web

- Những người có nhu cầu đi lại ,đặt vé xe (User)

- Người quản trị trang web (Admin)

- Hiển thị thông tin, hình ảnh của những tuyến xe

- Tìm kiếm và hiển thị chi tiết các thông tin cụ thể cũng như hình ảnh của một tuyến xe bất kỳ

- Người dùng được dùng chức năng đặt vé xe thông qua việc tìm kiếm tuyến phù hợp rồi chọn vị trí chỗ ngồi để đặt vé

- Cho phép người dùng thanh toán online

Hệ thống tài khoản người dùng cho phép truy cập vào lịch sử đặt vé, thông tin cá nhân, điểm thưởng, điểm tích lũy và mã số giảm giá.

3.2.2 Phạm vi Đối với người dùng

- Giúp cho việc đặt vé dễ dàng hơn

- Đem đến nhiều lựa chọn cho khách hàng khi muốn đặt vé xe và chính xác Đối với người quản trị

Đánh giá và lựa chọn công nghệ

- Cập nhật, xóa, thay đổi thông tin về vé dễ dàng

- Quản lý đặt vé cho khách hàng chặt chẽ và thuận tiện

- Đem đến nhiều lựa chọn cho khách hàng khi muốn đặt vé xe

3.3 Đánh giá và lựa chọn công nghệ

Xây dựng một trang web cho phép người dùng đặt vé dễ dàng, đồng thời cung cấp cho quản trị viên các chức năng quản lý như tạo, xóa và sửa đổi nội dung thông tin trên trang.

Tìm hiểu lý thuyết về các công nghệ để thực hiện đề tài

- Tìm hiểu về Java Spring boot

Phân tích yêu cầu và hiện thực hóa hệ thống

- Mô hình hóa hệ thống

Xây dựng trang Web đặt vé xe trực tuyến

- Dùng Java Spring boot để lập trình

- Cơ sở dữ liệu dùng MySql

- Dùng Angular, HTML, CSS và một số thư viện có sẵn

Front – end sử dụng Visual studio code để lập trình quản lý code

- Visual Studio Code là một trình biên tập mã, là sản phẩm của Microsoft dành cho Windows, Linux, macOS, ra mắt vào tháng 4 năm 2015 ở hội nghị Build Đặc điểm

Visual Studio Code nổi bật với tính năng đơn giản, gọn nhẹ và dễ dàng cài đặt Phần mềm này tương thích với cả Windows, Linux và Mac OS, đồng thời hỗ trợ nhiều ngôn ngữ lập trình khác nhau.

Visual Studio Code là một công cụ lập trình mạnh mẽ với chức năng debug tích hợp, hỗ trợ Git, và cung cấp tính năng tô màu cú pháp cùng với khả năng tự hoàn thành mã thông minh Nó cũng đi kèm với các snippets và cải tiến mã nguồn, cho phép người dùng tùy chỉnh theme, phím tắt và nhiều tùy chọn khác Đặc biệt, Visual Studio Code hoàn toàn miễn phí và là phần mềm mã nguồn mở.

Back- end sử dụng Eclipse để lập trình

Eclipse là một môi trường phát triển tích hợp (IDE) mạnh mẽ cho lập trình máy tính, cung cấp không gian làm việc cơ bản và hệ thống plug-in để tùy chỉnh Được phát triển chủ yếu bằng Java, Eclipse chủ yếu được sử dụng cho lập trình ứng dụng Java, giúp tối ưu hóa quy trình phát triển phần mềm.

Nó có khả năng phát triển tài liệu bằng LaTeX thông qua plug-in TeXlipse, trong khi môi trường phát triển sử dụng các công cụ phát triển Java (JDT) dành cho Java.

Phương pháp tổng hợp lý thuyết:

- Nghiên cứu và tìm hiểu các tài liệu, các trang web liên quan đến nội dung đang tìm hiểu

Để đảm bảo tính chính xác và khoa học cho đề tài khóa luận, cần tham khảo ý kiến từ Cô hướng dẫn, cũng như các anh, chị và bạn bè có kinh nghiệm trong lĩnh vực công nghệ và thực tiễn Phương pháp mô hình hóa sẽ được áp dụng để hỗ trợ quá trình thực hiện.

- Mô phỏng ứng dụng từ bước thiết kế cài đặt cho đến kết quả thành phẩm của ứng dụng

3.3.5 Ý nghĩa khoa học thực tiễn

- Trang web có giao diện đơn giản, dễ nhìn và bố cục phân bố hợp lý

Nghiệp vụ đặt vé xe không chỉ cung cấp các chức năng cơ bản đầy đủ mà còn tích hợp thêm nhiều tiện ích và chức năng bổ sung khác, nhằm nâng cao trải nghiệm người dùng.

Mô hình hóa hệ thống

- User: người chưa đăng nhập

- Customer: người đã đăng nhập, có tất các chức năng của User

- Admin: quản trị viên, có các chức năng của quản trị viên

3.4.3 Mô tả sơ đồ Usecase

STT TÊN CHỨC NĂNG MÔ TẢ

UC_01 Sign In Chức năng đăng ký tài khoản để truy cập vào trang web

UC_02 Log In Chức năng đăng nhập tài khoản (đã đăng ký) để đăng nhập vào trang web

UC_03 Send Gmail Chức năng gửi những phản hồi cho nhà xe qua gmail

UC_04 Book-Ticket Chức năng đặt vé qua các bước theo yêu cầu

Chức năng chọn tuyến xe trong UC_04.1 bao gồm các thông tin quan trọng như: địa điểm khởi hành, điểm đến, loại vé (một chiều hoặc khứ hồi), ngày đi và ngày về (nếu chọn vé khứ hồi).

UC_04.2 Select Seats Chức năng chọn vị trí giường mà bạn muốn, gồm có những thông tin như: giờ chạy, vị trí giường

Chức năng nhập thông tin cá nhân khi đặt vé bao gồm các thông tin cần thiết như họ và tên, số điện thoại, email, địa chỉ, tỉnh và thành phố Người dùng cũng cần tích vào ô chấp nhận điều khoản đặt vé của nhà xe.

UC_04.4 Pay Chức năng thanh toán, có 3 loại cổng thanh toán

PayPal, VN Pay và Zalo Pay

UC_05 View Popular Routes Chức năng xem những tuyến xe phổ biến

UC_06 View Schedule Routes Chức năng xem lịch trình của các tuyến xe

UC_07 View Detail Routes Chức năng xem chi tiết của tuyến xe

UC_08 View Invoice Chức năng xem thông tin vé sau khi đặt vé

UC_08.1 Cancel Ticket Chức năng có thể hoàn trả vé khi mà vé còn hiệu lực

UC_09 View Policy Chức năng xem những chính sách của nhà xe UC_10 Log Out Chức năng để đăng xuất ra khỏi trang web

Chức năng quản lý thông tin cá nhân cho phép người dùng xem và thay đổi các thông tin quan trọng như tên khách hàng, số điện thoại, CMND, địa chỉ, tỉnh/thành phố và quận/huyện.

Chức năng quản lý tài khoản cá nhân (xem, thay đổi tài khoản) gồm có: tên tài khoản, mật khẩu

Chức năng UC_13 cho phép người dùng xem lịch sử vé, hiển thị danh sách vé đã mua với các thông tin quan trọng như mã vé, tuyến xe, giờ chạy, ngày chạy và tổng tiền.

UC_13.1 Cancel Ticket Chức năng hủy vé khi vé còn hiệu lực

UC_14 View Bonus Points Chức năng xem điểm thưởng gồm có: thông tin về điểm thưởng, điểm thưởng của khách hàng, loại thành viên

Chức năng UC_15 cho phép người dùng xem thông tin sơ bộ về doanh thu qua bảng điều khiển UC_16 cung cấp khả năng quản lý tài khoản, bao gồm việc xem, thêm và sửa thông tin tài khoản UC_17 hỗ trợ người dùng trong việc quản lý bến xe, cho phép xem, thêm và sửa đổi thông tin bến xe Cuối cùng, UC_18 cung cấp chức năng quản lý tuyến xe, cho phép người dùng xem, thêm, sửa và chặn các tuyến xe khi cần thiết.

UC_18.1 Forever Ban Chức năng chặn tuyến xe vĩnh viễn khi mà không xác định được ngày chạy để mở lại tuyến xe

UC_18.2 Temporary Ban Chức năng chặn tuyến xe tạm thời khi mà xác định được ngày mở cho lại cho tuyến

UC_19 Manage Bus Chức năng quản lý xe chạy cho tuyến (xem, thêm, sửa và chặn xe)

UC_20 Export file Chức năng để xuất ra thông tin khách hàng đi trong ngày

Bảng 2: Bảng mô tả sơ đồ usecase

Đặt tả một số Usecase chính

Goal Đăng nhập vào trang web

Pre-conditions Có tài khoản, mật khẩu

Post-conditions Success: Hệ thống thông báo đăng nhập thành công

Fail: Hệ thống thông báo sai tài khoản, mật khẩu

Main Flow 1 Người dùng chọn chức năng đăng nhập từ website

2 Hệ thống hiển thị input để nhập tài khoản, mật khẩu cũng như là button đăng nhập

3 Người dùng click vào đăng nhập

4 Hệ thống sẽ kiểm tra xem tài khoản, mật khẩu và hiện ra thông báo thành công

Exception Hệ thống kiểm tra thất bại và thông báo sai tài khoản mật khẩu

Open Issues Tài khoản khi đăng ký phải vào gmail để xác nhận mới đăng nhập được

Goal Chọn tuyến xe để đặt vé

Main Flow 1 Người dùng truy cập vào website

2 Người dùng sẽ thấy được giao diện trang chủ của trang web

3 Người dùng chọn nơi đi, nơi đến, loại vé (1 chiều/ khứ hồi) và chọn ngày đi, ngày về (khứ hồi)

4 Người dùng click vào Tìm kiếm

5 Hệ thống kiểm tra tuyến xe và chuyển sang UC_04.2 nếu kiểm tra đúng

Exception - Không chọn nơi đi, nơi đến, hệ thống sẽ hiển thị thông báo chọn nơi đi, nơi đến

Relationship “Child Usecase” bởi UC_04

Goal Chọn vị trí giường trên xe

Pre-conditions Thực hiện thành công UC_04.1

Main Flow 1 Người dùng chọn vị trí giường và giờ xe chạy

2 Người dùng click Tiếp tục

3 Hệ thống sẽ chuyển sang UC_04.3

Exception - Hệ thống sẽ hiển thị tuyến bị chặn trong từ ngày … đến ngày

- Người dùng không đặt được vị trí giường đã được đặt trước

- Người dùng chỉ đặt được tối đa 5 ghế

Relationship “Child Usecase” bởi UC_04

3.5.2.3 Usecase Input Information Individual (UC_04.3)

Goal Nhập thông tin cá nhân khi mua vé

Pre-conditions Thành công thực hiện UC_04.2

Main Flow 1 Người dùng nhập các thông tin cá nhân bắt buộc như: Họ và tên, số điện thoại, cmnd, gmail, địa chỉ, tỉnh/ thành phố, quận/ huyện

2 Người dùng tích vào chấp nhận điều kiện đặt vé

3 Người dùng click vào Tiếp tục

4 Hệ thống kiểm tra thông tin và chuyển sang UC_04.4

Exception - Người dùng không nhập thông tin hoặc nhập sai format sẽ hiển thị thông báo nhập sai

- Người dùng không chấp nhận điều khoản đặt vé, hệ thống cũng sẽ thông báo không chấp nhận điều khoản

Open Issues - Người dùng nhập sai thông tin gmail, số điện thoại thì sẽ không nhận được tin nhắn xác nhận mua vé

Relationship “Child Usecase” bởi UC_04

Bảng 6: Usecase Input Information Individual

Goal Thanh toán vé online

Pre-conditions - Thành công thực hiện UC_04.3

- Có tài khoản PayPal, VN Pay hoặc Zalo Pay

Main Flow 1 Người dùng chọn loại thanh toán (PayPal, VN Pay hoặc Zalo

2 Người dùng chọn thanh toán

3 Hệ thống hiển thị thanh toán, người dùng click thanh toán

4 Hệ thống hiển thị màn hình đang xử lý, và hiện thông báo khi xử lý xong

Exception - Người dùng không chọn loại thanh toán mà thanh toán, hệ thống sẽ hiển thị thông báo chọn loại thanh toán

- Thông báo đặt vé thất bại

- Hệ thống hiển thị đặt vé thất bại

Relationship “Child Usecase” bởi UC_04

Name Tra cứu hóa đơn

Goal Tra cứu những vé đã mua

Main Flow 1 Người dùng truy cập vào website

2 Người dùng chọn hóa đơn

3 Trang web hiển thị vùng nhập mã vé và button đặt vé

4 Người dùng nhập mã vé và chọn chức năng tra cứu

5 Hệ thống xử lý và hiển thị thông tin của vé

Exception Lỗi người dùng nhập vé:

- Thông báo nhắc nhở nếu không nhập mã vé hoặc nhập mã sai

Bảng 8: Usecase tra cứu hóa đơn

Goal Thành viên có thể thay đổi mật khẩu nếu muốn

Pre-conditions Khách đã đăng nhập vào website với vai trò thành viên với vai trò thành viên

Main Flow 1 Người dùng truy cập vào website

2 Người dùng đăng nhập vào website, chọn chức năng đổi mật khẩu

3 Người dùng nhập mật khẩu cũ, mật khẩu mới và nhập lại mật khẩu mới, sau đó nhấn vào đổi mật khẩu

4 Hệ thống xử lý và hiển thị thành công

Exception Lỗi người dùng đổi mật khẩu:

- Thông báo nhắc nhở nếu không nhập gì cả hoặc nhập sai mật khẩu cũ hoặc nhập lại mật khẩu cũ không giống mật khẩu cũ Lỗi server:

- Đổi mật khẩu thất bại

Bảng 9: Usecase đổi mật khẩu

Goal Thành viên có thể thay đổi thông tin cá nhân của mình nếu muốn

Pre-conditions Khách đã đăng nhập vào website với vai trò thành viên

Main Flow 1 Người dùng truy cập vào website

2 Người dùng đăng nhập vào website, chọn chức năng đổi thông tin cá nhân

3 Người dùng nhập email, số điện thoại, địa chỉ, tỉnh

4 Hệ thống xử lý và hiển thị thành công

Bảng 10: Usecase đổi thông tin cá nhân

Goal Admin người có thể thêm bến

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng thêm bến

3 Quản trị viên nhập tỉnh, tên bến, chọn hình ảnh và nhập địa chỉ

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể sửa bến

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng sửa bến của bến cần sửa

3 Quản trị viên nhập tên bến, chọn hình ảnh và nhập địa chỉ

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể chặn tuyến xe cho đến khi họ mở lại

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức tuyến xe

3 Hệ thống hiển thị danh sách các tuyến xe, với các chức năng

3 Người dùng chọn chức năng chặn tuyến xe, chọn chặn vĩnh viễn sau đó nhấn chọn chặn

4 Hệ thống xử lý và hiển thị thành công

Bảng 13: Usecase cấm tuyến xe vô thời hạn

Goal Admin người có thể chặn tuyến xe trong khoảng thời gian

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức tuyến xe

3 Hệ thống hiển thị danh sách các tuyến xe, với các chức năng

3 Người dùng chọn chức năng chặn tuyến xe, chọn chặn một khoảng thời gian, sau đó chọn ngày chặn từ ngày … đến ngày … cuối cùng chọn chức năng chặn

4 Hệ thống xử lý và hiển thị thành công

Bảng 14: Usecase cấm tuyến xe thời vụ

Goal Admin người có thể thêm tuyến

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng thêm tuyến

3 Quản trị viên chọn nơi đi, nơi đến, nhập quãng đường, thời gian, giá vé

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể sửa tuyến

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng sửa tuyến

3 Quản trị viên nhập quãng đường, thời gian, giá vé

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể thêm xe

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng thêm xe

3 Quản trị viên chọn nơi đi, nơi đến, nhập tên xe, hãng xe, thời gian xuất phát

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể sửa xe

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng sửa xe

3 Quản trị viên nhập tên xe, hãng xe, giờ chạy

4 Hệ thống xử lý và hiển thị thành công

Goal Admin người có thể xuất lịch trình trong ngày

Pre-conditions Người mà đăng nhập vào website với vai trò là admin

Main Flow 1 Quản trị viên truy cập vào website

2 Quản trị viên đăng nhập vào website, chọn chức năng xuất lịch trình

3 Quản trị viên chọn tuyến xe mà muốn xuất

4 Hệ thống xử lý và down file excel

Bảng 19: Usecase xuất lịch trình

THIẾT KẾ PHẦN MỀM

Thiết kế hệ thống

Hình 7: Lược đồ tuần tự đăng nhập

Hình 8: Lược đồ tuần tự đăng ký

4.1.2.3 Chức năng xem thông tin tài khoản:

Hình 9: Lược đồ tuần tự xem thông tin tài khoản

4.1.2.4 Chức năng xem lịch sử mua vé:

Hình 10: Lược đồ tuần tự lịch sử mua vé

4.1.2.5 Chức năng đổi mật khẩu:

Hình 11: Lược đồ tuần tự đổi mật khẩu

4.1.2.6 Chức năng cập nhập thông tin:

Hình 12: Lược đồ tuần tự cập nhập thông tin

Hình 13: Lược đồ tuần tự mua vé

4.1.2.8 Chức năng xem hóa đơn:

Hình 14: Lược đồ tuần tự xem hóa đơn

4.1.2.9 Chức năng xem danh sách tài khoản:

Hình 15: Lược đồ tuần tự xem danh sách tài khoản

4.1.2.10 Chức năng thêm nhân viên:

Hình 16: Lược đồ tuần tự thêm nhân viên

4.1.2.11 Chức năng xem tuyến xe:

Hình 17: Lược đồ tuần tự xem tuyến xe

4.1.2.12 Chức năng thêm tuyến xe:

Hình 18: Lược đồ tuần tự thêm tuyến xe

4.1.2.13 Chức năng chỉnh sửa tuyến xe:

Hình 19: Lược đồ tuần tự chỉnh sửa tuyến xe

4.1.2.14 Chức năng xem bến xe:

Hình 20: Lược đồ tuần tự xem bến xe

Hình 21: Lược đồ tuần tự thêm bến xe

4.1.2.16 Chức năng chỉnh sửa bến:

Hình 22: Lược đồ tuần tự chỉnh sửa biến

4.1.2.17 Chức năng xuất lịch trình:

Hình 23: Lược đồ tuần tự xuất lịch trình

Hình 24: Lược đồ tuần tự thống kê

Thiết kế dữ liệu

4.2.1 Lược đồ thực thể (ERD)

Hình 25: Lược đồ thực thể ERD

Thiết kế giao diện

STT Tên giao diện Mô tả

UI_02 Đặt vé Trang để người dùng chọn tuyến xe, loại vé và ngày đi, ngày về (nếu có)

UI_03 Chọn giường Trang để người dùng chọn giờ khởi hành, vị trí giường

UI_04 Nhập thông tin người mua vé

Trang để nhập thông tin người mua vé

UI_05 Thanh toán Trang để người dùng thanh toán vé online

UI_06 Lịch trình Trang để người dùng xem những tuyến xe đang chạy

UI_07 Chi tiết tuyến xe Trang để người dùng xem chi tiết thông tin chuyến xe

UI_08 Điều khoản Trang hiển thị thông tin điều lệ, chính sách của nhà xe

UI_09 Tra cứu hóa đơn Trang để người dùng tìm kiếm hóa đơn

UI_10 Đăng nhập Trang để người dùng đăng nhập vào website

UI_11 Đăng ký Trang để người dùng đăng ký tài khoản

UI_12 Lịch sử đặt vé Trang để khách hàng xem danh sách vé đã mua

UI_13 Thông tin cá nhân Trang để khách hàng xem thông tin cá nhân

UI_14 Thông tin tài khoản Trang để khách hàng xem thông tin tài khoản

UI_15 Điểm thưởng Trang để khách hàng xem điểm thưởng

UI_16 Đăng xuất Trang để khách hàng đăng xuất ra khỏi website

UI_17 Dashboard Trang điều khiển của admin

UI_18 Quản lý bến xe Trang để quản lý bến xe

UI_19 Quản lý tài khoản Trang để quản lý tài khoản

UI_20 Quản lý tuyến xe Trang để quản lý tuyến xe

UI_21 Quản lý xe Trang để quản lý xe

UI_22 Xuất lịch trình Trang để xuất lịch trình đi tuyến xe

Bảng 20: Danh sách giao diện

Hình 26: Giao diện header trang chủ

Hình 27: Danh sách hiện tuyến phổ biến

Hình 28: Giao diện hình ảnh điểm đến

STT Tên đối tượng Loại đối tượng Mô tả

1 Logo Text Khi nhấn vào logo thì trang web sẽ quay về trang chủ giao diện của trang web

2 Trang chủ ListItem Khi nhấn vào Trang chủ thì trang web sẽ quay về trang chủ giao diện của trang web

3 Lịch trình ListItem Khi nhấn vào Lịch trình thì trang web sẽ chuyển sang trang Lịch trình

4 Điều khoản ListItem Khi nhấn vào Điều khoản thì trang web sẽ chuyển Điều khoản

5 Hóa đơn ListItem Khi nhấn vào Hóa đơn thì trang web sẽ chuyển Hóa đơn

6 Đăng nhập ListItem Khi nhấn vào Đăng nhập thì trang web sẽ chuyển sang trang Đăng nhập

7 Điểm đi Select Khi nhấn vào Chọn điểm đi thì sẽ show ra các nơi đi để chọn

8 Điểm đến Select Khi nhấn vào Chọn điểm đi thì sẽ show ra các nơi tới để chọn

9 Ngày đi Input Khi nhấn vào Chọn điểm đi thì sẽ hiện thời gian để chọn ngày đi

Nếu bạn chọn vé thứ hồi (12), trang web sẽ cho phép bạn chọn Ngày về Khi có vé thứ hồi, việc chọn Ngày về sẽ hiện ra thời gian để bạn lựa chọn.

11 Một chiều RadioTextBox Khi tích vào Một chiều thì web sẽ không cho chọn Ngày về

12 Thứ hồi RadioTextBox Khi tích vào Thứ hồi thì web sẽ cho chọn Ngày về

Khi bạn nhấn vào nút Tìm kiếm, hệ thống sẽ chuyển bạn đến trang Chọn chỗ 1 chiều nếu bạn chọn chế độ Một chiều; ngược lại, bạn sẽ được chuyển đến trang Chọn chỗ 2 chiều.

Bảng 21: Giao diện trang chủ

4.3.2.2 Giao diện trang Lịch trình:

Hình 29: Giao diện lịch trình

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Tìm điểm đi Input, Icon Search Input để nhập tên nơi đi và icon search để tìm kiếm

2 Tìm bến tới Input, Icon Search Input để nhập tên nơi tới và icon search để tìm kiếm

3 Danh sách các tuyến xe (tuyến xe, loại xe, quãng đường, thời gian hành trình, giờ chạy, đặt vé)

Table, Icon Infor, Icon Book Ticket

Hiển thị danh sách thông tin các tuyến xe và có chức năng xem chi tiết cũng như đặt vé

Bảng 22: Giao diện lịch trình

Hình 30: Giao điện đặt vé

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI

1 Một chiều, Khứ hồi Radio, Label - Khi nhấn vào Một chiều thì sẽ không cho phép chọn ngày về

- Khi nhấn vào chọn Khứ hồi thì sẽ cho chọn ngày về

2 Điểm đi, Điểm đến Input, Label,

- Khi nhấn vào Input (điểm đi) sẽ hiện danh sách các điểm đi là các button

- Khi nhập điểm đi thì sẽ hiển thị danh sách điểm đi chứa ký tự nhập

- Khi nhấn vào Input (điểm tới) sẽ hiện

50 danh sách các điểm tới theo điểm đi là các button

- Khi nhập điểm tới thì sẽ hiển thị danh sách điểm tới chứa ký tự nhập

3 Ngày đi, Ngày về Input, Label - Khi nhấn vào Ngày đi sẽ hiển thị ra lịch để chọn ngày tháng năm đi

- Khi nhấn vào Ngày về sẽ hiển thị ra lịch để chọn ngày tháng năm về

4 Tìm chuyến xe Button, Input Khi nhấn vào sẽ chuyển đến UI_03

5 Ngày đi Input Khi nhấn vào Ngày đi sẽ hiển thị ra lịch để chọn ngày tháng năm đi

Bảng 23: Giao điện đặt vé

Hình 31: Giao diện danh sách giường nằm

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Chọn ghế Unordered List Thể hiện người dùng đang ở bước chọn ghế

2 Ngày Page Hiển thị ngày đi

Tuyến Page Hiển thị tuyến đi

Chọn bến xe Page Hiển thị tuyến xe và giá vé

Giờ khởi hành Label, Select Hiển thị giờ chạy của xe để chọn Điểm lên xe Select Hiển thị điểm lên xe

3 Sơ đồ ghế Page Hiển thị tiêu đề

Tầng 1 Page, Table, Button Hiển thị số ghế button trong table của tầng 1

Tầng 2 Page, Table, Button Hiển thị số ghế button trong table của tầng 2

4 Trạng thái Label Hiển thị ghi chú trạng thái ghế

5 Quay lại Button Khi click vào sẽ quay trở lại trang UI_02

Tiếp tục Button Khi click vào sẽ chuyển sang UI_04

Bảng 24:Giao diện danh sách giường nằm

4.3.2.5 Nhập thông tin người mua vé:

Hình 32: Giao diện nhập thông tin khi đặt v

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Thông tin khách hàng Unordered List Thể hiện người dùng đang ở bước chọn ghế

2 Thông tin khách hàng Page Hiển thị tiêu đề

Họ tên khách hàng Label, Input Nơi để nhập tên

Số điện thoại Label, Input Nơi để nhập số điện thoại Email Label, Input Nơi để nhập gmail

Label, Select Nơi để chọn tỉnh, quận huyện

3 Điều khoản & Lưu ý Page Hiển thị điều khoản đặt vé

4 Chấp nhận điều khoản Check Box, Label Để chấp nhận điều khoản đặt vé

5 Quay lại Button Khi click vào sẽ quay trở lại UI_03

6 Tiếp tục Button Khi click vào sẽ chuyển sang UI_05

Bảng 25: Giao diện nhập thông tin khi đặt vé

Hình 33: Chọn hình thức thanh toán

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Thanh Toán Unordered List Thể hiện người dùng đang ở bước chọn ghế

2 Thông tin mua vé Page Hiển thị tiêu đề

Thông tin vé Page Hiển thị những thông tin về vé

Thông tin khách hàng mua vé

Page Hiển thị thông tin về khách hàng mua vé

3 Loại thanh toán Picture, Button Hiển thị những loại thanh toán

4 Quay lại Button Khi click vào sẽ quay lại

Thanh toán Button Khi click vào sẽ thanh toán

Bảng 26: Chọn hình thức thanh toán

4.3.2.7 Giao diện trang chi tiết tuyến xe:

Hình 34: Chi tiết tuyến xe

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

Page Hiển thị tên bến xe và địa chỉ

2 Thông tin tuyến xe Select, Label - Hiển thị thông tin của tuyến xe, khoảng thời gian và khoảng cách

- Có thể chọn cái tuyến xe khách

3 Ngày đi Input, Label - Hiển thị cũng như chọn ngày đi

4 Đặt vé Button - Khi click vào sẽ chuyển sang UI_02

5 Thông tin giờ chạy Table - Hiển thị thông tin chi tiết giờ đi, giờ đến và giá vé

Bảng 27: Chi tiết tuyến xe

4.3.2.8 Giao diện trang Điều khoản:

Hình 35: Giao diện trang Điều khoản

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Điều khoản Page Hiển thị nội dung điều khoản của nhà xe

Bảng 28: Giao diện trang Điều khoản

4.3.2.9 Giao diện trang Hóa đơn:

Hình 36: Giao diện truy xuất thông tin vé theo điều kiện

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Tra cứu hóa đơn Page - Hiển thị tiêu đề

2 Tuyến xe Label, Input - Hiển thị và chọn tuyến xe

3 Ngày Label, Input - Hiển thị và chọn ngày đi

Giờ chạy Label, Select - Hiển thị và chọn giờ chạy

4 Gmail Label, Input - Nhập gmail

5 Số điện thoại Label, Input - Nhập số điện thoại

Bảng 29: Giao diện truy xuất thông tin vé

4.4.2.10 Giao diện trang Đăng nhập:

Hình 37: Giao diện trang Đăng nhập

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Đăng nhập Page - Hiển thị tiêu đề

2 Tên tài khoản Label, Input - Nhập tên tài khoản

3 Mật khẩu Label, Input - Nhập mật khẩu

4 Đăng nhập Button - Khi click vào sẽ đăng nhập vào website

5 Đăng ký Anchor - Khi click vào sẽ chuyển sang UI_11

6 Cancel Button, Icon - Dóng đăng nhập modal

Bảng 30: Giao diện trang Đăng nhập

4.3.2.11 Giao diện trang Đăng ký:

Hình 38: Giao diện trang Đăng ký

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Đăng ký Page - Hiển thị tiêu đề

2 Tên tài khoản Label, Input - Nhập tên tài khoản

3 Mật khẩu Label, Input - Nhập mật khẩu

4 Số điện thoại Label, Input - Nhập số điện thoại

5 CMND Label, Input - Nhập cmnd

6 Gmail Label, Input - Nhập gmail

Label, Select - Chọn tỉnh, quận

8 Đăng ký Button - Khi click vào sẽ đăng ký tài khoản

9 Đăng nhập Anchor - Khi click vào chuyển sang UI_10

10 Đóng modal Button, Icon - Khi click vào đóng đăng ký modal

Bảng 31: Giao diện trang Đăng ký

4.3.2.12 Giao diện trang Lịch sử mua vé:

Hình 39: Giao diện trang Lịch sử mua vé

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Lịch sử đặt vé Page - Hiển thị tiêu đề

2 Đặt vé Button - Khi click vào sẽ chuyển sang UI_02

3 Từ khóa Label, Input - Nhập mã vé

4 Thời gian Label, Input - Chọn ngày mua vé

5 Tuyến đường Label, Input - Chọn ngày mua vé

6 Trạng thái Label, Select - Chọn trạng thái vé

7 Làm mới Button - Khi click vào sẽ làm mới lại thông tin ở table

8 Danh sách thông tin vé

Table, Icon - Hiển thị danh sách thông tin vé, và chức năng hoàn trả vé

Bảng 32: Giao diện trang Lịch sử mua vé

4.3.2.13 Giao diện trang Thông tin đăng nhập:

Hình 40: Giao diện trang Thông tin đăng nhập

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Thông tin tài khoản Page - Hiển thị tiêu đề

2 Thông tin đăng nhập Page - Hiển thị tiêu đề mục

Tài khoản Page, Label - Hiển thị tài khoản

Mật khẩu Page, Label - Hiển thị mật khẩu Đổi mật khẩu Icon, Page - Khi click vào sẽ hiển thị đổi mật khẩu

3 Đổi mật khẩu Page - Hiển thị tiêu đề mục

Mật khẩu cũ Label, Input, Icon - Nhập mật khẩu cũ

- Khi click vào icon sẽ show mật khẩu

Mật khẩu mới Label, Input, Icon - Nhập mật khẩu mới

- Khi click vào icon sẽ show mật khẩu

Xác nhận mật khẩu mới

Label, Input, Icon - Nhập lại mật khẩu mới

- Khi click vào icon sẽ show mật khẩu

Bảng 33: Giao diện trang Thông tin đăng nhập

4.3.2.14 Giao diện trang Thông tin cá nhân:

Hình 41: Giao diện trang Thông tin cá nhân

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Thông tin cá nhân Page - Hiển thị tiêu đề

2 Thông tin cá nhân Page - Hiển thị tiêu đề mục

Họ và tên Label - Hiển thị họ và tên

Email Label - Hiển thị gmail

Số điện thoại Label - Hiển thị số điện thoại

CMND Label - Hiển thị cmnd

Avata Icon - Hiển thị icon người dùng

3 Thông tin địa chỉ Page - Hiển thị tiêu đề mục Địa chỉ Label, Input - Hiển thị địa chỉ, nhập địa chỉ

Thành phố Label, Input, Select - Hiển thị thành phố, chọn thành phố

Huyện Label, Input, Select - Hiển thị huyện, chọn huyện

4 Lưu Button - Khi click vào lưu những thay đổi

Bảng 34: Giao diện trang Thông tin cá nhân

4.3.2.15 Giao diện trang Điểm thưởng:

Hình 42: Giao diện trang Tài khoản sau khi admin đăng nhập

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

Header 3 - Hiển thị tiêu đề

Page, Table - Hiển thị chính sách về điểm thưởng

3 Điểm thưởng Page - Hiển thị thông báo

4 Cấp độ thành viên Page, Label, Icon - Hiển thị cấp độ của khách hàng

Tổng điểm tích lũy Page, Label, Icon - Hiển thị tổng điểm tích lũy

Bảng 35: Giao diện trang Tài khoản sau khi admin đăng nhập

4.3.2.16 Giao diện trang Dashboard của Admin:

Hình 43: Giao diện trang Dashboard

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Tài khoản Icon, Label - Hiển thị số lượng tài khoản

2 Bến xe Icon, Label - Hiển thị số lượng bến xe

3 Tuyến xe Icon, Label - Hiển thị số lượng tuyến xe

4 Xe Icon, Label - Hiển thị số lượng xe

5 Biểu đồ Chart - Hiển thị doanh thu từng tháng trong năm

6 Doanh thu Icon, Label - Hiển thị thông tin doanh thu của năm

7 Năm Button, Icon - Khi click vào sẽ lấy dữ liệu theo năm

Bảng 36: Giao diện trang Dashboard

4.3.2.17 Giao diện trang Quản lý tài khoản:

Hình 44: Giao diện trang Quản lý tài khoản

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Quản lý tài khoản Icon, Label - Hiển thị tiêu đề

Table, Icon - Hiển thị danh sách tài khoản

- Khi click vào icon vẽ chuyển sang chỉnh sửa tài khoản

3 Thêm tài khoản Icon, Label - Khi click vào sẽ chuyển sang thêm tài khoản

Bảng 37: Giao diện trang Bến

4.3.2.18 Giao diện trang Quản lý bến xe:

Hình 45: Giao diện trang Xe

STT TÊN ĐÔI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Biểu đồ thể hiện doanh thu

Header - Hiển thị tiêu đề

2 Biểu đồ Chart - Hiển thị doanh thu bến theo biểu đồ

3 Bến xe Icon, Label, Select - Hiển thị, chọn bến xe

4 Doanh thu Label, Icon - Hiển thị thông tin doanh thu của bến

5 Năm Button, Icon - Khi click vào dữ liệu thay đổi theo năm

6 Quản lý bến xe Label, Icon - Hiển thị tiêu đề mục

Input, Button - Tìm kiếm bến xe theo tên tỉnh

8 Danh sách bến xe Table, Button, Icon - Hiển thị danh sách bến xe

- Khi click vào button sẽ chuyển sang chỉnh sửa bến xe

9 Thêm bến xe Button, Icon - Khi click vào button sẽ chuyển sang thêm bến xe

Bảng 38: Giao diện trang Quản lý bến xe

4.3.2.19 Giao diện trang Xuất lịch trình sau khi admin đăng nhập:

Hình 46: Giao diện trang Xuất lịch

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Biểu đồ thể hiện doanh thu

Header - Hiển thị tiêu đề mục

2 Biểu đồ Chart - Hiển thị doanh thu theo biểu đồ

3 Doanh thu tuyến Label, Select - Hiển thị năm và tuyến xe, chọn tuyến xe

Label, Icon - Hiển thị thông tin doanh thu của tuyến

5 Năm Button - Khi click vào sẽ lấy dữ liệu doanh thu theo tuyến của năm

6 Quản lý tuyến xe Label, Icon - Hiển thị tiêu đề mục

Input, Button - Tìm kiếm tuyến xe theo thành phố

8 Danh sách tuyến xe Table, Button, Icon - Hiển thị danh sách tuyến xe

- Khi click vào button sẽ chuyển sang chỉnh sửa tuyến xe

9 Thêm tuyến xe Button, Icon - Khi click vào sẽ chuyển sang thêm tuyến xe

Bảng 39: Giao diện trang Xuất lịch

4.3.2.20 Giao diện trang quản lý xe

Hình 47: Giao diện trang quản lý xe

STT TÊN ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG MÔ TẢ

1 Quản lý xe Label, Icon - Hiển thị tên tiêu đề

2 Danh sách xe Table, Button, Icon - Hiển thị danh sách xe

- Khi click vào button sẽ chuyển sang chỉnh sửa xe

3 Thêm xe Button, Icon - Khi click vào sẽ chuyển sang thêm xe

Bảng 40: Giao diện trang quản lý xe

CÀI ĐẶT VÀ KIỂM THỬ

Cài đặt

- Cài đặt NodeJS phiên bản mới (LTS hoặc bản hiện tại https://nodejs.org/en/download/)

- Cài đặt Visual Studio Code Link cài đặt: https://code.visualstudio.com/download

- Cài đặt Eclipse: https://www.eclipse.org/downloads/

+ Backend: https://github.com/letienhoa/KLTNBackEnd

+ Frontend: https://github.com/letienhoa/KLTN

To verify the correct installation of Node.js and NPM, first check the MySQL database by entering commands in the Command Prompt or Windows PowerShell on Windows, or in the Terminal on Mac and Linux.

Hình 48: CMD kiểm tra phiên bản node

Các bước chạy hệ thống

Các bước để chạy trang web:

- Vào thư mục Back-end: chạy trên Eclipse, chuột phải chọn Maven => Update Project sau đó chuột phải chọn Run as Spring Boot App

- Vào thư mục Font-end: mở bằng Visual Studio Code, Terminal => new

Terminal, sau đó nhập: npx ng serve –o để chạy

Kiểm thử

Trang người dùng chưa đăng nhập:

Test Steps Test Data Expected

Chuyển sang trang chọn chỗ

Chuyển sang trang chọn chỗ

Chọn tuyến thứ hồi thất bại

Thông báo không chọn ngày về

Thông báo không chọn ngày về

72 thu hoi_2 hồi thành công

- Thứ hồi: true trang chọn chỗ chọn chỗ

Bảng 41: Chức năng Chọn tuyến

Test Steps Test Data Expected

Chọn chỗ 1 chiều thất bại

Hiển thị thông báo chưa chọn ghế

Hiển thị thông báo chưa chọn ghế

Chọn chỗ 1 chiều thành công

Chuyển sang trang Điền thông tin khách hàng

Chuyển sang trang khách hàng

- Tuyến: Lâm Đồng – TP.HCM

- Giờ khởi hành: 18:00 báo chưa chọn ghế chưa chọn ghế

Chọn chỗ 2 chiều thất bại

1 Chọn ghế cho tuyến đi

- Tuyến: Lâm Đồng – TP.HCM

Hiển thị thông báo chưa chọn ghế

Hiển thị thông báo chưa chọn ghế

Chọn chỗ 2 chiều thất bại

1 Chọn ghế cho tuyến về

- Tuyến: Lâm Đồng – TP.HCM

Hiển thị thông báo chưa chọn ghế

Hiển thị thông báo chưa chọn ghế

Chọn chỗ 2 chiều thành công

1 Chọn ghế cho tuyến đi

2 Chọn ghế cho tuyến về

- Tuyến: Lâm Đồng – TP.HCM

Chuyển sang trang điền thông tin khách hàng

Chuyển sang trang điền thông tin khách hàng

Bảng 42: Chức năng Chọn chỗ

- Chức năng Lưu thông tin khách hàng khi đặt vé:

Test Steps Test Data Expected

Dien thong tin khach hang

_1 Điền thông tin khách hàng thất bại

Hiển thị thông báo Xin hãy điền đầy đủ thông tin

Hiển thị thông báo Xin hãy điền đầy đủ thông tin

Dien thong tin khach Điền thông tin khách hàng

- Họ tên: Lê Kim Đỉnh

Hiển thị thông báo Xin hãy điền thông tin

Hiển thị thông báo Xin hãy điền thông tin

6 Chọn tiếp tục kimdinhgmail.co m

Tuy Hòa đúng format đúng format

Dien thong tin khach hang

_3 Điền thông tin khách hàng thất bại

5 Nhập Quận/ huyện Chọn tiếp tục

Hiển thị thông báo chưa xác nhận điều khoản

Hiển thị thông báo chưa xác nhận điều khoản

Dien thong tin khach hang

_4 Điền thông tin khách hàng thành công

- Xác nhận điều khoản: check

Chuyển sang trang thanh toán

Chuyển sang trang thanh toán

Bảng 43: Chức năng Lưu thông tin khách hàng khi đặt vé

- Chức năng Tìm kiếm hóa đơn:

Test Steps Test Data Expected

Tra cứu hóa đơn thất bại

-Mã vé: Hiển thị thông báo Nhập sai mã

Hiển thị thông báo Nhập sai mã

Tra cứu hóa đơn thất bại

-Mã vé: 123456 Hiển thị thông báo Nhập sai mã

Hiển thị thông báo Nhập sai mã

Tra cứu hóa đơn thành công

-Mã vé: vuf2eh65yylekim dinh1412@gmail com

Hiển thị thông tin của vé

Hiển thị thông tin của vé

Bảng 44: Chức năng Tìm kiếm hóa đơn

Trang người dùng đã đăng nhập:

- Chức năng tìm kiếm lịch sử mua vé:

Test Steps Test Data Expected

Lịch sử mua vé thành công

Hiển thị thông tin lịch sử của tuyến đó

Hiển thị thông tin lịch sử của tuyến đó

Lịch sử mua vé thành công

Hiển thị thông tin lịch sử của tuyến đó

Hiển thị thông tin lịch sử của tuyến đó

Bảng 45: Chức năng tìm kiếm lịch sử mua vé

- Chức năng Đổi mật khẩu:

Test Steps Test Data Expected

Doi mat khau_1 Đổi mật khẩu thất bại

Hiển thị thông báo chưa nhập dữ liệu

Hiển thị thông báo chưa nhập dữ liệu

Doi mat khau_2 Đổi mật khẩu thất bại

4 Nhập lại mật khẩu mới

Hiển thị thông báo mật khẩu xác nhận không khớp với mật khẩu mới

Hiển thị thông báo mật khẩu xác nhận không khớp với mật khẩu mới

Doi mat khau_3 Đổi mật khẩu thành công

Hiển thị thông báo thành công

Hiển thị thông báo thành công

4 Nhập lại mật khẩu mới

Bảng 46: Chức năng Đổi mật khẩu

- Chức năng Đổi thông tin cá nhân:

Test Steps Test Data Expected

Doi thong tin ca nhan_1 Đổi thông tin cá nhân

Hiển thị thông báo chưa nhập dữ liệu

Hiển thị thông báo chưa nhập dữ liệu

Doi thong tin ca nhan_2 Đổi mật khẩu thất bại

Hiển thị thông báo email không đúng format

Hiển thị thông báo email không đúng format

Doi thong tin ca nhan_2 Đổi mật khẩu thành công

Bảng 47: Chức năng Đổi thông tin cá nhân

Test Steps Test Data Expected

Hiển thị thông báo chưa nhập liệu

Hiển thị thông báo chưa nhập liệu

- Địa chỉ: Minh Khai - P.Phố Mới

- TP.Lào Cai - Tỉnh Lào Cai

Bảng 48: Chức năng Thêm Bến

Test Steps Test Data Expected

- Hình ảnh: https://drive.goo gle.com/uc?id=1 RTbBsk2yyNepl 25B1VVRrIKJb wB_3vgx

Bảng 49: Chức năng Sửa bến

Test Steps Test Data Expected

Hiển thị thông báo chưa nhập liệu

Hiển thị thông báo chưa nhập liệu

5 Nhập thời gian hành trình

Bảng 50: Chức năng Thêm Tuyến

Test Steps Test Data Expected

3 Nhập thời gian hành trình

Bảng 51: Chức năng Sửa bến

Test Steps Test Data Expected

Hiển thị thông báo chưa nhập liệu

Hiển thị thông báo chưa nhập liệu

- Tên xe: LC- TP.HCM

Bảng 52: Chức năng Thêm xe

Test Steps Test Data Expected

- Tên xe: LC- TP.HCM

Bảng 53: Chức năng Sửa xe

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Ngày đăng: 05/06/2022, 17:36

HÌNH ẢNH LIÊN QUAN

Hình 3: Trang web tienoanh.com - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 3 Trang web tienoanh.com (Trang 16)
Hình 4: Trang web Futabus.vn - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 4 Trang web Futabus.vn (Trang 17)
Bảng 5: Usecase Select Seat - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 5 Usecase Select Seat (Trang 26)
3.5.2.4 Usecase Pay (UC_04.4) - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
3.5.2.4 Usecase Pay (UC_04.4) (Trang 28)
Bảng 8: Usecase tra cứu hóa đơn - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 8 Usecase tra cứu hóa đơn (Trang 29)
Bảng 9: Usecase đổi mật khẩu - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 9 Usecase đổi mật khẩu (Trang 30)
Bảng 10: Usecase đổi thông tin cá nhân - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 10 Usecase đổi thông tin cá nhân (Trang 31)
3. Quản trị viên nhập tên bến, chọn hình ảnh và nhập địa chỉ. 4. Hệ thống xử lý và hiển thị thành công - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
3. Quản trị viên nhập tên bến, chọn hình ảnh và nhập địa chỉ. 4. Hệ thống xử lý và hiển thị thành công (Trang 33)
Bảng 2: Cơ cấu nguồn vốn huy động - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 2 Cơ cấu nguồn vốn huy động (Trang 33)
Bảng 17: Usecase thêm xe - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 17 Usecase thêm xe (Trang 38)
Hình 21: Lược đồ tuần tự thêm bến xe - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 21 Lược đồ tuần tự thêm bến xe (Trang 49)
Hình 23: Lược đồ tuần tự xuất lịch trình - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 23 Lược đồ tuần tự xuất lịch trình (Trang 50)
Bảng 21: Giao diện trang chủ - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 21 Giao diện trang chủ (Trang 55)
Hình 32: Giao diện nhập thông tin khi đặt v - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Hình 32 Giao diện nhập thông tin khi đặt v (Trang 60)
Bảng 24:Giao diện danh sách giường nằm - Xây dựng ứng dụng đặt vé xe có hỗ trợ thanh toán online   đồ án tốt nghiệp khoa đào tạo chất lượng cao ngành công nghệ thông tin
Bảng 24 Giao diện danh sách giường nằm (Trang 60)

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN