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

đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc Microservices
Tác giả Trần Vương Duy
Người hướng dẫn ThS. Trần Thị Hồng Yến
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại Đồ án 1
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 102
Dung lượng 8,41 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU CHUNG (12)
    • 1.1. Lý do chọn đề tài (12)
    • 1.2. Phạm vi nghiên cứu (12)
    • 1.3. Đối tượng nghiên cứu (12)
    • 1.4. Phương pháp nghiên cứu (13)
  • CHƯƠNG 2. CÔNG NGHỆ SỬ DỤNG (14)
    • 2.1. Kiến trúc Microservices (14)
    • 2.2. Next.js (14)
    • 2.3. ASP.NET Core (14)
    • 2.4. Microsoft SQL Server (MS SQL) (15)
    • 2.5. Azure Message Bus (15)
    • 2.6. Ocelot (16)
    • 2.7. SWR (16)
    • 2.8. Zustand (16)
  • CHƯƠNG 3. THIẾT KẾ HỆ THỐNG (17)
    • 3.1. Xây dựng hệ thống (17)
      • 3.1.1. Kiến trúc hệ thống ứng dụng (17)
      • 3.1.2. Mô tả các thành phần trong hệ thống (18)
    • 3.2. Phân tích yêu cầu (18)
      • 3.2.1. Đăng kí (18)
      • 3.2.2. Đăng nhập (19)
      • 3.2.3. Quản lý thông tin cá nhân (19)
      • 3.2.4. Tìm kiếm sự kiện (19)
      • 3.2.5. Xem thông tin sự kiện (19)
      • 3.2.6. Mua vé (19)
      • 3.2.7. Quản lý vé (19)
      • 3.2.8. Quản lý sự kiện (19)
      • 3.2.9. Quản lý giao dịch (20)
      • 3.2.10. Quản lý thể loại (20)
      • 3.2.11. Quản lý người dùng (0)
      • 3.2.12. Thống kê (0)
    • 3.3. Thiết kế hệ thống (21)
      • 3.3.1. Sơ đồ Use Case (21)
      • 3.3.2. Danh sách Actor (23)
      • 3.3.3. Danh sách Use Case (23)
      • 3.3.4. Danh sách đặc tả Use Case (26)
    • 3.4. Thiết kế dữ liệu (68)
      • 3.4.1. Sơ đồ Logic (68)
      • 3.4.2. Mô tả chi tiết bảng dữ liệu (69)
  • CHƯƠNG 4. XÂY DỰNG ỨNG DỤNG (74)
    • 4.1. Danh sách màn hình (74)
    • 4.2. Chi tiết màn hình (75)
      • 4.2.1. Màn hình “Đăng nhập” (75)
      • 4.2.2. Màn hình “Đăng kí” (76)
      • 4.2.3. Màn hình “Trang chủ” (77)
      • 4.2.4. Màn hình “Tìm kiếm sự kiện” (78)
      • 4.2.5. Màn hình “Chi tiết sự kiện” (79)
      • 4.2.6. Màn hình “404” (80)
      • 4.2.7. Màn hình “Thông tin cá nhân” (80)
      • 4.2.8. Màn hình “Khám phá” (81)
      • 4.2.9. Màn hình “Mua vé” (82)
      • 4.2.10. Màn hình “Thanh toán” (83)
      • 4.2.11. Màn hình “Xác nhận thanh toán thành công” (84)
      • 4.2.12. Màn hình “Vé của tôi” (85)
      • 4.2.14. Màn hình “Tạo sự kiện” (88)
      • 4.2.15. Màn hình “Sự kiện của tôi” (90)
      • 4.2.16. Màn hình “Chỉnh sửa thông tin sự kiện” (92)
      • 4.2.17. Màn hình “Danh sách giao dịch của sự kiện” (93)
      • 4.2.18. Màn hình “Bảng điều khiển” (94)
      • 4.2.19. Màn hình “Quản lý sự kiện” (95)
      • 4.2.20. Màn hình “Quản lý đơn mua” (95)
      • 4.2.21. Màn hình “Quản lý người dùng” (96)
      • 4.2.22. Màn hình “Quản lý thể loại” (98)
      • 4.2.23. Màn hình “Chỉnh sửa thể loại” (99)
      • 4.2.24. Màn hình “Tạo thể loại mới” (99)
  • TÀI LIỆU THAM KHẢO (101)

Nội dung

Quản lý sự kiện- Đối với vai trò Người tổ chức:Người tổ chức có thể quản lý các sự kiện đã tạo, có thể chỉnh sửa, thêm, xóa sựkiện và thống kê.- Đối với vai trò Quản trị viên: Quản trị v

GIỚI THIỆU CHUNG

Lý do chọn đề tài

Kiến trúc Microservices là kiến trúc khá mới trong phát triển phần mềm, giúp ứng dụng được xây dựng và triển khai một cách linh hoạt thông qua việc module hóa Đề tài "Xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc Microservices" tập trung vào nghiên cứu và ứng dụng kiến trúc Microservices để xây dựng một website cho phép quản lý và bán vé cho sự kiện Điều này mang lại lợi ích làm cho quá trình phát triển và bảo trì ứng dụng trở nên dễ dàng hơn, đồng thời giảm sự phụ thuộc giữa các thành phần của ứng dụng.

Với đối tượng sử dụng bao gồm nhà tổ chức sự kiện và người tham gia, website này cung cấp giải pháp quản lý và bán vé trực tuyến, đồng thời hỗ trợ tìm kiếm và tham gia các sự kiện Đặc biệt, việc áp dụng kiến trúc Microservices giúp website có khả năng mở rộng và kiểm thử dễ dàng, đồng thời đảm bảo bảo mật và hiệu suất.

Hy vọng rằng đề tài này không chỉ giải quyết bài toán thực tế mà còn mang lại cái nhìn rõ hơn về kiến trúc Microservices và cách tích hợp nó trong xây dựng các ứng dụng web hiện đại.

Phạm vi nghiên cứu

- Các bài toán về tìm kiếm, quản lý.

- Website quản lý sự kiện và bán vé là ứng dụng web được xây dựng dựa trên công nghệ Next.js cho giao diện web và ASP.NET Core cho phần Backend.

- Hệ thống các module và cơ sở dữ liệu cho từng module.

- Kết nối các module qua API Gateway sử dụng Ocelot.

- Chức năng gửi email kết hợp giữa MailKit và Message Bus.

- Chức năng thanh toán bằng Stripe.

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

● Ngôn ngữ lập trình: C#, Typescript.

● Framework: Next.js, ASP.NET Core.

● Azure Blob Storage, Azure Message Bus, MailKit, Ocelot.

● Hỗ trợ thanh toán: Stripe

- Đối tượng trong phạm vi đề tài hướng đến:

● Người có nhu cầu tìm kiếm sự kiện.

● Người có nhu cầu mua vé tham gia sự kiện.

● Người có nhu cầu bán vé cho sự kiện của mình và quản lý công việc mua bán này.

Phương pháp nghiên cứu

- Tìm kiếm các sản phẩm đã tồn tại trên thị trường để rút ra những ưu, nhược điểm của những ứng dụng đó (TicketBox, )

- Tìm hiểu các công nghệ liên quan đến quản lý, tìm kiếm, thanh toán.

- Tìm hiểu cách quản lý một sự kiện Tìm hiểu cách mua vé và bán vé cho một sự kiện.

- Tham khảo ý kiến của giảng viên hướng dẫn và chỉnh sửa lại cho phù hợp để đạt được kết quả tốt nhất cho đề tài.

CÔNG NGHỆ SỬ DỤNG

Kiến trúc Microservices

Microservices là xu hướng kiến trúc phần mềm mới, tập trung vào việc xây dựng hệ thống thông qua phân chia thành các dịch vụ nhỏ Được sử dụng rộng rãi trong doanh nghiệp, kiến trúc này đặt ứng dụng thành một bộ các dịch vụ độc lập, chạy trong tiến trình riêng và giao tiếp qua API tài nguyên HTTP Điều này giúp quản lý dễ dàng hơn và hỗ trợ sử dụng ngôn ngữ và công nghệ đa dạng So với kiến trúc Monolithic, nó giúp giải quyết vấn đề của việc triển khai toàn bộ ứng dụng khi có thay đổi yêu cầu.

API Gateway đóng vai trò là cổng vào hệ thống Microservice, xử lý yêu cầu từ client và chuyển tiếp đến dịch vụ Microservice tương ứng Các chức năng của nó bao gồm giải mã và mã hóa, xác thực, kiểm soát truy cập, lọc và chuyển tiếp, thống kê và giám sát, mang lại lợi ích về bảo mật, hiệu suất và linh hoạt cho toàn bộ hệ thống.

Next.js

Next.js là framework phát triển ứng dụng web React, giúp đơn giản hóa quá trình phát triển bằng cấu trúc dự án mặc định, hỗ trợ routing, SSR, SSG, và nhiều tính năng khác Các đặc điểm quan trọng bao gồm SSR để tăng tốc độ tải trang, SSG giảm độ trễ cho trang web có nội dung ổn định, HMR hỗ trợ phát hiện và áp dụng thay đổi mà không cần tải lại toàn bộ trang.

Routing tự động dựa trên cấu trúc thư mục, giảm công việc cấu hình APIRoutes và hỗ trợ CSS Modules, Styled-JSX giúp xây dựng và quản lý dịch vụ backend và phong cách một cách thuận lợi Cộng đồng lớn xung quanh Next.js cung cấp nhiều plugin và thư viện hỗ trợ phát triển ứng dụng.

ASP.NET Core

ASP.NET Core là framework mã nguồn mở đa nền tảng, xây dựng ứng dụng web và dịch vụ web Có mã nguồn mở và được hỗ trợ bởi cộng đồng lớn ASP.NET

Core chạy trên Windows, macOS và Linux, tối ưu hóa cho đám mây, và sử dụng mô hình module hóa giúp tối ưu hóa tính linh hoạt.

Tính năng và lợi ích chính bao gồm mã nguồn mở, đa nền tảng, tối ưu hóa cho đám mây và module hóa Nó là một framework mạnh mẽ và linh hoạt, phù hợp cho việc xây dựng nhiều loại ứng dụng web và dịch vụ web Tuy nhiên, đôi khi có thể phức tạp và không phù hợp cho mọi loại ứng dụng.

Microsoft SQL Server (MS SQL)

MS SQL, hoặc Microsoft SQL Server, là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) của Microsoft, rộng rãi sử dụng trên toàn thế giới Nó cung cấp nhiều tính năng quản lý cơ sở dữ liệu như tạo, lưu trữ, truy vấn dữ liệu, quản lý quyền truy cập, và tự động sao lưu và khôi phục MS SQL có thể cài đặt trên nhiều loại máy và có các phiên bản từ miễn phí đến cấp doanh nghiệp.

Azure Message Bus

Azure Message Bus của Microsoft là một dịch vụ đám mây cho phép gửi thông điệp giữa các ứng dụng, dịch vụ hoặc hệ thống khác nhau Dịch vụ này hoạt động như một trung gian, lưu trữ và chuyển tiếp thông điệp giữa các thành phần khác nhau: Producer (gửi thông điệp), Azure Message Bus (trung gian lưu trữ và chuyển tiếp), và Consumer (nhận thông điệp) Khi một ứng dụng cần gửi thông điệp, nó sẽ gửi đến Azure Message Bus, sau đó dịch vụ này lưu trữ và chuyển tiếp thông điệp đến ứng dụng nhận.

Ocelot

Ocelot là một bộ mã nguồn mở cho phép xây dựng API Gateway trên NET và NET Core, là thành phần trung gian giữa client và các dịch vụ backend Nó giúp giảm sự phụ thuộc giữa client và các dịch vụ backend, đơn giản hóa client code và cung cấp các cross-cutting function như xác thực, tường lửa và mã hóa để giảm tải cho các dịch vụ backend Ocelot có thể được tích hợp vào ứng dụng web, di động, và IoT, là một giải pháp mạnh mẽ cho việc xây dựng API Gateway trên nền tảng NET và NET Core.

SWR

SWR (stale-while-revalidate) là một thư viện JavaScript do Vercel phát triển,giúp quản lý dữ liệu trong ứng dụng web SWR hoạt động dựa trên nguyên tắcStale-While-Revalidate, giữ một bản sao "cũ" của dữ liệu để người dùng xem ngay lập tức, đồng thời liên tục cập nhật và hiển thị dữ liệu mới khi nó sẵn sàng Thư viện này sử dụng caching để lưu trữ dữ liệu và cung cấp các cơ chế kiểm tra và cập nhật dữ liệu mà không làm gián đoạn trải nghiệm người dùng, tối ưu hóa trải nghiệm real-time.

Zustand

Zustand là thư viện quản lý trạng thái cho ứng dụng React, giúp đơn giản hóa quá trình và cung cấp giải pháp hiệu quả Sử dụng React hooks và context API, Zustand cung cấp một API dễ hiểu và linh hoạt cho việc quản lý trạng thái ứng dụng Tích hợp tốt với React, nó không yêu cầu middleware và có kích thước nhỏ, giảm tải cho ứng dụng So với Redux, Zustand ít boilerplate hơn, có hiệu suất cao và dễ học, là lựa chọn tốt cho cả người mới học và những người muốn triển khai nhanh chóng một giải pháp quản lý trạng thái.

THIẾT KẾ HỆ THỐNG

Xây dựng hệ thống

3.1.1 Kiến trúc hệ thống ứng dụng

Hình 3.1 Kiến trúc hệ thống

3.1.2 Mô tả các thành phần trong hệ thống

Bảng 3.1 Mô tả chi tiết các thành phần trong hệ thống

STT Thành phần Diễn giải

Cung cấp giao diện người dùng, là nơi để người dùng tương tác với hệ thống thông qua trình duyệt web.

File Storage Cung cấp khả năng quản lý file trong hệ thống.

API Gateway sử dụng Ocelot để điều hướng đến các API đích cụ thể, đóng vai trò như một điểm truy cập duy nhất cho các API.

Cung cấp khả năng xác thực và ủy quyền cho người dùng.

Cung cấp khả năng quản lý thông tin người đùng trong hệ thống.

Category API Cung cấp khả năng quản lý thể loại sự kiện.

Event API Cung cấp khả năng quản lý sự kiện. Payment API Cung cấp khả năng xử lý thanh toán. Ticket API Cung cấp khả năng quản lý vé.

Nhận thông báo từ Payment API và Auth Module và gửi thông báo đến Email API

Tiếp nhận thông báo từ AzureMessage Bus, sau đó thực hiện chức năng gửi email.

Phân tích yêu cầu

Sau khi hoàn thành Form Đăng kí và bấm nút Đăng kí Nếu đăng kí thành công sẽ hiện popup thông báo, sau đó người dùng sẽ được chuyển đến trang Đăng nhập, đồng thời gửi đến Gmail của người dùng để xác nhận đã đăng kí tài khoản thành công Nếu đăng kí thất bại sẽ hiển thị popup thông báo đăng kí thất bại.

Sau khi hoàn thành Form Đăng nhập và bấm nút Đăng nhập Đăng nhập thành công sẽ có popup thông báo đăng nhập thành công và chuyển đến Trang chủ, ngược lại nếu thất sẽ có popup thông báo đăng nhập thất bại.

3.2.3 Quản lý thông tin cá nhân

Người dùng có thể cập nhật thông tin cá nhân của mình.

Người dùng vào trang Tìm kiếm, người dùng có thể tìm kiếm sự kiện theo tên. Người dùng có thể lọc sự kiện theo Thể loại, Giá, Thời gian tổ chức.

3.2.5 Xem thông tin sự kiện

Người dùng vào sự kiện bất kì để xem thông tin chi tiết về sự kiện.

Người dùng vào trang trang Thanh toán, hoàn thành thông tin thanh toán Khi hoàn thành tất cả người dùng chọn Thanh toán ngay để chuyển đến trang thanh toán của Stripe, người dùng điền các thông tin cần thiết và xác nhận thanh toán.

Người dùng có thể quản lý được các thanh toán của mình, khi bấm vào một thẻ bất kì sẽ được chuyển hướng đến trang thông tin của đơn thanh toán đó Trang thông tin đơn thanh toán sẽ hiển thị thông tin liên quan đến vé.

- Đối với vai trò Người tổ chức:

Người tổ chức có thể quản lý các sự kiện đã tạo, có thể chỉnh sửa, thêm, xóa sự kiện và thống kê.

- Đối với vai trò Quản trị viên:

Quản trị viên có thể quản lý toàn bộ sự kiện của hệ thống, có thể chỉnh sửa, thêm, xóa sự kiện và thống kê.

- Đối với vai trò Khách hàng:

Người dùng có thể quản lý được các đơn thanh toán đã thực hiện Trang thông tin đơn thanh toán sẽ hiển thị thông tin liên quan đến sự kiện, thông tin thanh toán, thông tin của toàn bộ vé đã mua Khách hàng được chỉnh sửa thông tin vé.

- Đối với vai trò Người tổ chức:

Người tổ chức có thể quản lý được các giao dịch trong một sự kiện Có thể chỉnh sửa các giao dịch đó.

- Đối với vai trò Quản trị viên:

Quản trị viên có thể quản lý được các giao dịch trong toàn bộ hệ thống Có thể chỉnh sửa các giao dịch đó.

Quản trị viên có thể quản lý toàn bộ thể loại của hệ thống, có thể thêm, chỉnh sửa thể loại Quản lý người dùng Quản trị viên có thể xem, tìm kiếm, chỉnh sửa thông tin của từng người dùng trong hệ thống.

Quản trị viên có thể xem thống kê về số lượng sự kiện, người dùng, vé, thể loại, doanh thu theo năm, doanh thu theo thể loại, các cập nhật mới nhất về các sự kiện và giao dịch trong hệ thống.

Thiết kế hệ thống

Hình 3.2 Sơ đồ Use Case đối với người dùng chưa đăng nhập và đã đăng nhập

Hình 3.3 Sơ đồ Use Case đối với Khách hàng, Người tổ chức và Quản trị viên

Bảng 3.2 Danh sách các Actor

STT Tên Actor Mô tả ngắn / Ghi chú

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

Người sử dụng ứng dụng nhưng chưa đăng nhập

2 Khách hàng Người sử dụng ứng dụng đã đăng nhập với vai trò Khách hàng 3

Người sử dụng ứng dụng đã đăng nhập với vai trò Người tổ chức

4 Quản trị viên Người sử dụng ứng dụng đã đăng nhập với vai trò Quản trị viên

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

Người sử dụng ứng dụng đã đăng nhập

Bảng 3.3 Danh sách các Use Case

STT Tên Use Case Actor Mô tả / Ghi chú

Người dùng chưa đăng nhập Đăng nhập bằng tài khoản đã đăng kí

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

3 Xem thông tin sự kiện

Người dùng chưa đăng nhập, Người dùng đã đăng

Xem các thông tin của một sự kiện nhập

Người dùng chưa đăng nhập, Người dùng đã đăng nhập

Tìm kiếm sự kiện mong muốn

5 Chỉnh sửa thông tin cá nhân

Người dùng đã đăng nhập Chỉnh sửa thông tin người dùng

6 Đăng xuất Người dùng đã đăng nhập Đăng xuất khỏi ứng dụng

7 Mua vé Khách hàng Khách hàng mua vé tham gia sự kiện

8 Chỉnh sửa thông tin liên hệ Khách hàng Khách hàng sửa thông tin liên hệ

9 Thay đổi số lượng vé Khách hàng Khách hàng thay số lượng vé

10 Chỉnh sửa thông tin vé Khách hàng Khách hàng sửa thông tin của từng vé

11 Thanh toán Khách hàng Khách hàng thanh toán sau khi đã điền đầy đủ thông tin thanh toán

12 Xác nhận thanh toán thành công Khách hàng Xác nhận thanh toán thành công sau khi thanh toán xong

13 Xem danh sách giao dịch Khách hàng Khách hàng xem danh sách các giao dịch mà mình đã thực hiện

14 Xem danh sách vé đã mua Khách hàng Khách hàng xem danh sách vé đã mua trong mỗi giao dịch

15 Tạo sự kiện mới Người tổ chức Người tổ chức tạo một sự kiện mới

16 Xem danh sách sự kiện Người tổ chức Người tổ chức xem danh danh sách các sự kiện đã tạo

17 Chỉnh sửa thông tin sự kiện Người tổ chức

Người tổ chức chỉnh sửa thông tin một thông tin của sự kiện mà mình đã tạo

18 Xem danh sách đơn mua Người tổ chức

Người tổ chức xem danh sách các đơn mua (giao dịch) trong một sự kiện mà mình đã tạo

19 Xem chi tiết đơn mua

Người tổ chức, Khách hàng, Quản trị viên

Người tổ chức xem chi tiết một đơn mua (giao dịch)

Người tổ chức, Khách hàng, Quản trị viên

21 Chỉnh sửa thông tin vé

Người tổ chức, Khách hàng, Quản trị viên

Người tổ chức thay đổi thông tin vé bất kì

22 Hủy vé Người tổ chức Người tổ chức hủy vé bất kì

23 Xóa sự kiện Người tổ chức Người tổ chức xóa sự kiện mình đã tạo

24 Xem thống kê Quản trị viên

Quản trị viên xem các thông tin chung, các thống kê số liệu, các biến động trong hệ thống

25 Xem danh sách sự kiện Quản trị viên Quản trị viên xem danh sách toàn bộ sự kiện trong hệ thống

26 Chỉnh sửa thông tin sự kiện Quản trị viên Quản trị viên chỉnh sửa thông tin của một sự kiện bất kì

27 Xóa sự kiện Quản trị viên Quản trị viên xóa một sự kiện bất kì

28 Xem danh sách giao dịch Quản trị viên Quản trị viên xem danh sách toàn bộ giao dịch trong hệ thống

29 Xem chi tiết giao dịch Quản trị viên Quản trị viên xem thông tin chi tiết của một giao dịch

30 Xem danh sách người dùng Quản trị viên Quản trị viên xem danh sách toàn bộ người dùng trong hệ thống

31 Xem danh sách khách hàng Quản trị viên

Quản trị viên xem danh sách toàn bộ người dùng là Khách hàng trong hệ thống

32 Xem danh sách chủ sự kiện Quản trị viên

Quản trị viên xem danh sách toàn bộ người dùng là Chủ sự kiện hàng trong hệ thống

33 Chỉnh sửa thông tin người dùng Quản trị viên

Quản trị viên chỉnh sửa thông tin của một người dùng bất kì trong hệ thống

34 Vô hiệu hóa người dùng Quản trị viên Quản trị viên vô hiệu hóa người dùng

35 Kích hoạt người dùng Quản trị viên Quản trị viên kích hoạt người dùng

36 Xem danh sách thể loại Quản trị viên Quản trị viên xem danh sách toàn bộ thể loại trong hệ thống

37 Tạo thể loại mới Quản trị viên Quản trị viên tạo một thể loại mới

38 Chỉnh sửa thông tin thể loại Quản trị viên Quản trị viên chỉnh sửa thông tin một thể loại

3.3.4 Danh sách đặc tả Use Case

Bảng 3.4 Use Case Đăng nhập

Tên Use Case Đăng nhập

Mục đích Đăng nhập bằng tài khoản đã đăng kí.

Người dùng Người dùng chưa đăng nhập Điều kiện kích hoạt Người dùng ấn nút “Đăng nhập” trên thanh điều hướng. Trạng thái hệ thống trước khi bắt đầu

Người dùng chưa đăng nhập trước đó hoặc đã đăng xuất.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đăng nhập ứng dụng thành công.

1 Người dùng ấn nút “Đăng nhập” trên thanh điều hướng.

2 Người dùng đến trang đăng nhập.

3 Người dùng nhập “Email”, “Mật khẩu” và nút “Đăng nhập”.

4 Hệ thống xác thực thông tin đăng nhập thành công và chuyển đến trang chủ của ứng dụng.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

Bảng 3.5 Use Case Đăng kí

Tên Use Case Đăng kí

Mục đích Tạo tài khoàn mới để sử dụng ứng dụng

Người dùng Người dùng chưa đăng nhập Điều kiện kích hoạt Người dùng vào ấn nút “Đăng kí” trên thanh điều hướng Trạng thái hệ thống trước khi bắt đầu

Người dùng chưa có tài khoản

Trạng thái hệ thống sau khi bắt đầu Use

- Người dùng đăng ký tài khoản mới thành công.

- Hệ thống lưu thông tin tài khoản mới vào dữ liệu.

1 Người dùng chọn “Đăng ký” trên thanh điều hướng.

2 Người dùng được chuyển đến trang Đăng kí.

3 Người dùng nhập “Họ tên”, “Email”, “Số điện thoại”,

“Mật khẩu”, “Nhập lại mật khẩu” và nhấn nút “Đăng kí”.

4 Hệ thống xác thực thông tin đăng kí và gửi email xác nhận đến người đăng kí.

5 Hệ thống gửi thông báo đăng kí thành công và chuyển đến trang Đăng nhập.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt - “Email” phải có định dạng email, không được để trống, không được vượt quá 100 kí tự.

- “Họ tên” không được để trống, không được vượt quá

- “Số điện thoại” phải có định dạng số điện thoại, không được để trống, không được vượt quá 100 kí tự.

- “Mật khẩu” phải có ít nhất 8 kí tự, không được vượt quá

32 kí tự, phải có ít nhất 1 chữ cái in thường, 1 chữ cái in hoa, 1 chữ số, 1 kí tự đặc biệt.

- “Nhập lại mật khẩu” phải trùng khớp với “Mật khẩu”.

3.3.4.3 Use Case Xem thông tin sự kiện

Bảng 3.6 Use Case Xem thông tin sự kiện

Tên Use Case Xem thông tin sự kiện

Mục đích Hiển thị chi tiết về một sự kiện cụ thể trong hệ thống.

Người dùng có thể tương tác với sự kiện.

Người dùng Người dùng chưa đăng nhập, Người dùng đã đăng nhập Điều kiện kích hoạt

Người dùng muốn xem thông tin chi tiết về một sự kiện.

Sự kiện đã tồn tại trong hệ thống.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trong giao diện chính của ứng dụng.

Trạng thái hệ thống sau khi bắt đầu Use

Giao diện hiển thị chi tiết sự kiện được chọn.

1 Người dùng chọn sự kiện cần xem chi tiết.

2 Hệ thống hiển thị thông tin cơ bản về sự kiện (tên, mô tả, thời gian, địa điểm, v.v.).

- Nếu sự kiện không tồn tại:

Hệ thống thông báo lỗi và trở về trang chủ.

Các yêu cầu đặc biệt Không

3.3.4.4 Use Case Tìm kiếm sự kiện

Bảng 3.7 Use Case Tìm kiếm sự kiện

Tên Use Case Tìm kiếm sự kiện

Mục đích Cho phép người dùng tìm kiếm sự kiện dựa trên tên sự kiện.

Người dùng Người dùng chưa đăng nhập, Người dùng đã đăng nhập Điều kiện kích hoạt Người dùng muốn tìm kiếm sự kiện.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang chủ của ứng dụng.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang tìm kiếm sự kiện.

1 Người dùng bấm vào thanh tìm kiếm ở trang chủ.

2 Hệ thống chuyển đến trang tìm kiếm.

3 Người dùng nhập tên sự kiện cần tìm kiếm vào thanh tìm kiếm.

4 Người dùng có thể sử dụng các bộ lọc để chính xác hóa kết quả tìm kiếm và bấm ‘Áp dụng’.

5 Người dùng bấm nút "Tìm kiếm".

6 Hệ thống tìm kiếm và hiển thị danh sách các sự kiện phù hợp với tên đã nhập

Luồng sự kiện phụ Không

1 Xem thông tin sự kiện (UC3):

- Từ danh sách kết quả, người dùng có thể chọn một sự kiện để xem thông tin chi tiết.

Các yêu cầu đặc biệt Không.

3.3.4.5 Use Case Chỉnh sửa thông tin cá nhân

Bảng 3.8 Use Case Chỉnh sửa thông tin cá nhân

Tên Use Case Chỉnh sửa thông tin cá nhân

Mục đích Cho phép người dùng chỉnh sửa thông tin cá nhân của họ. Người dùng Người dùng đã đăng nhập Điều kiện kích hoạt Người dùng đã đăng nhập vào hệ thống.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đã đăng nhập vào hệ thống.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang thông tin cá nhân và có thể bắt đầu chỉnh sửa thông tin.

1 Người dùng bấm vào avatar trên thanh điều hướng.

2 Người dùng chọn "Thông Tin Cá Nhân".

3 Người dùng được chuyển đến trang thông tin cá nhân.

4 Người dùng có thể thay đổi avatar bằng cách tải lên một hình ảnh mới.

5 Người dùng có thể chỉnh sửa các trường thông tin như họ tên, số điện thoại, ngày sinh và giới tính.

6 Người dùng bấm nút "Lưu" để xác nhận các thay đổi.

- Nếu người dùng không bấm "Lưu":

Các thay đổi không được lưu và thông tin cá nhân không thay đổi.

- Nếu có lỗi khi lưu thay đổi:

Hệ thống thông báo lỗi cụ thể và yêu cầu người dùng sửa lại.

- Vô hiệu hóa tài khoản không được vượt quá 100 kí tự.

- “Họ tên” không được để trống, không được vượt quá

- “Số điện thoại” phải có định dạng số điện thoại, không được để trống, không được vượt quá 100 kí tự.

Bảng 3.9 Use Case Đăng xuất

Tên Use Case Đăng xuất

Mục đích Cho phép người dùng đăng xuất khỏi hệ thống.

Người dùng Người dùng đã đăng nhập Điều kiện kích hoạt Người dùng đã đăng nhập

Trạng thái hệ thống trước khi bắt đầu

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

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã đăng xuất

1 Người dùng bấm vào avatar trên thanh điều hướng.

2 Hệ thống hiển thị một dropdown và người dùng chọn

3 Hệ thống thực hiện quá trình đăng xuất, hủy bỏ phiên làm việc hiện tại của người dùng.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

Bảng 3.10 Use Case Mua vé

Tên Use Case Mua vé

Mục đích Cho phép người dùng mua vé cho sự kiện đã chọn

Người dùng Khách hàng Điều kiện kích hoạt Người dùng đã bấm nút "Mua vé" ở trang chi tiết sự kiện Trạng thái hệ thống trước khi bắt đầu

Người dùng đã chọn sự kiện và đang ở trang chi tiết sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng được chuyển đến trang mua vé hoặc trang đăng nhập

1 Hệ thống kiểm tra xem người dùng đã đăng nhập hay chưa.

1.a Nếu người dùng đã đăng nhập:

Họ được chuyển đến trang mua vé với các tùy chọn mua vé.

1.b Nếu người dùng chưa đăng nhập:

Họ được chuyển đến trang đăng nhập để xác nhận danh tính.

- Chỉnh sửa thông tin liên hệ (UC8).

- Thay đổi số lượng vé (UC9).

- Chỉnh sửa thông tin vé (UC10).

Mở rộng - Thanh Toán (UC11)

Các yêu cầu đặc biệt Không

3.3.4.8 Use Case Chỉnh sửa thông tin liên hệ

Bảng 3.11 Use Case Chỉnh sửa thông tin liên hệ

Tên Use Case Chỉnh sửa thông tin liên hệ

Mục đích Cho phép người dùng chỉnh sửa thông tin liên hệ của người đặt vé trong quá trình mua vé.

Người dùng Khách hàng Điều kiện kích hoạt

Người dùng đang ở trang mua vé.

Người dùng muốn thay đổi thông tin liên hệ.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang mua vé.

Trạng thái hệ thống sau khi bắt đầu Use

Thông tin liên hệ đã được chỉnh sửa.

1 Hệ thống mặc định hiển thị thông tin liên hệ hiện tại của người đặt vé từ thông tin cá nhân của tài khoản đang đăng nhập.

2 Người dùng có thể chỉnh sửa các trường thông tin như

Họ tên, Email, Số điện thoại.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt

- “Email” phải có định dạng email, không được để trống, không được vượt quá 100 kí tự.

- “Họ tên” không được để trống, không được vượt quá

- “Số điện thoại” phải có định dạng số điện thoại, không được để trống, không được vượt quá 100 kí tự.

3.3.4.9 Use Case Thay đổi số lượng vé

Bảng 3.12 Use Case Tăng số lượng vé

Tên Use Case Thay đổi số lượng vé

Mục đích Cho phép người dùng thay đổi số lượng vé.

Người dùng Khách hàng Điều kiện kích hoạt Người dùng ở trang mua vé và muốn thay đổi số lượng vé. Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang mua vé.

Trạng thái hệ thống sau khi bắt đầu Use

Hệ thống đang hiển thị số lượng vé đã được cập nhật theo lựa chọn mới của người dùng và thêm mới một vé.

1 Hệ thống hiển thị số lượng vé hiện tại.

2 Người dùng có thể thay đổi số lượng vé bằng cách bấm nút "+" hoặc “-“ hoặc nút "Thêm Vé".

3 Hệ thống cập nhật số lượng vé và tạo thêm Form điền thông tin vé mới nếu thêm vé.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.10 Use Case Chỉnh sửa thông tin vé

Bảng 3.13 Use Case Chỉnh sửa thông tin vé

Tên Use Case Chỉnh sửa thông tin vé

Mục đích Cho phép người dùng chỉnh sửa thông tin chi tiết về vé. Người dùng Khách hàng Điều kiện kích hoạt Vé đã được tạo.

Trạng thái hệ thống Người dùng đang ở trang mua vé. trước khi bắt đầu

Use Case Vé đã được tạo.

Trạng thái hệ thống sau khi bắt đầu Use

1 Hệ thống hiển thị danh sách vé đã được thêm và hiển thị thông tin chi tiết về mỗi vé.

2 Người dùng chỉnh sửa Họ tên, Email, Số điện thoại của vé

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt

- “Email” phải có định dạng email, không được để trống, không được vượt quá 100 kí tự.

- “Họ tên” không được để trống, không được vượt quá

- “Số điện thoại” phải có định dạng số điện thoại, không được để trống, không được vượt quá 100 kí tự.

Bảng 3.14 Use Case Thanh toán

Tên Use Case Thanh toán

Mục đích Cho phép người dùng thanh toán sau khi đã điền thông tin.

Người dùng Khách hàng Điều kiện kích hoạt Người dùng đã điền thông tin và bấm nút "Thanh Toán" từ trang mua vé.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đã điền thông tin và đang ở trang mua vé.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng được chuyển đến trang thanh toán của Stripe.

1 Hệ thống chuyển đến trang thanh toán của Stripe.

2 Người dùng điền các thông tin thanh toán.

3 Người dùng bấm nút "Thanh Toán".

4 Hệ thống gửi yêu cầu thanh toán đến cổng thanh toán Stripe.

4.a Nếu thanh toán thành công:

Hệ thống chuyển đến trang xác nhận thanh toán thành công.

4.b Nếu thanh toán thất bại:

Hệ thống chuyển người dùng trở lại trang mua vé.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.12 Use Case Xác nhận thanh toán thành công

Bảng 3.15 Use Case Xác nhận thanh toán thành công

Tên Use Case Xác nhận thanh toán thành công

Mục đích Hiển thị thông tin chi tiết về sự kiện tham gia, thông tin thanh toán và thông tin vé sau khi thanh toán thành công. Người dùng Khách hàng Điều kiện kích hoạt Người dùng đã hoàn tất quá trình thanh toán và được chuyển đến trang xác nhận thanh toán thành công.

Trạng thái hệ thống Người dùng đã hoàn tất thanh toán và đang ở trang xác trước khi bắt đầu

Use Case nhận thanh toán.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang xác nhận thanh toán thành công.

1 Hệ thống thông báo xác nhận thanh toán thành công.

2 Hệ thống hiển thị thông tin chi tiết về sự kiện đã mua vé, bao gồm tên sự kiện, địa điểm, ngày giờ diễn ra.

3 Hệ thống hiển thị thông tin thanh toán.

4 Hệ thống hiển thị thông tin chi tiết về từng vé đã mua, bao gồm thông tin chủ vé, mã vé, giá vé.

5 Người dùng nhận email xác nhận thanh toán thành công.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.13 Use Case Xem danh sách giao dịch

Bảng 3.16 Use Case Xem danh sách giao dịch

Tên Use Case Xem danh sách giao dịch

Mục đích Cho phép người dùng xem danh sách các giao dịch mua vé đã thực hiện.

Người dùng Khách hàng Điều kiện kích hoạt Người dùng chọn mục "Vé của tôi" trên thanh điều hướng.

Trạng thái hệ thống Người dùng đang ở bất kỳ trang nào có thanh điều hướng. trước khi bắt đầu

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã được chuyển đến trang danh sách giao dịch.

1 Hệ thống hiển thị danh sách giao dịch mua vé của người dùng.

2 Người dùng có thể tìm kiếm giao dịch bằng cách nhập tên sự kiện vào thanh tìm kiếm.

Luồng sự kiện phụ Không

Mở rộng - Xem danh sách vé đã mua (UC14)

Các yêu cầu đặc biệt Không

3.3.4.14 Use Case Xem danh sách vé đã mua

Bảng 3.17 Use Case Xem danh sách vé đã mua

Tên Use Case Xem danh sách vé đã mua

Mục đích Cho phép người dùng xem danh sách các vé đã mua trong một giao dịch cụ thể.

Người dùng Khách hàng Điều kiện kích hoạt Người dùng đã chọn xem chi tiết của một giao dịch.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang Vé của tôi.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang chi tiết của một giao dịch.

Luồng sự kiện chính 1 Hệ thống hiển thị danh sách các vé đã mua trong giao dịch đó.

2 Đối với mỗi vé, hệ thống hiển thị thông tin chủ vé và mã vé.

Luồng sự kiện phụ Không

Mở rộng - Sao chép mã vé (UC20)

Các yêu cầu đặc biệt Không

3.3.4.15 Use Case Tạo sự kiện mới

Bảng 3.18 Use Case Tạo sự kiện mới

Tên Use Case Tạo sự kiện mới

Mục đích Cho phép người dùng tạo sự kiện mới

Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã bấm vào nút "Tạo sự kiện" trên thanh điều hướng.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang tạo sự kiện và chưa điền thông tin nào.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang tạo sự kiện với các thông tin đã điền hoặc để trống.

Luồng sự kiện chính 1 Người dùng hoàn thành thông tin cơ bản của sự kiện

2 Người dùng hoàn thành các thông tin về địa điểm.

3 Người dùng hoàn thành các thông tin về thời gian.

4 Người dùng nhập “Số lượng” vé và “Giá vé” (nếu vé

5 Người dùng hoàn thành các thông tin về thời gian bán vé

6 Người dùng hoàn thành các thông tin về “Khuyến mãi”

7 Người dùng bấm “Tiếp theo” để xem trước sự kiện.

8 Người dùng hoàn thành các thông tin về “Lịch xuất bản”

9 Người dùng chọn “Xuất bản” để tạo sự kiện.

10 Hệ thống kiểm tra thông tin và điều kiện.

10.a Nếu tất cả hợp lệ, sự kiện được tạo và hệ thống hiển thị thông báo "Tạo sự kiện mới thành công".

10.b Nếu có lỗi, hệ thống hiển thị thông báo lỗi cụ thể.

- Người dùng bấm “Hủy” để khởi tạo lại thông tin:

Họ sẽ được đưa về trạng thái ban đầu và thông tin sự kiện sẽ được khởi tạo lại.

Các yêu cầu đặc biệt - “Ảnh bìa” không được để trống.

- “Tên” không được để trống.

- “Mô tả” không được để trống.

- “Thể loại” không được để trống.

- “Địa chỉ” không được để trống.

- “Quận / Huyện” không được để trống, chỉ được chọn sau khi đã chọn “Tỉnh / Thành phố”.

- “Tỉnh / Thành phố” không được để trống.

- “Ngày tổ chức sự kiện” có kiểu Date, không được để trống.

- “Thời gian bắt đầu” có kiểu Date, không được để trống.

- “Thời gian kết thúc” có kiểu Date, không được để trống.

- “Số lượng” vé có kiểu số nguyên, phải lớn hơn 0 và nhỏ hơn số lượng vé còn lại của sự kiện.

- “Ngày bắt đầu” có kiểu Date, không được để trống.

- “Giờ mở cửa” có kiểu Date, không được để trống.

- “Ngày kết thúc” có kiểu Date, không được để trống.

- “Giờ đóng cửa” có kiểu Date, không được để trống.

- Nếu “Khuyễn mãi” được bật thì giá trị của khuyến mãi phải lớn hơn 0.

- Nếu “Lịch xuất bản” được bật thì:

+ “Ngày xuất bản” có kiểu Date, không được để trống. + “Thời gian xuất bản” có kiểu Date, không được để trống.

3.3.4.16 Use Case Xem danh sách sự kiện

Bảng 3.19 Use Case Xem danh sách sự kiện

Tên Use Case Xem danh sách sự kiện

Mục đích Cho phép người dùng xem danh sách sự kiện đã tạo. Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã chọn mục "Sự kiện của tôi" trên thanh điều hướng.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở bất cứ trang nào có thanh điều hướng.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang "Sự kiện của tôi" với danh sách sự kiện đã tạo.

1 Hiển thị thống kê Tổng số sự kiện, Vé đã bán, Doanh thu.

2 Hệ thống hiển thị danh sách sự kiện của người dùng với thông tin cơ bản của mỗi sự kiện (Ảnh bìa, Tên, Ngày diễn ra, Vé đã bán, Doanh thu).

- Người dùng có thể tìm kiếm sự kiện theo tên bằng cách nhập từ khóa vào thanh tìm kiếm.

- Người dùng có thể sắp xếp danh sách sự kiện theo Ngày diễn ra, Vé đã bán, Doanh thu.

- Chỉnh sửa thông tin sự kiện (UC17)

- Xem danh sách đơn mua (UC18)

- Xóa sự kiện (UC19) Các yêu cầu đặc biệt Không

3.3.4.17 Use Case Chỉnh sửa thông tin sự kiện

Bảng 3.20 Use Case Chỉnh sửa thông tin sự kiện

Tên Use Case Chỉnh sửa thông tin sự kiện

Mục đích Cho phép người dùng chỉnh sửa thông tin chi tiết của một sự kiện đã tạo.

Người dùng Người tổ chức Điều kiện kích hoạt

Người dùng đang ở trang Sự kiện của tôi và đã chọn phần mở rộng của một sự kiện,sau đó chọn tùy chọn "ChỉnhSửa". trước khi bắt đầu

Use Case thay đổi thông tin một sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang chỉnh sửa và thực hiện thay đổi thông tin.

1 Hệ thống hiển thị biểu mẫu thông tin chi tiết của sự kiện.

2 Người dùng có thể thêm hoặc xóa hình ảnh, thay đổi giá vé, thay đổi ngày, thời gian diễn ra, và các thông tin khác liên quan đến sự kiện

3 Người dùng bấm “Tiếp theo” để xem trước sự kiện.

4 Người dùng có thể chỉnh sửa thông tin lịch xuất bản.

5 Người dùng chọn “Cập nhật” để chỉnh sửa thông tin của sự kiện.

6 Hệ thống kiểm tra thông tin và điều kiện.

6.a Nếu tất cả hợp lệ, thông tin sự kiện được cập nhật và hệ thống hiển thị thông báo "Cập nhật sự kiện mới thành công".

6.b Nếu có lỗi, hệ thống hiển thị thông báo lỗi cụ thể.

- Người dùng bấm “Hủy” để khởi tạo lại thông tin:

Họ sẽ được đưa về trạng thái ban đầu và thông tin sự kiện sẽ được khởi tạo lại.

Các yêu cầu đặc biệt - “Ảnh bìa” không được để trống.

- “Tên” không được để trống.

- “Mô tả” không được để trống.

- “Thể loại” không được để trống.

- “Địa chỉ” không được để trống.

- “Quận / Huyện” không được để trống, chỉ được chọn sau khi đã chọn “Tỉnh / Thành phố”.

- “Tỉnh / Thành phố” không được để trống.

- “Ngày tổ chức sự kiện” có kiểu Date, không được để trống.

- “Thời gian bắt đầu” có kiểu Date, không được để trống.

- “Thời gian kết thúc” có kiểu Date, không được để trống.

- “Số lượng” vé có kiểu số nguyên, phải lớn hơn 0 và nhỏ hơn số lượng vé còn lại của sự kiện.

- “Ngày bắt đầu” có kiểu Date, không được để trống.

- “Giờ mở cửa” có kiểu Date, không được để trống.

- “Ngày kết thúc” có kiểu Date, không được để trống.

- “Giờ đóng cửa” có kiểu Date, không được để trống.

- Nếu “Khuyễn mãi” được bật thì giá trị của khuyến mãi phải lớn hơn 0.

- Nếu “Lịch xuất bản” được bật thì:

+ “Ngày xuất bản” có kiểu Date, không được để trống.+ “Thời gian xuất bản” có kiểu Date, không được để trống.

3.3.4.18 Use Case Xem danh sách đơn mua

Bảng 3.21 Use Case Xem danh sách đơn mua

Tên Use Case Xem danh sách đơn mua

Mục đích Cho phép người dùng xem danh sách đơn mua trong sự kiện đã chọn.

Người dùng Người tổ chức Điều kiện kích hoạt

Người dùng đang ở trang Sự kiện của tôi.

Người dùng đã chọn phần mở rộng của một sự kiện và sau đó chọn tùy chọn "Đơn mua".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách sự kiện đã tạo và muốn thay đổi thông tin một sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang hiện thị các đơn mua của sự kiện.

1 Hiển thị thống kê Tổng số đơn mua, Vé đã bán, Doanh thu.

2 Hệ thống hiển thị danh sách đơn mua của sự kiện đó với thông tin cơ bản của mỗi đơn mua (Mã đơn, Thông tin liên hệ, Ngày thanh toán, Thời gian, Số lượng vé, Tổng tiền).

- Người dùng có thể tìm kiếm đơn mua theo thông tin liên hệ bằng cách nhập từ khóa vào thanh tìm kiếm.

- Người dùng sắp xếp danh sách đơn mua theo Thông tin liên hệ, Ngày thanh toán, Thời gian, Số lượng vé, Tổng tiền.

Mở rộng - Xem chi tiết đơn mua (UC19)

Các yêu cầu đặc biệt Không

3.3.4.19 Use Case Xem chi tiết đơn mua

Bảng 3.22 Use Case Xem chi tiết đơn mua

Tên Use Case Xem chi tiết đơn mua

Mục đích Cho phép người dùng xem chi tiết về một đơn mua cụ thể và các thông tin liên quan.

Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã chọn phần mở rộng của một đơn mua và chọn tùy chọn "Chỉnh sửa".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách đơn mua và muốn xem chi tiết về một đơn cụ thể.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang chi tiết đơn mua và có thể xem các thông tin chi tiết.

1 Hệ thống hiển thị thông tin chi tiết của đơn mua bao gồm các thông tin về sự kiện, thông tin thanh toán, thông tin vé.

Luồng sự kiện phụ Không

- Sao chép mã vé (UC20)

- Chỉnh sửa thông tin vé (UC21)

- Hủy vé (UC22) Các yêu cầu đặc biệt Không

3.3.4.20 Use Case Sao chép mã vé

Bảng 3.23 Use Case Sao chép mã vé

Tên Use Case Sao chép mã vé

Mục đích Cho phép người dùng sao chép mã vé từ danh sách vé đã mua trong một đơn mua.

Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã chọn xem chi tiết của một đơn mua và đang ở trang chi tiết đơn mua.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang chi tiết của một đơn mua và xem danh sách các vé.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng vẫn ở trang chi tiết của một đơn mua và đang có mã vé được sao chép vào clipboard.

1 Hệ thống hiển thị danh sách các vé đã mua trong đơn mua đó.

2 Người dùng bấm vào icon sao chép (copy) ở dưới mã vé của một vé cụ thể.

3.Mã vé được sao chép vào clipboard của người dùng. Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.21 Use Case Chỉnh sửa thông tin vé

Bảng 3.24 Use Case Chỉnh sửa thông tin vé

Tên Use Case Chỉnh sửa thông tin vé

Mục đích Cho phép người dùng chỉnh sửa thông tin một vé từ danh sách vé đã mua trong một đơn mua.

Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã chọn xem chi tiết của một đơn mua và đang ở trang chi tiết đơn mua.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang chi tiết của một đơn mua và xem danh sách các vé.

Trạng thái hệ thống sau khi bắt đầu Use

Thông tin vé đã được chỉnh sửa.

1 Hệ thống hiển thị danh sách các vé đã mua trong đơn mua đó.

2 Người dùng bấm vào icon chỉnh sửa ở vé muốn chỉnh sửa.

3 Hiển thị biểu mẫu thông tin chủ vé gồm các trường Họ tên, Email, Số điện thoại.

3 Người dùng thay đổi thông tin chủ vé.

5 Hệ thống kiểm tra thông tin chỉnh sửa và xác nhận.

5.a Nếu thay đổi thông tin vé thành công, hệ thống sẽ thông báo “Chỉnh sửa thông tin vé thành công” và cập nhật lại thông tin vé.

5.b Nếu thay đổi thông tin vé thất bại sẽ thông báo lỗi. Luồng sự kiện phụ 1 Hệ thống hiển thị danh sách các vé đã mua trong đơn mua đó.

2 Người dùng bấm vào icon chỉnh sửa ở vé muốn chỉnh sửa.

3 Hiển thị biểu mẫu thông tin chủ vé gồm các trường Họ tên, Email, Số điện thoại.

4 Người dùng bấm nút “Hủy”:

Tắt biểu mẫu và kết thúc Use Case

Các yêu cầu đặc biệt Không

Bảng 3.25 Use Case Hủy vé

Tên Use Case Hủy vé

Mục đích Cho phép người hủy một vé từ danh sách vé đã mua trong một đơn mua.

Người dùng Người tổ chức Điều kiện kích hoạt Người dùng đã chọn xem chi tiết của một đơn mua và đang ở trang chi tiết đơn mua.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang chi tiết của một đơn mua và xem danh sách các vé.

Trạng thái hệ thống sau khi bắt đầu Use

Vé đã bị hủy Trên giao diện xuất hiện tag “Vé không hợp lệ”, người dùng không thể tương tác với vé này nữa.

Luồng sự kiện chính 1 Hệ thống hiển thị danh sách các vé đã mua trong đơn mua đó.

2 Người dùng bấm nút “Hủy vé” ở vé muốn hủy.

3 Hộp thoại xác nhận xuất hiện.

- Hệ thống kiểm tra thông tin chỉnh sửa và xác nhận.

+ Nếu thay đổi thông tin vé thành công, hệ thống sẽ thông báo “Chỉnh sửa thông tin vé thành công” và cập nhật lại thông tin vé.

+ Nếu thay đổi thông tin vé thất bại sẽ thông báo lỗi. 3.a Người dùng bấm “Đóng”:

- Tắt hộp thoại và kết thúc Use Case Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Vé không có trạng thái TERMINATED

3.3.4.23 Use Case Xóa sự kiện

Bảng 3.26 Use Case Xóa sự kiện

Tên Use Case Xóa sự kiện

Mục đích Cho phép người dùng xóa một sự kiện đã tạo.

Người dùng Người tổ chức Điều kiện kích hoạt

Người dùng đang ở trang Sự kiện của tôi.

Người dùng đã chọn phần mở rộng của một sự kiện và sau đó chọn tùy chọn "Xóa sự kiện".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách sự kiện đã tạo và muốn xóa một sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Sự kiện bị xóa khỏi hệ thống.

Luồng sự kiện chính 1 Hiển thị hộp thoại xác nhận xóa sự kiện

- Hệ thống xác nhận xóa sự kiện

+ Nếu xóa sự kiện thành công sẽ thông báo “Xóa sự kiện thành công”.

+ Nếu thất bại sẽ thông báo lỗi.

- Tắt hộp thoại và kết thúc Use Case.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.24 Use Case Xem thống kê

Bảng 3.27 Use Case Xem thống kê

Tên Use Case Xem thống kê

Mục đích Cung cấp người dùng một cái nhìn tổng quan về tình trạng hoạt động và thống kê liên quan trong hệ thống.

Người dùng Quản trị viên Điều kiện kích hoạt

Người dùng sau đăng nhập vào hệ thống sẽ được chuyển ngay đến trang Bảng Điều Khiển hoặc chủ động bấm vào tùy chọn Bảng Điều Khiển trên thanh Sidebar.

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở trang Bảng diều khiển.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang xem thông tin thống kê và tổng quan về hệ thống.

Luồng sự kiện chính - Hệ thống hiển thị thông tin tổng quan về hệ thống, bao gồm thống kê doanh thu, số lượng sự kiện, số lượng vé đã bán, và các chỉ số khác.

- Hiển thị biểu đồ và đồ thị thể hiện thống kê doanh thu, số lượng sự kiện, và các thông tin quan trọng khác.

- Cập nhật về các sự kiện và giao dịch mới nhất được hiển thị để người dùng theo dõi.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.25 Use Case Xem danh sách sự kiện

Bảng 3.28 Use Case Xem danh sách sự kiện

Tên Use Case Xem danh sách sự kiện

Mục đích Cho phép người dùng xem danh sách sự kiện trong hệ thống và tương tác với các sự kiện đó.

Người dùng Quản trị viên Điều kiện kích hoạt Người dùng đã chọn mục "Quản lý sự kiện" trên thanh

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở bất cứ trang nào có thanh Sidebar.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang "Quản lý sự kiện" với danh sách sự kiện.

1 Hệ thống hiển thị danh sách sự kiện của người dùng với thông tin cơ bản của mỗi sự kiện (Ảnh bìa, Tên, Ngày diễn ra, Vé đã bán, Doanh thu).

Luồng sự kiện phụ - Người dùng có thể tìm kiếm sự kiện theo tên bằng cách nhập từ khóa vào thanh tìm kiếm.

- Người dùng có thể sắp xếp danh sách sự kiện theo Ngày diễn ra, Vé đã bán, Doanh thu.

- Chỉnh sửa thông tin sự kiện (UC26)

- Xóa sự kiện (UC27) Các yêu cầu đặc biệt Không

3.3.4.26 Use Case Chỉnh sửa thông tin sự kiện

Bảng 3.29 Use Case Chỉnh sửa thông tin sự kiện

Tên Use Case Chỉnh sửa thông tin sự kiện

Mục đích Cho phép người dùng chỉnh sửa thông tin chi tiết của một sự kiện.

Người dùng Quản trị viên Điều kiện kích hoạt

Người dùng đang ở trang “Quản lý sự kiện”.

Người dùng đã chọn phần mở rộng của một sự kiện và sau đó chọn tùy chọn "Chỉnh sửa".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách các sự kiện và muốn thay đổi thông tin một sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang chỉnh sửa và thực hiện thay đổi thông tin.

Luồng sự kiện chính 1 Hệ thống hiển thị biểu mẫu thông tin chi tiết của sự kiện.

2 Người dùng có thể thêm hoặc xóa hình ảnh, thay đổi giá vé, thay đổi ngày, thời gian diễn ra, và các thông tin khác liên quan đến sự kiện

3 Người dùng bấm “Tiếp theo” để xem trước sự kiện.

4 Người dùng có thể chỉnh sửa thông tin lịch xuất bản.

5 Người dùng chọn “Cập nhật” để chỉnh sửa thông tin của sự kiện.

6 Hệ thống kiểm tra thông tin và điều kiện.

6.a Nếu tất cả hợp lệ, thông tin sự kiện được cập nhật và hệ thống hiển thị thông báo "Cập nhật sự kiện mới thành công".

6.b Nếu có lỗi, hệ thống hiển thị thông báo lỗi cụ thể.

- Người dùng bấm “Hủy” để khởi tạo lại thông tin:

Họ sẽ được đưa về trạng thái ban đầu và thông tin sự kiện sẽ được khởi tạo lại.

Các yêu cầu đặc biệt - “Ảnh bìa” không được để trống.

- “Tên” không được để trống.

- “Mô tả” không được để trống.

- “Thể loại” không được để trống.

- “Địa chỉ” không được để trống.

- “Quận / Huyện” không được để trống, chỉ được chọn sau khi đã chọn “Tỉnh / Thành phố”.

- “Tỉnh / Thành phố” không được để trống.

- “Ngày tổ chức sự kiện” có kiểu Date, không được để trống.

- “Thời gian bắt đầu” có kiểu Date, không được để trống.

- “Thời gian kết thúc” có kiểu Date, không được để trống.

- “Số lượng” vé có kiểu số nguyên, phải lớn hơn 0 và nhỏ hơn số lượng vé còn lại của sự kiện.

- “Ngày bắt đầu” có kiểu Date, không được để trống.

- “Giờ mở cửa” có kiểu Date, không được để trống.

- “Ngày kết thúc” có kiểu Date, không được để trống.

- “Giờ đóng cửa” có kiểu Date, không được để trống.

- Nếu “Khuyễn mãi” được bật thì giá trị của khuyến mãi phải lớn hơn 0.

- Nếu “Lịch xuất bản” được bật thì:

+ “Ngày xuất bản” có kiểu Date, không được để trống.

+ “Thời gian xuất bản” có kiểu Date, không được để trống.

3.3.4.27 Use Case Xóa sự kiện

Bảng 3.30 Use Case Xóa sự kiện

Tên Use Case Xóa sự kiện

Mục đích Cho phép người dùng xóa một sự kiện bất kì.

Người dùng Quản trị viên Điều kiện kích hoạt

Người dùng đang ở trang “Quản lý sự kiện”.

Người dùng đã chọn phần mở rộng của một sự kiện và sau đó chọn tùy chọn "Xóa sự kiện".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách sự kiện và muốn xóa một sự kiện.

Trạng thái hệ thống sau khi bắt đầu Use

Sự kiện bị xóa khỏi hệ thống.

1 Hiển thị hộp thoại xác nhận xóa sự kiện 1.a Người dùng chọn “Đồng ý”:

- Hệ thống xác nhận xóa sự kiện

+ Nếu xóa sự kiện thành công sẽ thông báo “Xóa sự kiện thành công”.

+ Nếu thất bại sẽ thông báo lỗi.

- Tắt hộp thoại và kết thúc Use Case.

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.28 Use Case Xem danh sách giao dịch

Bảng 3.31 Use Case Xem danh sách giao dịch

Tên Use Case Xem danh sách giao dịch

Mục đích Cho phép người dùng xem danh sách toàn bộ giao dịch trong hệ thống.

Người dùng Quản trị viên Điều kiện kích hoạt Người dùng đã chọn mục "Quản lý đơn mua" trên thanh

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang ở bất cứ trang nào có thanh Sidebar.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đang ở trang "Quản lý đơn mua" với danh sách toàn bộ giao dịch trong hệ thống.

1 Hệ thống hiển thị danh sách toàn bộ giao dịch đó với thông tin cơ bản của mỗi giao dịch (Mã đơn, Thông tin liên hệ, Ngày thanh toán, Thời gian, Số lượng vé, Tổng tiền).

- Người dùng có thể tìm kiếm giao dịch theo thông tin liên hệ bằng cách nhập từ khóa vào thanh tìm kiếm.

- Người dùng có thể sắp xếp danh sách giao dịch theo Thông tin liên hệ, Ngày thanh toán, Thời gian, Số lượng vé, Tổng tiền.

Mở rộng - Xem chi tiết giao dịch (UC29)

Các yêu cầu đặc biệt Không

3.3.4.29 Use Case Xem chi tiết giao dịch

Bảng 3.32 Use Case Xem chi tiết giao dịch

Tên Use Case Xem chi tiết giao dịch

Mục đích Cho phép người dùng xem chi tiết về một giao dịch cụ thể và các thông tin liên quan.

Người dùng Quản trị viên Điều kiện kích hoạt Người dùng đã chọn phần mở rộng của một giao dịch và chọn tùy chọn "Chỉnh sửa".

Trạng thái hệ thống trước khi bắt đầu

Người dùng đang xem danh sách giao dịch và muốn xem chi tiết về một giao dịch cụ thể.

Trạng thái hệ thống sau khi bắt đầu Use

Người dùng đã chuyển đến trang chi tiết giao dịch và có thể xem các thông tin chi tiết.

Luồng sự kiện chính 1 Hệ thống hiển thị thông tin chi tiết của giao dịch bao gồm các thông tin về sự kiện, thông tin thanh toán, thông tin vé.

Luồng sự kiện phụ Không

- Sao chép mã vé (UC20)

- Chỉnh sửa thông tin vé (UC21)

- Hủy vé (UC22) Các yêu cầu đặc biệt Không

3.3.4.30 Use Case Xem danh sách người dùng

Bảng 3.33 Use Case Xem danh sách người dùng

Tên Use Case Xem danh sách người dùng

Mục đích Cho phép quản trị viên xem danh sách toàn bộ người dùng trong hệ thống.

Người dùng Quản trị viên Điều kiện kích hoạt Quản trị viên đã chọn mục "Quản lý người dùng" trên thanh Sidebar.

Trạng thái hệ thống trước khi bắt đầu

Quản trị viên đang ở bất cứ trang nào có thanh Sidebar.

Trạng thái hệ thống sau khi bắt đầu Use

Quản trị viên đang ở trang "Quản lý người dùng" với danh sách toàn bộ người dùng trong hệ thống.

Luồng sự kiện chính 1 Hệ thống hiển thị danh sách toàn bộ người dùng với thông tin cơ bản của mỗi người dùng.

Luồng sự kiện phụ - Quản trị viên có thể tìm kiếm giao dịch theo tên bằng cách nhập từ khóa vào thanh tìm kiếm.

- Quản trị viên có thể sắp xếp danh sách người dùng.

- Quản trị viên có thể lọc danh sách theo trạng thái (Hoạt động, Ngưng hoạt động)

- Xem danh sách khách hàng (UC31) (Include)

- Xem danh sách chủ sự kiện (UC32) (Include)

- Chỉnh sửa thông tin người dùng (UC33) (Extend)

- Vô hiệu hóa người dùng (UC34) (Extend) Các yêu cầu đặc biệt Không

3.3.4.31 Use Case Xem danh sách khách hàng

Bảng 3.34 Use Case Xem danh sách khách hàng

Tên Use Case Xem danh sách khách hàng

Mục đích Cho phép quản trị viên xem danh sách toàn bộ người dùng có vai trò là Khách hàng trong hệ thống.

Người dùng Quản trị viên Điều kiện kích hoạt

Quản trị viên đang ở trang Quản lý người dùng.

Quản trị viên chọn mục Khách hàng.

Trạng thái hệ thống trước khi bắt đầu

Quản trị viên đang ở trang Quản lý người dùng.

Trạng thái hệ thống sau khi bắt đầu Use

Quản trị viên đang ở trang Quản lý người dùng mục Khách hàng.

1 Hệ thống hiển thị danh sách toàn bộ người dùng với thông tin cơ bản của mỗi người dùng (Avatar, Họ tên, Email, Số điện thoại, Ngày tham gia, Tổng số vé đã mua, Trạng thái).

Luồng sự kiện phụ Không

Các yêu cầu đặc biệt Không

3.3.4.32 Use Case Xem danh sách chủ sự kiện

Bảng 3.35 Use Case Xem danh sách chủ sự kiện

Tên Use Case Xem danh sách chủ sự kiện

Mục đích Cho phép quản trị viên xem danh sách toàn bộ người dùng có vai trò là Chủ sự kiện trong hệ thống.

Người dùng Quản trị viên Điều kiện kích hoạt

Quản trị viên đang ở trang Quản lý người dùng.

Quản trị viên chọn mục Chủ sự kiện.

Trạng thái hệ thống trước khi bắt đầu

Quản trị viên đang ở trang Quản lý người dùng.

Trạng thái hệ thống sau khi bắt đầu Use

Quản trị viên đang ở trang Quản lý người dùng mục Chủ sự kiện.

Thiết kế dữ liệu

Hình 3.4 Sơ đồ Logic Bảng 3.42 Danh sách các bảng trong cơ sở dữ liệu

STT Tên bảng dữ liệu Diễn giải

1 Users Lưu trữ thông tin người dùng

2 Roles Lưu trữ thông tin quyển

3 UserRoles Lưu trữ thông tin phân quyền

4 Events Lưu trữ thông tin sự kiện

5 Categories Lưu trữ thông tin thể loại

6 Albums Lưu trữ thông tin album ảnh sự kiện

7 TicketDetails Lưu trữ thông tin chi tiết vé của sự kiện

8 Tickets Lưu trữ thông tin vé tham gia sự kiện

9 Payments Lưu trữ thông tin giao dịch

10 EmailLoggers Lưu trữ thông tin lịch sử gửi email

3.4.2 Mô tả chi tiết bảng dữ liệu

Bảng 3.43 Mô tả chi tiết bảng Users

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id String PK Mã người dùng

2 Name String Not Null Tên người dùng

3 Email String Not Null Email người dùng

4 Password String Not Null Mật khẩu người dùng

5 PhoneNumber String Not Null Số điện thoại của người dùng

6 DOB DateTime Ngày sinh của người dùng

7 Gender String Giới tính của người dùng

8 Avatar String Đường dẫn ảnh đại diện của người dùng

9 Status Int Not Null Trạng thái của người dùng

11 CreatedAt DateTime Thời gian khi thêm dữ liệu

12 UpdatedAt DateTime Thời gian khi sửa dữ liệu

Bảng 3.44 Mô tả chi tiết bảng Roles

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id String PK Mã quyền

2 Name String Not Null Tên quyền

Bảng 3.45 Mô tả chi tiết bảng UserRoless

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 UserId String FK Mã người dùng

2 RoleId String FK Mã quyền

Bảng 3.46 Mô tả chi tiết bảng Events

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã sự kiện

2 CoverImage String Đường dẫn ảnh bìa của sự kiện

3 Name String Not Null Tên sự kiện

4 Description String Mô tả sự kiện

5 Location String Not Null Địa điểm tổ chức sự kiện

6 EventDate DateTime Not Null Ngày tổ chức sự kiện

7 StartTime DateTime Not Null Thời gian bắt đầu sự kiện

8 EndTime DateTime Not Null Thời gian kết thúc sự kiện

9 CategoryId Int FK Mã thể loại sự kiện thuộc về

Sự kiện giảm giá vé hay không, nếu có thì bằng true, nếu không giảm giá thì bằng false

11 PromotionPlan Int Phần trăm giảm giá

12 PublishTime DateTime Ngày xuất bản sự kiện

13 Favourite Int Số lượt yêu thích sự kiện

14 CreatorId String FK Mã người dùng (Người tạo sự kiện)

15 Share Int Số lượt chia sẻ

16 Status Int Not Null Trang thái của sự kiện

17 CreatedAt DateTime Thời gian khi thêm dữ liệu

18 UpdatedAt DateTime Thời gian khi sửa dữ liệu

Bảng 3.47 Mô tả chi tiết bảng Categories

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã thể loại

2 Name String Not Null Tên thể loại

3 Color String Not Null Màu phân loại của thể loại

4 CreatedAt DateTime Thời gian khi thêm dữ liệu

5 UpdatedAt DateTime Thời gian khi sửa dữ liệu

Bảng 3.48 Mô tả chi tiết bảng Albums

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã album

2 EventId Int FK Mã sự kiện

3 Uri String Not Null Đường dẫn đến ảnh

Bảng 3.49 Mô tả chi tiết bảng TicketDetails

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã chi tiết vé

2 EventId Int FK Mã sự kiện

3 Quantity Int Not Null Tổng số lượng vé

5 StartTime DateTime Not Null Ngày bắt đầu mở bán vé

6 CloseTime DateTime Not Null Ngày kết thúc bán vé

7 SoldQuantity Int Số vé đã bán được

Bảng 3.50 Mô tả chi tiết bảng Tickets

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã vé

3 TicketDetailId Int FK Mã chi tiết vé

4 OwnerName String Not Null Tên chủ vé

5 OwnerEmail String Not Null Email chủ vé

6 OwnerPhone String Not Null Số điện thoại chủ vé

7 PaymentId Int FK Mã giao dịch

8 IsPaid Boolean Not Null Vé đã thanh toán hay chưa

9 Status Int Not Null Trạng thái vé

10 CreatedAt DateTime Thời gian khi thêm dữ liệu

11 UpdatedAt DateTime Thời gian khi sửa dữ liệu

Bảng 3.51 Mô tả chi tiết bảng Payments

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã giao dịch

2 EventId Int FK Mã sự kiện

3 Quantity Int Not Null Số lượng vé đã mua

4 UserId String FK Mã người thanh toán

5 TotalPrice Decimal Not Null Tổng số tiền cần thanh toán

7 CustomerName String Not Null Tên người mua

8 CustomerEmail String Not Null Email người mua

9 CustomerPhon e String Not Null Số điện thoại người mua

10 Status Int Not Null Trạng thái của giao dịch

11 PaymentMetho d String Phương thức thanh toán

12 PaymentIntentI d String Mã Intent của Stripe

13 StripSessionId String Mã Session của Stripe

14 CreatedAt DateTime Thời gian khi thêm dữ liệu

15 UpdatedAt DateTime Thời gian khi sửa dữ liệu

Bảng 3.52 Mô tả chi tiết bảng EmailLoggers

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải

1 Id Int PK Mã log

2 Email String Not Null Email người nhận

3 Message String Not Null Nội dung gửi đi

4 EmailSent DateTime Not Null Thời gian gửi email

XÂY DỰNG ỨNG DỤNG

Danh sách màn hình

Bảng 4.1 Danh sách màn hình

STT Tên màn hình Ý nghĩa / Ghi chú

1 Đăng nhập Đăng nhập vào hệ thống

2 Đăng kí Đăng kí tạo tài khoản mới

3 Trang chủ Trang chủ của ứng dụng, hiển thị các thông tin mang tính giới thiệu

4 Tìm kiếm sự kiện Cho phép tìm kiếm sự kiện của hệ thống

5 Chi tiết sự kiện Hiển thị các thông tin liên quan đến sự kiện

6 404 Trang báo lỗi khi truy cập một trang không tồn tại trong hệ thống

7 Thông tin cá nhân Hiển thị và cho phép chỉnh sửa thông tin cá nhân

8 Khám phá Hiển thị các thông tin mang tính giới thiệu

9 Mua vé Khởi tạo các thông tin cần thiết cho việc mua vé

10 Thanh toán Thanh toán vé đã đặt ở trang mua vé

11 Xác nhận thanh toán thành công

Xác nhận thành công sau khi đã thanh toán xong

12 Vé của tôi Hiển thị danh sách các giao dịch của người dùng

13 Chi tiết giao dịch Hiển thị thông tin chi tiết về giao dịch

14 Tạo sự kiện Cho phép tạo sự kiện mới

15 Sự kiện của tôi Hiển thị danh sách các sự kiện người dùng đã tạo

16 Chỉnh sửa thông tin sự kiện Cho phép chỉnh sửa thông tin của một sự kiện

17 Danh sách giao dịch của sự kiện

Hiển thị danh sách các giao dịch của một sự kiện

18 Bảng điều khiển Hiển thị các thông tin mang tính thống kê trong hệ thống

19 Quản lý sự kiện Cho phép xem danh sách toàn bộ sự kiện trong hệ thống và tương tác với nó

20 Quản lý đơn mua Cho phép xem danh sách toàn bộ giao dịch trong hệ thống và tương tác với nó

Cho phép xem danh sách toàn bộ người dùng trong hệ thống và tương tác với nó

22 Quản lý thể loại Cho phép xem danh sách toàn bộ thể loại trong hệ thống và tương tác với nó

23 Chỉnh sửa thể loại Cho phép chỉnh sửa thông tin của một thể loại

24 Tạo thể loại mới Cho phép tạo thể loại mới

Chi tiết màn hình

Hình 4.1 Màn hình “Đăng nhập” Ở màn hình đăng nhập, người dùng điền thông tin và Đăng nhập.

Hình 4.2 Màn hình “Đăng kí” Ở màn hình Đăng kí, người dùng có thể nhập Họ tên, Email, Số điện thoại,Mật khẩu, Nhập lại lại mật khẩu, không chọn “Tôi muốn đăng kí tài khoản Chủ sự kiện” để đăng kí tài khoản Khách hàng, nếu chọn sẽ đăng kí tài khoản Chủ sự kiện.

Hình 4.3 Màn hình “Trang chủ”

Màn hình trang chủ sẽ hiển thị một số sự kiện và thể loại nổi bật.

4.2.4 Màn hình “Tìm kiếm sự kiện”

Hình 4.4 Màn hình “Tìm kiếm sự kiện”

Màn hình này hiển thị toàn bộ sự kiện của hệ thống Người dùng có thể tìm kiếm sự kiện và lọc sự kiện theo tiêu chí mong muốn

4.2.5 Màn hình “Chi tiết sự kiện”

Hình 4.5 Màn hình “Chi tiết sự kiện”

Màn hình này hiển thị các thông tin về sự kiện như Tên, Mô tả, Thời gian và địa điểm, Thông tin vé, Hình ảnh, Giá vé Người dùng có thể bấm “Mua vé” sau đó sẽ được chuyển đến trang “Mua vé” để thực hiện việc mua vé cho sự kiện này.

Màn hình hiển thị thông báo lỗi không tìm thấy trang Người dùng có thể bấm nút “Trở về trang chủ” để quay trở về trang chủ.

4.2.7 Màn hình “Thông tin cá nhân”

Hình 4.7 Màn hình “Thông tin cá nhân”

Màn hình này hiển thị các thông tin liên quan đến tài khoản Người dùng có thể thay đổi thông tin cá nhân, thay đổi mật khẩu mật khẩu và vô hiệu hóa tài khoản.

Hình 4.8 Màn hình “Khám phá”

Màn hình “Khám phá” sẽ hiển thị một số sự kiện và thể loại nổi bật Người dùng có thể bấm vào thanh tìm kiếm để chuyển sang trang “Tìm kiếm sự kiện” Khi bấm vào một thẻ sự kiện bất kì, người dùng sẽ được chuyển đến trang “Chi tiết sự kiện” để xem các thông tin chi tiết về sự kiện đó.

Hình 4.9 Màn hình “Mua vé”

Màn hình này yêu cầu điền các thông tin cần thiết cho việc mua vé như thông tin liên hệ, thông tin vé Người dùng có thêm vé mới bằng cách bấm vào nút

“Thêm vé” hoặc nút “+” Người dùng có thể xóa đi vé cuối cùng bằng cách bấm vào

“-“ Ở vé đầu tiên người dùng có thể bấm chọn lựa chọn “Lấy thông tin liên lạc” để điền thông tin vé bằng thông tin liên lạc phía trên Nếu bỏ chọn thì thông tin vé được làm trống Sau khi điền đầy đủ thông tin người dùng có thể bấm Thanh toán để chuyển đến trang thanh toán cúa Stripe.

Hình 4.10 Màn hình “Thanh toán”

Trang này hiển thị các thông tin thanh toán Người dùng điền các thông tin thích hợp và bấm Pay để chờ xác nhận thanh toán.

4.2.11 Màn hình “Xác nhận thanh toán thành công”

Hình 4.11 Màn hình “Xác nhận thanh toán thành công”

Trang này hiển thị các thông tin như sự kiện vừa đặt vé, thông tin thanh toán, thông tin liên hệ, thông tin về vé.

4.2.12 Màn hình “Vé của tôi”

Hình 4.12 Màn hình “Vé của tôi”

Màn hình này hiển thị toàn bộ giao dịch mà người dùng đã thực hiện Người dùng có thể bấm “Chỉnh sửa thông tin” và sau đó sẽ được chuyển đến trang “Chỉnh sửa thông tin” Người dùng có thể tìm kiếm theo tên sự kiện bằng cách nhập từ khóa vào thanh tìm kiếm Người dùng có thể bấm “Xem thêm” để xem thêm các giao dịch còn lại Người dùng bấm vào một thẻ bất kì sau đó người dùng sẽ được chuyển đến trang “Chi tiết giao dịch” để xem thông tin chi tiết của một giao dịch.

4.2.13 Màn hình “Chi tiết giao dịch”

Hình 4.13 Màn hình “Chi tiết giao dịch”

Trang này hiển thị các thông tin như thông tin sự kiện, thông tin thanh toán, thông tin liên hệ, thông tin về vé Người dùng có thể quay lại trang “Vé của tôi” bằng cách nhấn vào “Quay lại” Người dùng có thể copy mã vé bằng cách bấm vào biểu tượng copy ngay phía dưới mã vé.

Hình 4.14 Biểu mẫu thay đổi thông tin vé

Người dùng có thể chỉnh sửa thông tin vé bằng cách bấm vào biểu tượng chỉnh sửa ngay cạnh tiêu đề vé Người dùng bấm “Hủy” để hủy hành động thay đổi, bấm “Lưu” để lưu thông tin vé đã chỉnh sửa.

Hình 4.15 Hộp thoại xác nhận hủy vé

Người dùng có thể hủy vé bằng cách bấm vào nút “Hủy vé”, khi đó sẽ có một hộp thoại xuất hiện xác nhận hành động hủy vé Người dùng bấm nút “X” hoặc “Đóng” để tắt hộp thoại Người dùng bấm “Đồng ý” để hủy vé.

Hình 4.16 Vé không hợp lệ

Những vé bị hủy sẽ xuất hiện tag “Vé không hợp lệ”, người dùng không thể thao tác với vé này

4.2.14 Màn hình “Tạo sự kiện”

Hình 4.17 Màn hình “Tạo sự kiện”

Màn hình này hiển thị các biểu mẫu để người dùng điền các thông tin liên quan đến sự kiện Bên trái là thanh trạng thái.

Hình 4.18 Màn hình “Tạo sự kiện” sau khi đã điền xong thông tin

Khi điền xong thông thông tin người dùng bấm “Tiếp theo” chuyển sang phần Xuất bản sự kiện.

Hình 4.19 Màn hình “Tạo sự kiện” ở phần xuất bản sự kiện Ở phần xuất bản sự kiện, người dùng sẽ được xem trước về sự kiện của mình Người dùng có thể chọn “Thông tin sự kiện” để quay lại phần trước đó. Người dùng bấm nút “Xuất bản” để thực hiện tạo sự kiện Người dùng có thể bấm nút “Hủy” để hủy việc tạo sự kiện.

4.2.15 Màn hình “Sự kiện của tôi”

Hình 4.20 Màn hình “Sự kiện của tôi”

Màn hình này hiển thị toàn bộ sự kiện đã tạo Người dùng có thể tìm kiếm,sắp xếp sự kiện, và tương tác với một sự kiện.

4.2.16 Màn hình “Chỉnh sửa thông tin sự kiện”

Hình 4.21 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ nhất

Hình 4.22 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ hai

Màn hình có giao diện và tương tác giống như màn hình “Tạo sự kiện” Màn hình này hiển thị thông tin chi tiết của sự kiện, người dùng có thể chỉnh sửa các thông tin này.

4.2.17 Màn hình “Danh sách giao dịch của sự kiện”

Hình 4.23 Màn hình “Danh sách giao dịch của sự kiện”

Màn hình này hiển thị toàn bộ giao dịch trong một sự kiện đã tạo Người

4.2.18 Màn hình “Bảng điều khiển”

Hình 4.24 Màn hình “Bảng điều khiển”

Màn hình này hiển thị các thống kê và các cập nhật mới nhất trong hệ thống

4.2.19 Màn hình “Quản lý sự kiện”

Hình 4.25 Màn hình “Quản lý sự kiện”

Màn hình này hiển thị toàn bộ sự kiện trong hệ thống Người dùng có thể tìm kiếm, sắp xếp sự kiện, và tương tác với một sự kiện.

4.2.20 Màn hình “Quản lý đơn mua”

Hình 4.26 Màn hình “Quản lý đơn mua”

Màn hình này hiển thị toàn bộ giao dịch của hệ thống Người dùng có thể tìm kiếm, sắp xếp sự kiện, và tương tác với một giao dịch.

4.2.21 Màn hình “Quản lý người dùng”

Hình 4.27 Màn hình “Quản lý người dùng” là Khách hàng

Màn hình này hiển thị toàn bộ người dùng của hệ thống Người dùng có thể tìm kiếm, sắp xếp sự kiện, và tương tác với người dùng.

Hình 4.28 Modal chỉnh sửa thông tin người dùng

Hình 4.29 Modal chỉnh sửa thông tin người dùng tiếp theo

Modal này hiển thị các thông tin liên quan đến người dùng Quản trị viên có thể thay đổi thông tin, vô hiệu hóa người dùng.

Hình 4.30 Modal chỉnh sửa thông tin người dùng tiếp theo

Quản trị viên cũng có thể kích hoạt lại người dùng đã bị vô hiệu hóa bằng cách bấm vào “Kích hoạt tài khoản”.

Hình 4.31 Màn hình “Quản lý người dùng” là Chủ sự kiện

Quản trị viên có thể chọn mục Chủ sự kiện để xem danh sách chủ sự kiện. 4.2.22 Màn hình “Quản lý thể loại”

Hình 4.32 Màn hình “Quản lý thể loại”

Màn hình này hiển thị toàn bộ thể loại của hệ thống Người dùng có thể tìm kiếm, sắp xếp sự kiện, và tương tác với một thể loại.

4.2.23 Màn hình “Chỉnh sửa thể loại”

Hình 4.33 Màn hình “Chỉnh sửa thể loại”

Màn hình này hiển thị thông tin chi tiết của thể loại, người dùng có thể chỉnh sửa các thông tin này Người dùng bấm nút “ Cập nhật”.

4.2.24 Màn hình “Tạo thể loại mới”

Hình 4.34 Màn hình “Tạo thể loại”

Màn hình này hiển thị biểu mẫu để người dùng điền các thông tin liên quan đến thể loại như “Tên thể loại”, “Màu phân loại” Người dùng bấm “Tạo” để tạo thể loại mới.

● Em nhận được sự hỗ trợ, giúp đỡ từ giảng viên, từ đó em đã có định hướng rõ ràng cho đề tài Em cũng đã có kinh nghiệm làm việc với một số công nghệ được áp dụng trong đồ án như Next.js, ASP.NET Core

● Đây là lần đầu em được tiếp xúc với kiến trúc Microservices nên quá trình tìm hiểu còn gặp nhiều khó khăn Các phần mềm tương tự còn hạn chế trên thị trường nên khó khăn trong việc tìm kiếm tư liệ tham khảo.

Ngày đăng: 15/05/2024, 09:30

HÌNH ẢNH LIÊN QUAN

Hình 3.1 Kiến trúc hệ thống - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 3.1 Kiến trúc hệ thống (Trang 17)
Hình 3.2 Sơ đồ Use Case đối với người dùng chưa đăng nhập và đã đăng nhập - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 3.2 Sơ đồ Use Case đối với người dùng chưa đăng nhập và đã đăng nhập (Trang 21)
Hình 3.3 Sơ đồ Use Case đối với Khách hàng, Người tổ chức và Quản trị viên - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 3.3 Sơ đồ Use Case đối với Khách hàng, Người tổ chức và Quản trị viên (Trang 22)
Bảng 3.2 Danh sách các Actor - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Bảng 3.2 Danh sách các Actor (Trang 23)
Bảng 3.5 Use Case Đăng kí - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Bảng 3.5 Use Case Đăng kí (Trang 27)
Bảng 3.16 Use Case Xem danh sách giao dịch - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Bảng 3.16 Use Case Xem danh sách giao dịch (Trang 38)
Bảng 3.34 Use Case Xem danh sách khách hàng - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Bảng 3.34 Use Case Xem danh sách khách hàng (Trang 60)
3.4.2.4. Bảng Events - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
3.4.2.4. Bảng Events (Trang 70)
Hình 4.1 Màn hình “Đăng nhập” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.1 Màn hình “Đăng nhập” (Trang 75)
Hình 4.2 Màn hình “Đăng kí” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.2 Màn hình “Đăng kí” (Trang 76)
Hình 4.3 Màn hình “Trang chủ” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.3 Màn hình “Trang chủ” (Trang 77)
Hình 4.4 Màn hình “Tìm kiếm sự kiện” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.4 Màn hình “Tìm kiếm sự kiện” (Trang 78)
Hình 4.8 Màn hình “Khám phá” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.8 Màn hình “Khám phá” (Trang 81)
Hình 4.9 Màn hình “Mua vé” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.9 Màn hình “Mua vé” (Trang 82)
Hình 4.11 Màn hình “Xác nhận thanh toán thành công” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.11 Màn hình “Xác nhận thanh toán thành công” (Trang 84)
Hình 4.12 Màn hình “Vé của tôi” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.12 Màn hình “Vé của tôi” (Trang 85)
Hình 4.13 Màn hình “Chi tiết giao dịch” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.13 Màn hình “Chi tiết giao dịch” (Trang 86)
Hình 4.14 Biểu mẫu thay đổi thông tin vé - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.14 Biểu mẫu thay đổi thông tin vé (Trang 86)
Hình 4.15 Hộp thoại xác nhận hủy vé - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.15 Hộp thoại xác nhận hủy vé (Trang 87)
Hình 4.18 Màn hình “Tạo sự kiện” sau khi đã điền xong thông tin - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.18 Màn hình “Tạo sự kiện” sau khi đã điền xong thông tin (Trang 89)
Hình 4.19 Màn hình “Tạo sự kiện” ở phần xuất bản sự kiện - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.19 Màn hình “Tạo sự kiện” ở phần xuất bản sự kiện (Trang 90)
Hình 4.22 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ hai - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.22 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ hai (Trang 93)
Hình 4.24 Màn hình “Bảng điều khiển” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.24 Màn hình “Bảng điều khiển” (Trang 94)
Hình 4.25 Màn hình “Quản lý sự kiện” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.25 Màn hình “Quản lý sự kiện” (Trang 95)
Hình 4.28 Modal chỉnh sửa thông tin người dùng - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.28 Modal chỉnh sửa thông tin người dùng (Trang 96)
Hình 4.27 Màn hình “Quản lý người dùng” là Khách hàng - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.27 Màn hình “Quản lý người dùng” là Khách hàng (Trang 96)
Hình 4.29 Modal chỉnh sửa thông tin người dùng tiếp theo - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.29 Modal chỉnh sửa thông tin người dùng tiếp theo (Trang 97)
Hình 4.30 Modal chỉnh sửa thông tin người dùng tiếp theo - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.30 Modal chỉnh sửa thông tin người dùng tiếp theo (Trang 97)
Hình 4.32 Màn hình “Quản lý thể loại” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.32 Màn hình “Quản lý thể loại” (Trang 98)
Hình 4.33 Màn hình “Chỉnh sửa thể loại” - đồ án 1 xây dựng website quản lý sự kiện và bán vé dựa trên kiến trúc microservices
Hình 4.33 Màn hình “Chỉnh sửa thể loại” (Trang 99)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w