đồ á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 0 0
Tài liệu đã được kiểm tra trùng lặ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

Đ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

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

TP HỒ CHÍ MINH, 2023

Trang 3

LỜI CẢM ƠN

Trong suốt quá trình thực hiện Đồ án 1 với đề 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", em đã nhận được rất nhiều sựgiúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của cô Th.S Trần Thị Hồng Yến, giảngviên hướng dẫn của em.

Cô Yến đã dành rất nhiều thời gian và tâm huyết để hướng dẫn em trongsuốt quá trình thực hiện đồ án Cô đã giúp em định hướng đề tài, xây dựng kếhoạch, triển khai các chức năng của hệ thống và hoàn thiện đồ án Cô cũng đã đưara rất nhiều góp ý quý báu giúp em hoàn thiện đồ án một cách tốt nhất.

Em xin chân thành cảm ơn cô Yến đã luôn đồng hành, hỗ trợ và giúp đỡ emtrong suốt quá trình thực hiện đồ án Em cũng xin cảm ơn các thầy cô trường Đạihọc Công nghệ Thông tin đã giảng dạy và truyền đạt cho em những kiến thức quýbáu trong suốt quá trình học tập tại trường.

Trong quá trình thực hiện đồ án có thể không tránh khỏi được sai sót, emkính mong nhận được sự góp ý, hướng dẫn của cô để có thể hoàn thiện đồ án hơnnữa, và em cũng mong muốn được tiếp tục đồng hành cùng cô trong những đồ ántiếp theo.

Em xin gửi lời cảm ơn chân thành nhất đến cô.

TP.HCM, ngày 22 tháng 12 năm 2023Sinh viên thực hiện

Trần Vương Duy

Trang 4

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

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

Trang 5

3.3.3 Danh sách Use Case 21

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

Trang 6

4.2.14 Màn hình “Tạo sự kiện” 86

4.2.15 Màn hình “Sự kiện của tôi” 88

4.2.16 Màn hình “Chỉnh sửa thông tin sự kiện” 89

4.2.17 Màn hình “Danh sách giao dịch của sự kiện” 90

Trang 7

Hình 4.21 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ nhất 89Hình 4.22 Màn hình “Chỉnh sửa thông tin sự kiện” phần thứ hai 90Hình 4.23 Màn hình “Danh sách giao dịch của sự kiện” 90

Trang 8

Hình 4.25 Màn hình “Quản lý sự kiện” 92

Hình 4.27 Màn hình “Quản lý người dùng” là Khách hàng 93Hình 4.28 Modal chỉnh sửa thông tin người dùng 93Hình 4.29 Modal chỉnh sửa thông tin người dùng tiếp theo 94Hình 4.30 Modal chỉnh sửa thông tin người dùng tiếp theo 94Hình 4.31 Màn hình “Quản lý người dùng” là Chủ sự kiện 95Hình 4.32 Màn hình “Quản lý thể loại” 95Hình 4.33 Màn hình “Chỉnh sửa thể loại” 96

Trang 9

DANH MỤC BẢNG

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

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

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

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

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

Bảng 3.15 Use Case Xác nhận thanh toán thành công 36Bảng 3.16 Use Case Xem danh sách giao dịch 37Bảng 3.17 Use Case Xem danh sách vé đã mua 38

Bảng 3.19 Use Case Xem danh sách sự kiện 41Bảng 3.20 Use Case Chỉnh sửa thông tin sự kiện 42Bảng 3.21 Use Case Xem danh sách đơn mua 44Bảng 3.22 Use Case Xem chi tiết đơn mua 45

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

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

Trang 10

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

Bảng 3.31 Use Case Xem danh sách giao dịch 55Bảng 3.32 Use Case Xem chi tiết giao dịch 56Bảng 3.33 Use Case Xem danh sách người dùng 57Bảng 3.34 Use Case Xem danh sách khách hàng 58Bảng 3.35 Use Case Xem danh sách chủ sự kiện 59Bảng 3.36 Use Case Chỉnh sửa thông tin người dùng 60Bảng 3.37 Use Case Vô hiệu hóa người dùng 61Bảng 3.38 Use Case Kích hoạt người dùng 62Bảng 3.39 Use Case Xem danh sách thể loại 63

Bảng 3.41 Use Case Chỉnh sửa thông tin thể loại 65Bảng 3.42 Danh sách các bảng trong cơ sở dữ liệu 67

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

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

Bảng 3.49 Mô tả chi tiết bảng TicketDetails 70Bảng 3.50 Mô tả chi tiết bảng Tickets 71Bảng 3.51 Mô tả chi tiết bảng Payments 71Bảng 3.52 Mô tả chi tiết bảng EmailLoggers 72

Trang 11

TÓM TẮT ĐỒ ÁN

Đồ án tập trung vào nghiên cứu và triển khai kiến trúc Microservices, mộtxu hướng phổ biến trong phát triển phần mềm Kiến trúc này cho phép phát triểnvà triển khai ứng dụng theo hình thức module hóa, giúp quản lý và bảo trì dễ dànghơn, đồng thời giảm thiểu sự phụ thuộc giữa các thành phần.

Với sự gia tăng nhu cầu quảng bá sự kiện và quản lý bán vé, đồ án tập trungvào xây dựng một Website quản lý sự kiện và bán vé sử dụng kiến trúcMicroservices Mục tiêu của đề tài là nghiên cứu kiến trúc Microservices và ápdụng nó để giải quyết thách thức thực tế trong việc quảng bá sự kiện và quản lýbán vé.

Website được phát triển nhằm đáp ứng nhu cầu của cả nhà tổ chức vàngười dùng Công cụ này không chỉ cung cấp khả năng quảng bá sự kiện mà còn hỗtrợ quản lý và bán vé trực tuyến Người dùng có thể dễ dàng tìm kiếm, mua vé vàtham gia các sự kiện theo sở thích và mong muốn cá nhân.

Bằng cách xây dựng website này, em mong muốn cung cấp cái nhìn rõ hơn vềkiến trúc Microservices và cách tích hợp nó trong quá trình xây dựng ứng dụngweb hiện đại Đồng thời, em cũng hi vọng đề tài này sẽ mang lại giải pháp thực tếcho việc quản lý sự kiện và bán vé trực tuyến, đáp ứng đa dạng nhu cầu của cảngười tổ chức và người tham gia sự kiện.

Đồ án này có tổng cộng 4 chương chính:

● Chương 1 (Giới thiệu chung) sẽ mô tả lí do chọn đề tài, xác định phạm vi

nghiên cứu, miêu tả đối tượng nghiên cứu và trình bày các phương phápđược sử dụng.

● Chương 2 (Công nghệ sử dụng) sẽ mô tả các công nghệ được sử dụng trong

dự án.

● Chương 3 (Thiết kế hệ thống) sẽ mô tả kiến trúc hệ thống và các thành phầnchính, đồng thời phân tích các yêu cầu chức năng của hệ thống, đưa ra các sơđồ để làm rõ hơn về các đối tượng nghiên cứu trong đồ án này.

● Chương 4 (Xây dựng ứng dụng) sẽ liệt kê và mô tả chi tiết các thành phần

giao diện và cách tương tác với ứng dụng

Trang 12

CHƯƠNG 1 GIỚI THIỆU CHUNG

1.1 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 modulehó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úcMicroservices" 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ạilợ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, đồngthờ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, websitenà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 websitecó 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ệusuấ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ạicá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.

1.2 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êncô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.

1.3 Đối tượng nghiên cứu- Kiến trúc Microservices.

Trang 13

- Các công nghệ:

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

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

● State Management: SWR, Zustand.

● Database: Microsoft SQL Server.

● 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ánnày.

1.4 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.

Trang 14

CHƯƠNG 2 CÔNG NGHỆ SỬ DỤNG

2.1 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âydự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ãitrong 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úpquả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ếntrúc Monolithic, nó giúp giải quyết vấn đề của việc triển khai toàn bộ ứng dụng khicó 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ốngkê 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.

2.2 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ềutí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à ápdụ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.jscung cấp nhiều plugin và thư viện hỗ trợ phát triển ứng dụng.

2.3 ASP.NET Core

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

Trang 15

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ợpcho 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.

2.4 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ínhnă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 truycậ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.

2.5 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 độngnhư 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ácnhau: Producer (gửi thông điệp), Azure Message Bus (trung gian lưu trữ và chuyểntiế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.

Trang 16

2.6 Ocelot

Ocelot là một bộ mã nguồn mở cho phép xây dựng API Gateway trên NETvà NET Core, là thành phần trung gian giữa client và các dịch vụ backend Nó giúpgiả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ảicho 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ềntảng NET và NET Core.

2.7 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 ngaylậ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ậpnhậ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ảinghiệm real-time.

2.8 Zustand

Zustand là thư viện quản lý trạng thái cho ứng dụng React, giúp đơn giản hóaquá 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 ứngdụ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 caovà 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 khainhanh chóng một giải pháp quản lý trạng thái.

Trang 17

CHƯƠNG 3 THIẾT KẾ HỆ THỐNG

3.1 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

Trang 18

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

1 Client App Web App

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ốngthông qua trình duyệt web.

2 Microservices

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

API Gateway

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

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

Cung cấp khả năng quản lý thông tinngườ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é.

Azure Message Bus

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

Email API

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

3.2 Phân tích yêu cầu3.2.1 Đăng kí

Sau khi hoàn thành Form Đăng kí và bấm nút Đăng kí Nếu đăng kí thành công

Trang 19

sẽ hiện popup thông báo, sau đó người dùng sẽ được chuyển đến trang Đăngnhập, đồng thời gửi đến Gmail của người dùng để xác nhận đã đăng kí tài khoảnthà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.

3.2.2 Đăng nhập

Sau khi hoàn thành Form Đăng nhập và bấm nút Đăng nhập Đăng nhập thànhcô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.3.2.4 Tìm kiếm sự kiện

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.3.2.6 Mua vé

Người dùng vào trang trang Thanh toán, hoàn thành thông tin thanh toán Khihoàn thành tất cả người dùng chọn Thanh toán ngay để chuyển đến trang thanhtoá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.

3.2.7 Quản lý vé

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 đó Trangthông tin đơn thanh toán sẽ hiển thị thông tin liên quan đến vé.

3.2.8 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ị viên có thể quản lý toàn bộ sự kiện của hệ thống, có thể chỉnh sửa,

Trang 20

thêm, xóa sự kiện và thống kê.3.2.9 Quản lý giao dịch- Đố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ôngtin đơ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 đó.

3.2.10 Quản lý thể loại

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ỉnhsử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ửathông tin của từng người dùng trong hệ thống.

3.2.11 Thống kê

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ệnvà giao dịch trong hệ thống.

Trang 21

3.3 Thiết kế hệ thống3.3.1 Sơ đồ Use Case

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

Trang 22

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 23

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

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

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

3.3.3 Danh sách Use Case

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

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

1 Đăng nhập

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

Đăng nhập bằng tài khoản đã đăngkí

2 Đăng kí

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

Tạo tài khoản mới

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

Trang 24

4 Tìm kiếm sự kiện

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ùng6 Đă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ện8 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

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áchcác sự kiện đã tạo

Trang 25

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 tinmộ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 đơnmua (giao dịch)

20 Sao chép mã vé

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

Sao chép mã vé

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 tinchung, 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 tincủ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

Trang 26

29 Xem chi tiết giao

dịch Quản trị viên

Quản trị viên xem thông tin chi tiếtcủ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àngtrong 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 tincủ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ườidù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ùng36 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ới38 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 tinmột thể loại

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

3.3.4.1.Use Case Đăng nhập

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í.

Trang 27

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 Use Case

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 Case

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

Luồng sự kiện chính

1 Người dùng ấn nút “Đăng nhập” trên thanh điềuhướ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

3.3.4.2.Use Case Đăng kí

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ụngNgười dùng Người dùng chưa đăng nhập

Trang 28

Đ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ướngTrạng thái hệ thống

trước khi bắt đầu Use Case

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

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

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

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

Trang 29

- “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 Use Case

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 Case

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

Luồng sự kiện chính

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.).

Luồng sự kiện phụ

- 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ự

Trang 30

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 Use Case

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 Case

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

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

Trang 31

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 Use Case

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 Case

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.

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.

Luồng sự kiện phụ

- 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ôngthay đổ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ửalại.

Mở rộng

- Đổi mật khẩu

- Vô hiệu hóa tài khoản

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

Trang 32

không được vượt quá 100 kí tự.

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

- “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.6.Use Case Đăng xuấ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ậpTrạng thái hệ thống

trước khi bắt đầu Use Case

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

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

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

Luồng sự kiện chính

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"Đăng Xuất".

3 Hệ thống thực hiện quá trình đăng xuất, hủy bỏ phiênlà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

3.3.4.7.Use Case Mua vé

Trang 33

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ọnNgườ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ệnTrạng thái hệ thống

trước khi bắt đầu Use Case

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 Case

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

Luồng sự kiện chính

1 Hệ thống kiểm tra xem người dùng đã đăng nhập haychư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 muavé.

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 danhtính.

Luồng sự kiện phụ

- 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ệ

Trang 34

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ủangườ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 Use Case

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

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

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

Luồng sự kiện chính

1 Hệ thống mặc định hiển thị thông tin liên hệ hiện tạicủ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á100 kí tự.

- “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ự.

Trang 35

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 Use Case

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

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

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

Luồng sự kiện chính

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ấmnú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ềnthô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é.

Trang 36

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 Case

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á100 kí tự.

- “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.11 Use Case Thanh toán

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ôngtin.

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é.

Trang 37

Use Case

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

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

Luồng sự kiện chính

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ánStripe.

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ànhcô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 tinthanh 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à đượcchuyể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

Trang 38

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 Case

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

Luồng sự kiện chính

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 đã muavé, 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ànhcô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.

Trang 39

trước khi bắt đầu Use Case

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

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

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 trongmột giao dịch cụ thể.

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

Trang 40

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ớiNgườ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ềuhướng.

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

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

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

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ện2 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é“Trả phí”).

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

Tài liệu liên quan