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

Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến

130 2 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 hệ thống bán vé xem phim trực tuyến
Tác giả Nguyễn Ngọc Hải, Trần Văn Nguyên
Người hướng dẫn ThS. Trương Thị Khánh Dịp
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 130
Dung lượng 11,3 MB

Nội dung

Đối tượng nghiên cứu Đối với đề tài này, đối tượng nghiên cứu dựa trên nhu cầu sử dụng, giải trí, tạo ra một môi trường cho mọi người có thể thuận tiện đặt vé trực tuyến, lựa chọn

Trang 1

THÀNH PHỐ HỒ CHÍ MINH

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN

TRẦN VĂN NGUYÊN

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÔNG NGHỆ PHẦN MỀM



NGUYỄN NGỌC HẢI – 20110639 TRẦN VĂN NGUYÊN - 20110685

XÂY DỰNG HỆ THỐNG BÁN VÉ XEM

PHIM TRỰC TUYẾN

KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT

GIÁO VIÊN HƯỚNG DẪN ThS TRƯƠNG THỊ KHÁNH DỊP

KHÓA 2020 - 2024

Trang 3

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên 1: Nguyễn Ngọc Hải MSSV 1: 20110639

Họ và tên Sinh viên 2: Trần Văn Nguyên MSSV 1: 20110685

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng hệ thống bán vé xem phim trực tuyến

Họ và tên Giáo viên hướng dẫn: ThS Trương Thị Khánh Dịp

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm

4 Đề nghị cho bảo vệ hay không ?

Tp Hồ Chí Minh, ngày tháng năm 2024

Giáo viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 4

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên 1: Nguyễn Ngọc Hải MSSV 1: 20110639

Họ và tên Sinh viên 2: Trần Văn Nguyên MSSV 1: 20110685

Ngành: Công nghệ Thông tin

Tên đề tài: Xây dựng hệ thống bán vé xem phim trực tuyến

Họ và tên Giáo viên phản biện: TS. Lê Văn Vinh

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm

4 Đề nghị cho bảo vệ hay không ?

Tp Hồ Chí Minh, ngày tháng năm 2024

Giáo viên phản biện

(Ký & ghi rõ họ tên)

Trang 5

Chúng em nhận thức rằng việc học hỏi không bao giờ có điểm dừng, và dù đã cố gắng hết sức nhưng vẫn không tránh khỏi những thiếu sót Rất mong nhận được sự góp

ý tận tình từ quý thầy (cô) để từ đó rút kinh nghiệm, hoàn thiện và nâng cấp sản phẩm của chúng em một cách tốt nhất có thể

Chúng em xin chân thành cảm ơn!

Nhóm thực hiện

Nguyễn Ngọc Hải - 20110639 Trần Văn Nguyên - 20110685

Trang 6

Trường ĐH Sư Phạm Kỹ Thuật TP.HCM

Khoa : CNTT

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

Họ và Tên SV thực hiện 1 : Nguyễn Ngọc Hải Mã Số SV : 20110639

Họ và Tên SV thực hiện 2 : Trần Văn Nguyên Mã Số SV : 20110685 Thời gian làm luận văn : Từ : 04/03/2024 Đến : 22/06/2024

Chuyên ngành : Công nghệ phần mềm

Tên luận văn : Xây dựng hệ thống bán vé xem phim trực tuyến

GV hướng dẫn : ThS Trương Thị Khánh Dịp

Nhiệm Vụ Của Luận Văn :

1 Tìm hiểu công nghệ NestJS, MongoDB, FireBase và ReactJS

2 Thiết kế phần mền hoàn chỉnh dựa trên những công nghệ đã tìm hiểu

3 Tìm hiểu và thực hiện kiểm thử phầm mềm

4 Đánh giá ưu, nhược điểm và đưa ra hướng phát triển của phần mềm

5 Hiểu được quy trình và cách thức hoạt động của một sản phẩm thực tế

Đề cương viết luận văn :

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN 1

1.1 Tính cấp thiết của đề tài 1

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

1.3 Phạm vi nghiên cứu 2

1.3.1 Trải nghiệm người dùng 2

1.3.2 Quản lý hệ thống và dữ liệu 2

1.3.3 Quản lý kinh doanh và marketing 2

1.3.4 Quản lý hệ thống và kỹ thuật 2

1.4 Mục tiêu của đề tài 3

1.5 Ý nghĩa khoa học và thực tiễn 3

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5

2.1 Các công nghệ sử dụng ở Front-End 5

Trang 7

2.1.1 ReactJS Framework 5

2.1.2 Các thư viện hỗ trợ khác 7

2.2 Các công nghệ sử dụng ở Back-End 8

2.2.1 NestJS 8

2.2.2 MongoDB 10

2.2.3 Các thư viện hỗ trợ khác 11

CHƯƠNG 3 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 13

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

3.1.1 CGV Vietnam 13

3.1.2 Lotte Cinema Vietnam 14

3.1.3 Galaxy Cinema 15

3.1.4 Kết luận 16

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

3.2.1 Yêu cầu chức năng 17

3.2.2 Yêu cầu phi chức năng 17

3.3 Mô hình hóa yêu cầu 18

3.3.1 Lược đồ Usecase 18

3.3.2 Mô hình hóa yêu cầu 19

CHƯƠNG 4 THIẾT KẾ PHẦN MỀM 42

4.1 Lược đồ lớp 42

4.2 Lược đồ hoạt động(Activity diagram) 43

4.3 Lược đồ tuần tự 47

4.4 Thiết kế cơ sở dữ liệu 56

4.4.1 Lược đồ cơ sở dữ liệu 56

4.4.2 Chi tiết bảng dữ liệu 57

4.5 Thiết kế giao diện 62

4.5.1 Màn hình giao diện phía người dùng 62

4.5.2 Màn hình giao diện phía admin 81

CHƯƠNG 5 CÀI ĐẶT VÀ KIỂM THỬ 100

5.1 Công cụ dùng trong dự án 100

5.2 Cài đặt ứng dụng 100

5.3 Kiểm thử 101

5.3.1 Mục tiêu kiểm thử 101

5.3.2 Phạm vi kiểm thử 102

5.3.3 Quy trình kiểm thử 102

5.3.4 Kết quả kiểm thử 104

Trang 8

CHƯƠNG 6 KẾT LUẬN 112

6.1 Kết quả đạt được 112

6.1.1 Về mặt lý thuyết 112

6.1.2 Về mặt ứng dụng 112

6.2 Ưu điểm 112

6.3 Nhược điểm 113

6.4 Hướng phát triển 113

KẾ HOẠCH THỰC HIỆN

STT Thời gian Công việc Ghi chú

1 04/03/2024 -

10/03/2024

Nghiên cứu đề tài Tìm hiểu yêu cầu của hệ thống, nghiên cứu

các hệ thống bán vé xem phim trực tuyến hiện có Lập danh sách các yêu cầu cơ bản và chức năng chính của hệ thống

2 11/03/2024 -

15/03/2024

Khảo sát hiện trường Tiến hành khảo sát các rạp chiếu phim để

hiểu rõ quy trình bán vé hiện tại Thu thập thông tin chi tiết về quy trình bán vé và các yêu cầu của người dùng, biết được các ưu và nhược điểm từng rạp

3 16/03/2024 -

20/03/2024

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

mô hình hoá yêu cầu

Phân tích yêu cầu hệ thống từ thông tin đã thu thập được, mô hình hoá yêu cầu đã phân tích

4 21/03/2024 -

31/03/2024

Thiết kế giao diện người dùng

Thiết kế giao diện người dùng (UI/UX) cho

hệ thống Hoàn thành các bản thiết kế giao diện

5 01/04/2024 -

07/04/2024

Thiết kế cơ sở dữ liệu Thiết kế cơ sở dữ liệu, lập mô hình dữ liệu

Hoàn thành mô hình ERD và các bảng trong

cơ sở dữ liệu

6 08/04/2024 -

14/04/2024

Thiết kế các lược đồ UML

Thiết kế các lược đồ lớp, lược đồ hoạt động, lược đồ tuần tự, và các lược đồ UML khác

7 15/04/2024 -

17/04/2024

Lập kế hoạch phát triển

Lập kế hoạch chi tiết cho các giai đoạn phát triển, phân công nhiệm vụ cho các thành viên trong nhóm

Trang 9

Tích hợp phần backend và frontend, kiểm tra kết nối và chức năng cơ bản Đảm bảo hệ thống hoạt động cơ bản

9 19/05/2024 -

21/05/2024

Kiểm thử hệ thống (giai đoạn 1)

Kiểm thử chức năng cơ bản của hệ thống Kết quả: Sửa lỗi và cải thiện các chức năng cơ bản

Kiểm thử toàn bộ hệ thống, bao gồm các chức năng nâng cao Tối ưu hệ thống

12 07/06/2024 -

14/06/2024

Triển khai thử nghiệm Triển khai hệ thống thử nghiệm cho một số

người dùng Thu thập phản hồi và điều chỉnh

hệ thống nếu cần

13 15/06/2024 -

22/06/2024

Hoàn thành báo cáo Viết và hoàn thiện báo cáo luận án

Tp Hồ Chí Minh, ngày tháng năm 2024

Người viết đề cương

Ý kiến của giáo viên hướng dẫn

(ký và ghi rõ họ tên)

Trang 10

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN 1

1.1 Tính cấp thiết của đề tài 1

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

1.3 Phạm vi nghiên cứu 2

1.3.1 Trải nghiệm người dùng 2

1.3.2 Quản lý hệ thống và dữ liệu 2

1.3.3 Quản lý kinh doanh và marketing 2

1.3.4 Quản lý hệ thống và kỹ thuật 2

1.4 Mục tiêu của đề tài 3

1.5 Ý nghĩa khoa học và thực tiễn 3

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5

2.1 Các công nghệ sử dụng ở Front-End 5

2.1.1 ReactJS Framework 5

2.1.2 Các thư viện hỗ trợ khác 7

2.2 Các công nghệ sử dụng ở Back-End 8

2.2.1 NestJS 8

2.2.2 MongoDB 10

2.2.3 Các thư viện hỗ trợ khác 11

CHƯƠNG 3 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 13

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

3.1.1 CGV Vietnam 13

3.1.2 Lotte Cinema Vietnam 14

3.1.3 Galaxy Cinema 15

3.1.4 Kết luận 16

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

3.2.1 Yêu cầu chức năng 17

3.2.2 Yêu cầu phi chức năng 17

3.3 Mô hình hóa yêu cầu 18

3.3.1 Lược đồ Usecase 18

3.3.2 Mô hình hóa yêu cầu 19

CHƯƠNG 4 THIẾT KẾ PHẦN MỀM 42

4.1 Lược đồ lớp 42

4.2 Lược đồ hoạt động(Activity diagram) 43

4.3 Lược đồ tuần tự 47

Trang 11

4.4 Thiết kế cơ sở dữ liệu 56

4.4.1 Lược đồ cơ sở dữ liệu 56

4.4.2 Chi tiết bảng dữ liệu 57

4.5 Thiết kế giao diện 62

4.5.1 Màn hình giao diện phía người dùng 62

4.5.2 Màn hình giao diện phía admin 81

CHƯƠNG 5 CÀI ĐẶT VÀ KIỂM THỬ 100

5.1 Công cụ dùng trong dự án 100

5.2 Cài đặt ứng dụng 100

5.3 Kiểm thử 101

5.3.1 Mục tiêu kiểm thử 101

5.3.2 Phạm vi kiểm thử 102

5.3.3 Quy trình kiểm thử 102

5.3.4 Kết quả kiểm thử 104

CHƯƠNG 6 KẾT LUẬN 112

6.1 Kết quả đạt được 112

6.1.1 Về mặt lý thuyết 112

6.1.2 Về mặt ứng dụng 112

6.2 Ưu điểm 112

6.3 Nhược điểm 113

6.4 Hướng phát triển 113

Trang 12

DANH MỤC BẢNG

Bảng 3.1 Đặc tả usecase xem danh sách phim 19

Bảng 3.2 Đặc tả usecase xem chi tiết từng bộ phim 21

Bảng 3.3 Đặc tả usecase xem lịch chiếu 21

Bảng 3.4 Đặc tả usecase đăng nhập vào tài khoản 23

Bảng 3.5 Đặc tả usecase đăng ký tài khoản mới 24

Bảng 3.6 Đặc tả usecase tìm kiếm phim và lịch chiếu 26

Bảng 3.7 Đặc tả usecase đặt vé 27

Bảng 3.8 Đặc tả usecase thanh toán vé đã chọn 28

Bảng 3.9 Đặc tả usecase xem thông tin vé đã đặt 30

Bảng 3.10 Đặc tả usecase xem thông tin cá nhân 31

Bảng 3.11 Đặc tả usecase cập nhật thông tin cá nhân 32

Bảng 3.12 Đặc tả usecase thêm mới bộ phim 33

Bảng 3.13 Đặc tả usecase sửa thông tin phim 35

Bảng 3.14 Đặc tả usecase thêm lịch chiếu 36

Bảng 3.15 Đặc tả usecase sửa thông tin lịch chiếu 37

Bảng 3.16 Đặc tả usecase xem danh sách vé đặt 39

Bảng 3.17 Đặc tả usecase quản lý tài khoản người dùng 40

Bảng 4.1 Chi tiết dữ liệu bảng users 57

Bảng 4.2 Chi tiết dữ liệu bảng banners 57

Bảng 4.3 Chi tiết dữ liệu bảng bookings 58

Bảng 4.4 Chi tiết dữ liệu bảng combos 58

Bảng 4.5 Chi tiết dữ liệu bảng products 59

Bảng 4.6 Chi tiết dữ liệu bảng genres 59

Bảng 4.7 Chi tiết dữ liệu bảng movies 59

Bảng 4.8 Chi tiết dữ liệu bảng theaters 60

Bảng 4.9 Chi tiết dữ liệu bảng rooms 61

Bảng 4.10 Chi tiết dữ liệu bảng ticket_price 61

Bảng 4.11 Chi tiết dữ liệu bảng showtimes 61

Bảng 4.12 Chi tiết dữ liệu bảng seats 61

Bảng 4.13 Danh sách màn hình sử dụng phía người dùng 63

Bảng 4.14 Chi tiết màn hình đăng ký tài khoản 65

Bảng 4.15 Chi tiết màn hình xác nhận tài khoản 66

Bảng 4.16 Chi tiết màn hình đăng nhập 66

Bảng 4.17 Chi tiết màn hình quên mật khẩu 67

Bảng 4.18 Chi tiết màn hình xác nhận quên mật khẩu 68

Bảng 4.19 Chi tiết màn hình điều hướng 69

Bảng 4.20 Chi tiết màn hình trang chủ 71

Bảng 4.21 Chi tiết màn hình lịch chiếu 72

Bảng 4.22 Chi tiết màn hình danh sách phim 73

Bảng 4.23 Chi tiết màn hình lịch chi tiết phim 75

Bảng 4.24 Chi tiết màn hình danh sách ghế 76

Bảng 4.25 Chi tiết màn hình thông tin thanh toán 77

Bảng 4.26 Chi tiết màn hình thông tin cá nhân 80

Bảng 4.27 Danh sách màn hình sử dụng phía Quản trị viên 83

Trang 13

Bảng 4.28 Chi tiết màn hình đăng nhập trang quản lý 84

Bảng 4.29 Chi tiết màn hình quên mật khẩu trang quản lý 84

Bảng 4.30 Chi tiết màn hình quên mật khẩu trang quản lý 85

Bảng 4.31 Chi tiết thanh điều hướng trang quản lý 86

Bảng 4.32 Chi tiết màn hình quản lý phim 87

Bảng 4.33 Chi tiết màn hình thêm, cập nhật phim 88

Bảng 4.34 Chi tiết màn hình quản lý banner 89

Bảng 4.35 Chi tiết màn hình thêm, cập nhật banner 90

Bảng 4.36 Chi tiết màn hình quản lý rạp chiếu phim 91

Bảng 4.37 Chi tiết màn hình thêm, cập nhật rạp chiếu phim 92

Bảng 4.38 Chi tiết màn hình quản lý người dùng 92

Bảng 4.39 Chi tiết màn hình thêm, cập nhật người dùng 93

Bảng 4.40 Chi tiết màn hình quản lý combo 94

Bảng 4.41 Chi tiết màn hình thêm, cập nhật combo 95

Bảng 4.42 Chi tiết màn hình quản lý lịch chiếu 96

Bảng 4.43 Chi tiết màn hình thêm, cập nhật lịch chiếu 96

Bảng 4.44 Chi tiết màn hình quản lý vé đặt - 011 97

Bảng 4.45 Chi tiết màn hình quản lý thông tin cá nhân 98

Bảng 4.46 Chi tiết màn hình đổi mật khẩu 98

Bảng 5.1 Phạm vi kiểm thử 102

Bảng 5.2 Kết quả kiểm thử 104

Bảng 5.3 Kết quả kiểm thử các chức năng 104

Trang 14

DANH MỤC HÌNH ẢNH

Hình 2.1 Virtual DOM trong ReactJS 5

Hình 2.2 One-way binding trong ReactJS 6

Hình 2.3 Cấu trúc của NestJS 9

Hình 2.4 Kiến trúc của MongoDB 10

Hình 2.5 Các thành phần của JWT 12

Hình 3.1 Khảo sát hiện trạng CGV Vietnam 13

Hình 3.2 Khảo sát hiện trạng CGV Vietnam 14

Hình 3.3 Khảo sát hiện trạng Lotte Cinema Vietnam 15

Hình 3.4 Khảo sát hiện trạng trang Galaxy Cinema 16

Hình 3.5 Usecase cho người dùng 18

Hình 3.6 Usecase cho quản trị viên 19

Hình 4.1 Lược đồ lớp 42

Hình 4.2 Lược đồ hoạt động chức năng xem thông tin cá nhân và vé đã đặt 43

Hình 4.3 Lược đồ hoạt động chức năng cập nhật thông tin phim 43

Hình 4.4 Lược đồ hoạt động chức năng cập nhật lịch chiếu 44

Hình 4.5 Lược đồ hoạt động chức năng quản lý đơn đặt vé 44

Hình 4.6 Lược đồ hoạt động chức năng xem thống kê 45

Hình 4.7 Lược đồ hoạt động chức năng đặt vé 45

Hình 4.8 Lược đồ hoạt động chức năng xem thông tin lịch chiếu 46

Hình 4.9 Lược đồ hoạt động chức năng xem thông tin phim 46

Hình 4.10 Lược đồ tuần tự chức năng xem danh sách phim 47

Hình 4.11 Lược đồ tuần tự chức năng xem chi tiết phim 47

Hình 4.12 Lược đồ tuần tự chức năng xem lịch chiếu 48

Hình 4.13 Lược đồ tuần tự chức năng đăng nhập 48

Hình 4.14 Lược đồ tuần tự chức năng đặt vé 49

Hình 4.15 Lược đồ tuần tự chức năng tìm kiếm phim 49

Hình 4.16 Lược đồ tuần tự chức năng thanh toán vé đã chọn 50

Hình 4.17 Lược đồ tuần tự chức năng đăng ký 50

Hình 4.18 Lược đồ tuần tự chức năng xem thông tin vé đã đặt 51

Hình 4.19 Lược đồ tuần tự chức năng xem thông tin cá nhân 51

Hình 4.20 Lược đồ tuần tự chức năng cập nhật thông tin cá nhân 52

Hình 4.21 Lược đồ tuần tự chức năng thêm mới bộ phim 52

Hình 4.22 Lược đồ tuần tự chức năng sửa thông tin phim 53

Hình 4.23 Lược đồ tuần tự chức năng thêm lịch chiếu 53

Hình 4.24 Lược đồ tuần tự chức năng sửa thông tin lịch chiếu 54

Hình 4.25 Lược đồ tuần tự chức năng xem danh sách vé đặt 54

Hình 4.26 Lược đồ tuần tự chức năng cập nhật vé 55

Hình 4.27 Lược đồ tuần tự chức năng quản lý tài khoản người dùng 55

Hình 4.28 Lược đồ cơ sở dữ liệu 56

Hình 4.29 Sơ đồ luồng màn hình mà người dùng không cần xác thực 62

Hình 4.30 Sơ đồ luồng màn hình mà người dùng cần phải xác thực 63

Hình 4.31 Màn hình đăng ký tài khoản - 001 65

Hình 4.32 Màn hình xác nhận tài khoản - 002 66

Hình 4.33 Màn hình đăng nhập - 003 66

Trang 15

Hình 4.34 Màn hình quên mật khẩu - 004 67

Hình 4.35 Màn hình xác nhận quên mật khẩu - 005 68

Hình 4.36 Màn hình điều hướng – 006 69

Hình 4.37 Màn hình điều hướng - 006 69

Hình 4.38 Màn hình trang chủ - 007 71

Hình 4.39 Màn hình danh sách lịch chiếu - 009 72

Hình 4.40 Màn hình danh sách phim – 008 73

Hình 4.41 Màn hình chi tiết phim – 012 74

Hình 4.42 Màn hình điều hướng - 012 75

Hình 4.43 Màn hình danh sách ghế - 013 76

Hình 4.44 Màn hình chi tiết thông tin thanh toán - 014 77

Hình 4.45 Màn hình thông tin cá nhân – 015 78

Hình 4.46 Màn hình thông tin cá nhân - 015 79

Hình 4.47 Màn hình thông tin cá nhân – 015 80

Hình 4.48 Sơ đồ luồng màn hình cho quản trị viên 82

Hình 4.49 Sơ đồ luồng màn hình cho người quản lý 82

Hình 4.50 Màn hình đăng nhập trang quản lý - 001 83

Hình 4.51 Màn hình quên mật khẩu trang quản lý - 002 84

Hình 4.52 Màn hình xác nhận quên mật khẩu trang quản lý - 003 85

Hình 4.53 Màn hình thanh điều hướng - 004 86

Hình 4.54 Màn hình quản lý phim - 005 87

Hình 4.55 Màn hình thêm, cập nhật phim - 005 88

Hình 4.56 Màn hình quản lý banner - 006 89

Hình 4.57 Màn hình thêm, cập nhật banner - 006 90

Hình 4.58 Màn hình quản lý rạp chiếu phim - 007 91

Hình 4.59 Màn hình thêm, cập nhật rạp chiếu phim 91

Hình 4.60 Màn hình quản lý người dùng - 008 92

Hình 4.61 Màn hình thêm, cập nhật người dùng - 008 93

Hình 4.62 Màn hình quản lý combo - 009 94

Hình 4.63 Màn hình thêm, cập nhật combo - 009 95

Hình 4.64 Màn hình quản lý lịch chiếu - 010 95

Hình 4.65 Màn hình thêm, cập nhật lịch chiếu - 010 96

Hình 4.66 Màn hình quản lý vé đặt - 011 97

Hình 4.67 Màn hình quản lý thông tin cá nhân - 012 98

Hình 4.68 Màn hình thay đổi mật khẩu - 013 98

Trang 16

CHƯƠNG 1 TỔNG QUAN

1.1 Tính cấp thiết của đề tài

Trong thời đại công nghệ số đang phát triển mạnh mẽ, việc áp dụng các hệ thống trực tuyến trong nhiều lĩnh vực đã trở thành xu hướng không thể phủ nhận Trong bối cảnh này, hệ thống bán vé xem phim trực tuyến không chỉ là một sự tiện lợi cho người dùng mà còn là một giải pháp hiệu quả cho ngành công nghiệp điện ảnh

Hệ thống bán vé xem phim trực tuyến không chỉ là một công cụ thuận tiện cho người dùng mà còn là một yếu tố quan trọng trong việc tối ưu hóa trải nghiệm xem phim Khả năng cung cấp thông tin chi tiết về lịch chiếu, chỗ ngồi, và các suất chiếu có sẵn giúp người xem dễ dàng chọn lựa và đặt vé từ bất kỳ đâu, bất kỳ khi nào Điều này giúp rút ngắn thời gian chờ đợi và tạo ra một trải nghiệm xem phim thoải mái, không bị gián đoạn

Ngoài ra, hệ thống này cũng đem lại lợi ích cho các rạp chiếu phim và nhà sản xuất phim Việc quản lý thông tin về doanh số bán vé, thông tin khách hàng và thu nhập từ các suất chiếu giúp họ đưa ra các chiến lược kinh doanh linh hoạt và hiệu quả Bằng cách tiếp cận được đối tượng khán giả trực tuyến, họ có thể mở rộng tầm vóc kinh doanh và tăng doanh thu

Trong bối cảnh nhu cầu giải trí ngày càng tăng và sự tiện lợi của công nghệ số ngày càng được ưa chuộng, việc triển khai hệ thống bán vé xem phim trực tuyến không chỉ là một bước tiến quan trọng trong việc đáp ứng nhu cầu của người dùng mà còn đóng vai trò quan trọng trong sự phát triển của ngành công nghiệp điện ảnh Sự kết hợp giữa tiện lợi, trải nghiệm tốt hơn cho người dùng và cơ hội kinh doanh cho các nhà sản xuất phim là những lợi ích rõ ràng mà hệ thống này mang lại

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

Đối với đề tài này, đối tượng nghiên cứu dựa trên nhu cầu sử dụng, giải trí, tạo ra một môi trường cho mọi người có thể thuận tiện đặt vé trực tuyến, lựa chọn phim theo

sở thích, đồng thời hỗ trợ người dùng tìm hiểu thêm thông tin về bộ phim, trailler, review phim trước khi đặt mua Bên cạnh đó là các công nghệ áp dụng để hiện thực hoá sản phẩm Cụ thể như sau:

Tập trung nghiêm cứu Restful API, NestJS để xây dựng nên hệ thống các APIs hỗ trợ truy xuất và thao tác với dữ liệu một cách chính xác và nhanh chóng nhất

Sử dụng cơ sở dữ liệu NoSQL là MongoDB để lưu trữ dữ liệu trong hệ thống

Trang 17

Về phần hiển thị cho người sử dụng cuối nhóm chúng em tiến hành nghiên cứu Framework ReactJS và một số thư viện được hỗ trợ cho ReactJS để xây dựng và xử

lý giao diện và cho người dùng sử dụng trên website

Về phần bảo mật hệ thống, tiến hành nghiên cứu công nghệ Json Web Token làm bảo mật cho hệ thống, tất cả các luồng dữ liệu vào ra đều được kiểm soát thông qua Token

1.3 Phạm vi nghiên cứu

1.3.1 Trải nghiệm người dùng

Giao diện người dùng: Phân tích và cải thiện giao diện để làm cho việc đặt vé

trở nên dễ dàng và thuận tiện hơn cho người dùng

Tính tương thích: Đảm bảo hệ thống hoạt động trên nhiều nền tảng và thiết bị

khác nhau một cách hiệu quả

Tối ưu hóa trải nghiệm: Tăng cường trải nghiệm người dùng trong việc tìm

kiếm thông tin, chọn suất chiếu, đặt vé và thanh toán

1.3.2 Quản lý hệ thống và dữ liệu

Quản lý dữ liệu: Xây dựng hệ thống quản lý dữ liệu hiệu quả để lưu trữ thông

tin về lịch chiếu, thông tin khách hàng, và các thông tin quan trọng khác

Bảo mật thông tin: Đảm bảo an toàn và bảo mật thông tin cá nhân của người

dùng và thông tin liên quan đến giao dịch thanh toán

1.3.3 Quản lý kinh doanh và marketing

Chiến lược quảng cáo và khuyến mãi: Nghiên cứu về cách hệ thống có thể

được tích hợp để thực hiện chiến lược quảng cáo và khuyến mãi hiệu quả

Thu nhập và doanh số bán vé: Phân tích dữ liệu để đánh giá doanh số bán vé

và thu nhập từ các suất chiếu, từ đó cải thiện chiến lược kinh doanh

1.3.4 Quản lý hệ thống và kỹ thuật

Hiệu suất hệ thống: Đảm bảo hiệu suất cao và ổn định của hệ thống trong quá

trình đặt vé và giao dịch

Nâng cấp và cải thiện: Tìm kiếm cách để cải thiện hệ thống, tính năng mới, và

phản hồi từ người dùng để cải thiện trải nghiệm

Trang 18

1.4 Mục tiêu của đề tài

Phát triển Hệ thống Web Bán Vé Xem Phim Trực Tuyến: Tạo ra một hệ thống web toàn diện cho việc đặt vé xem phim trực tuyến với giao diện thân thiện, cho phép người dùng xem thông tin về các bộ phim, lịch chiếu, đặt vé và thanh toán một cách thuận tiện Tối ưu hóa Trải Nghiệm Người Dùng: Tập trung vào việc cải thiện trải nghiệm người dùng để tạo ra một giao diện thân thiện, dễ sử dụng và linh hoạt Xây dựng chức năng tìm kiếm, lựa chọn chỗ ngồi và quản lý thông tin cá nhân giúp người dùng dễ dàng đặt

Áp dụng Kiến Thức Chuyên Ngành: Sử dụng kiến thức từ chuyên ngành để xây dựng

hệ thống với cơ sở dữ liệu mạnh mẽ, đảm bảo an toàn và bảo mật thông tin người dùng Tối ưu hoá hiệu suất hệ thống, đảm bảo ổn định và linh hoạt trong quản lý dữ liệu và giao dịch

Tích Hợp Các Kỹ Năng Lập Trình và Thiết Kế: Sử dụng các ngôn ngữ lập trình (như CSS, TypeScript, NodeJS, etc.) và framework phù hợp để xây dựng giao diện và chức năng Thiết kế giao diện đẹp và thân thiện với người dùng bằng cách áp dụng kiến thức

về UX/UI

Cải Thiện Hệ Thống Liên Tục: Tiếp tục phát triển và nâng cấp hệ thống dựa trên phản hồi từ người dùng và các xu hướng mới trong công nghệ để đảm bảo tính thích ứng và linh hoạt của sản phẩm

1.5 Ý nghĩa khoa học và thực tiễn

• Ý nghĩa khoa học:

Trong quá trình nghiên cứu và phát triển hệ thống bán vé xem phim trực tuyến, nhóm

em đặt mục tiêu chủ yếu là áp dụng các kiến thức chuyên ngành và phân tích từ góc độ nghiên cứu để xây dựng một sản phẩm có tính khoa học cao

Áp dụng kiến thức chuyên ngành: Sử dụng kiến thức và các phương pháp công nghệ mới để xây dựng hệ thống với tính chính xác và hiệu suất cao

Tiếp cận đề tài từ góc độ nghiên cứu để hiểu rõ hơn về nhu cầu thực tế, xu hướng công nghệ mới, và yếu tố ảnh hưởng đến trải nghiệm người dùng

Áp dụng các công nghệ mới để tối ưu hóa hiệu suất hệ thống cũng như đảm bảo tính

an toàn và bảo mật cho thông tin cá nhân của người dùng

• Ý nghĩa thực tiễn:

Trang 19

Xây dựng hệ thống thực tế và triển khai nó để có thể phục vụ người dùng và thị trường một cách hiệu quả

Tạo ra một sản phẩm có thể giải quyết thực tế vấn đề của người dùng, cung cấp cho

họ trải nghiệm tốt nhất khi mua vé xem phim

Đảm bảo rằng sản phẩm có thể thích nghi và mở rộng để đáp ứng các yêu cầu thực

tế trong quá trình sử dụng và phát triển trong tương lai

Trang 20

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Các công nghệ sử dụng ở Front-End

2.1.1 ReactJS Framework

ReactJS là một thư viện JavaScript có tính hiệu quả và linh hoạt để xây dựng các thành phần giao diện người dùng (UI) có thể sử dụng lại ReactJS giúp phân chia các UI phức tạp thành các thành phần nhỏ (được gọi là component) Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook ReactJS ban đầu được phát triển và duy trì bởi Facebook và sau đó được sử dụng trong các sản phẩm của mình như WhatsApp & Instagram ReactJS được dùng để xây dựng các ứng dụng - single page application (SPA) Một trong những điểm thú vị của ReacJS là nó không chỉ được xây dựng bên phía clients mà còn được sử dụng trên server và có thể kết nối với nhau ReactJS so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM.1

Công nghệ Virtual DOM giúp tăng hiệu năng cho ứng dụng Việc chỉ node gốc mới

có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lý ReactJS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề này Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM tree thật

Hình 2.1 Virtual DOM trong ReactJS

Trang 21

ReactJS sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều Dữ liệu được truyền từ parent đến child thông qua props Luồng dữ liệu đơn giản giúp chúng ta dễ dàng kiểm soát cũng như sửa lỗi

Với các đặc điểm ở trên, ReactJS dùng để xây dựng các ứng dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian Dữ liệu thay đổi thì hầu hết kèm theo sự thay đổi

về giao diện Ví dụ như Facebook: trên Newsfeed của bạn cùng lúc sẽ có các status khác nhau và mỗi status lại có số like, share, comment liên tục thay đổi Khi đó ReactJS sẽ rất hữu ích để sử dụng

Hình 2.2 One-way binding trong ReactJS

Các ưu điểm nổi bật khi sử dụng ReactJS thay cho các framework khác:

• ReactJS cho phép Developer viết ứng dụng trực tiếp trên JavaScript Thêm vào

đó là JSX – một trong những tính năng không chỉ làm cho ReactJS dễ dàng mà còn thú vị hơn Developer giờ đây có thể tạo nên một tính năng mới và có thể xem nó xuất hiện ngay trong thời gian thực, giúp Developer có thể được đưa trực tiếp các đoạn HTML vào JavaScript

• Một ý tưởng khác làm cho ReactJS trở nên độc đáo là nó cho phép Developer phá vỡ những cấu tạo UI phức tạp thành những component độc lập Dev sẽ không phải lo lắng về tổng thể ứng dụng web, giờ đây Developer dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn

Trang 22

• Không chỉ vậy, thông qua Props, các component có thể kết nối với nhau bằng cách sử dụng data tùy biến Điều này giúp chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể

• Tính năng State khi sử dụng ReactJS, giúp điều chỉnh trạng thái cho các component (child) nhận data từ một component nguồn (parent) Developer có thể thay đổi trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới component gốc (parent) đang ở trạng thái Stateful Việc điều chỉnh các ứng dụng cũng trở nên dễ dàng hơn

• Dom ảo (Virtual DOM) giúp cho ứng dụng nhanh hơn DOM ảo hỗ trợ rất tốt cho việc cấu trúc UI phản ứng kịp thời với trước những thay đổi nhằm tăng trải nghiệm người dùng Khi tạo ra ReactJS, các nhà thiết kế đã dự đoán đúng việc cập nhật các HTML cũ là cực kỳ quan trọng nhưng cũng khá tốn kém chi phí Vì thế ý tưởng sử dụng DOM ảo giúp ReactJS biết chính xác khi nào cần render lại hoặc khi nào bỏ đi những phần tử của DOM chính vì phát hiện ra những thay đổi trên data

2.1.2 Các thư viện hỗ trợ khác

Một số thư viện hỗ trợ cho việc xây dựng website ở phía Front-End:

• Axios: là một HTTP client được phát triển dựa trên Javascript Promise, được dùng để hỗ trợ cho việc xây dựng các ứng dụng API từ đơn giản đến phức tạp và

có thể được sử dụng cả ở trình duyệt hay Node.js

• Tailwind CSS: Thư viện CSS utility-first giúp xây dựng giao diện người dùng linh hoạt và dễ bảo trì

• Ant Design (Antd): Thư viện React UI cung cấp các thành phần giao diện người dùng chuyên nghiệp theo phong cách Ant Design

• React Router: Quản lý định tuyến trong ứng dụng React, cho phép chuyển đổi giữa các trang và cung cấp tính năng như tham số URL và quản lý history

• React Hook Form: Thư viện quản lý trạng thái biểu mẫu trong React bằng Hooks, giúp xử lý trạng thái, xác thực và theo dõi sự thay đổi trên các trường biểu mẫu

• Yup: Thư viện xác thực dữ liệu dựa trên schema, kiểm tra và đảm bảo tính hợp lệ của dữ liệu

• React Query: Thư viện quản lý trạng thái và fetch dữ liệu trong ứng dụng React thông qua Hooks, hỗ trợ quản lý trạng thái và thao tác truy vấn

Trang 23

• I18n: Thư viện i18n (quốc tế hóa) giúp ứng dụng hỗ trợ nhiều ngôn ngữ và vùng (địa lý) khác nhau Nó cung cấp các công cụ để dễ dàng dịch văn bản, định dạng ngày tháng, số và các phần khác của ứng dụng để phản ánh yêu cầu ngôn ngữ và vùng cụ thể của người dùng Thư viện i18n giúp tạo ra trải nghiệm đa ngôn ngữ linh hoạt và dễ bảo trì

• React Helmet: Cho phép thêm các thẻ <head> tùy chỉnh vào trang React để quản

lý tiêu đề, meta tags, và các thẻ khác của trang HTML Hỗ trợ việc SEO của website được tốt hơn

2.2 Các công nghệ sử dụng ở Back-End

2.2.1 NestJS

NestJS là một NodeJS framework dùng để phát triển server-side applications hiệu quả và có thể mở rộng NestJS là sự kết hợp bởi OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming) NestJS sử dụng TypeScript để phát triển nhưng nó cũng hỗ trợ cả Javascript để tạo ra một môi trường phát triển hiện đại và mạnh mẽ cho việc xây dựng các ứng dụng web và API

Module (Các module): Module là một phần cơ bản trong cấu trúc NestJS Mỗi ứng dụng NestJS bao gồm ít nhất một module gốc (root module) và có thể có nhiều module con Module là nơi tổ chức các thành phần của ứng dụng như Controllers, Providers và các thành phần khác Mỗi module đại diện cho một phần chức năng cụ thể của ứng dụng Middleware (Trung gian): Middleware là các hàm xử lý mà NestJS sử dụng để xử lý các yêu cầu HTTP trước khi chúng đến các route xử lý chính Middleware có thể được

sử dụng để thực hiện các thao tác chung như xác thực, ghi log, xử lý lỗi, v.v

Filter (Bộ lọc): Filters được sử dụng để xử lý các exception (ngoại lệ) xảy ra trong ứng dụng Filters cho phép bạn xử lý và thay đổi response trước khi gửi về client khi có exception xảy ra

Exception (Ngoại lệ): Exception handling (xử lý ngoại lệ) là một phần quan trọng của cấu trúc NestJS Exception handling cho phép bạn xử lý các exception xảy ra trong ứng dụng và trả về các thông báo lỗi thích hợp cho client.2

2 Cách Request Lifecycle hoạt động trong NestJS nestjs-y3RL1awpLao

Trang 24

https://viblo.asia/p/cach-request-lifecycle-hoat-dong-trong-Hình 2.3 Cấu trúc của NestJS

Tính năng của NestJS

• Với NestJS, việc sử dụng Dependency Injection (DI) là một cách hiệu quả để giảm sự phụ thuộc cứng giữa các thành phần của ứng dụng DI giúp bạn tạo ra

mã linh hoạt, tái sử dụng và dễ kiểm thử Các decorator (chú thích) trong NestJS giúp xác định vai trò và mục đích của từng thành phần trong mã nguồn như Controllers, Providers, Middleware, v.v., giúp bạn dễ dàng hiểu và bảo trì mã nguồn

• NestJS hỗ trợ Middleware và Interceptors, giúp bạn thực hiện các thao tác chung trước và sau khi xử lý yêu cầu HTTP Điều này giúp bạn xử lý các yêu cầu HTTP trước khi chúng đến các route xử lý chính và thay đổi response trước khi nó được gửi về client

Trang 25

• Exception handling (xử lý ngoại lệ) là một phần quan trọng trong NestJS, giúp bạn xử lý các exception xảy ra trong ứng dụng và trả về các thông báo lỗi thích hợp cho client khi có lỗi xảy ra

2.2.2 MongoDB

NoSQL là 1 dạng CSDL mã nguồn mở không sử dụng Transact-SQL để truy vấn thông tin NoSQL cho phép mở rộng dữ liệu mà không cần tạo khóa ngoại, khóa chính hay kiểm tra tính ràng buộc… Có thể thấy, dạng cơ sở dữ liệu này có thể linh động, sẵn sàng bỏ qua tính toàn vẹn cứng nhắc của transaction hay dữ liệu nhằm đổi lấy hiệu suất, cùng với khả năng mở rộng tốt

Các Collection trong MongoDB có cấu trúc cực kỳ linh hoạt Điều này cho phép dữ liệu không cần thiết phải tuân theo bất kỳ một dạng cấu trúc nào Vì thế, MongoDB có thể lưu trữ những dữ liệu có cấu trúc đa dạng và phức tạp Dữ liệu trong MongoDB được lưu bằng định dạng kiểu JSON

Hình 2.4 Kiến trúc của MongoDB

Các tính năng của MongoDB

• Khả năng nhân rộng Replication hay còn được hiểu là nhân bản, tức là sẽ có những bản sao tương tự những phiên bản mà bạn đang sử dụng Nhu cầu lưu trữ

dữ liệu lớn do cơ sở dữ liệu ngày càng đa dạng, chính vì vậy nó càng đòi hỏi dữ

Trang 26

liệu phải được toàn vẹn và tránh bị mất mát trước những sự cố trong quá trình xử

• Trong cân bằng tải: Thông qua Sharding, MongoDB phân chia tỷ lệ theo chiều ngang giúp người sử dụng chọn lựa chọn 1 Shard key, xác định những data được phân phối trong Collection Về cơ bản, những dữ liệu được phân chia, phân phối đồng đều dựa trên những Shard key Hỗ trợ chạy trên nhiều máy chủ, cân bằng tải hoặc copy dữ liệu để giúp hệ thống luôn hoạt động ngay cả khi có lỗi về phần cứng

• Hỗ trợ lưu trữ các tệp dữ liệu: MongoDB sử dụng như hệ thống tệp nhờ khả năng lưu trữ tệp dữ liệu từ đó hỗ trợ cân bằng tải và copy dữ liệu từ nhiều máy tính Trong đó, hệ thống tệp GridFS sẽ phân chia từng tệp ra những phần hay đoạn lưu thành những document riêng và người dùng có thể truy xuất GridFS thông qua tiện ích Mongofiles

• Tập hợp: MongoDB cung cấp 3 phương pháp tập hợp chính bao gồm Aggregation Pipeline, Single-purpose Aggregation và Mapreduce Trong đó, Aggregation Pipeline được đánh giá là mang lại hiệu suất cao hơn so với những hoạt động tổng hợp khác

• Quy định kích thước giới hạn Collection: MongoDB có hỗ trợ cho những Collection giới hạn Khi dữ liệu vượt quá mức giới hạn cho phép thì những tài liệu cũ trước đó sẽ bị xóa mà không cần người dùng sử dụng bất kỳ câu lệnh điều khiển nào.3

2.2.3 Các thư viện hỗ trợ khác

Một số thư viện hỗ trợ cho việc xây dựng website ở phía Back-End:

• moongose: là một thư viện mô hình hóa đối tượng (Object Data Model - ODM) cho MongoDB và Node.js Nó quản lý mối quan hệ giữa dữ liệu, cung cấp sự xác nhận giản đồ và được sử dụng để dịch giữa các đối tượng trong mã và biểu diễn các đối tượng trong MongoDB

• jsonwebtoken: JSON Web Token (JWT) là 1 tiêu chuẩn mở (RFC 7519) định nghĩa cách thức truyền tin an toàn giữa các thành viên bằng 1 đối tượng JSON Thông tin này có thể được xác thực và đánh dấu tin cậy nhờ vào "chữ ký" của nó Phần chữ ký của JWT sẽ được mã hóa lại bằng HMAC hoặc RSA Trong đó chuỗi

Trang 27

Token phải có 3 phần là header , phần payload và phần signature được ngăn bằng

dấu “.”

Hình 2.5 Các thành phần của JWT

• google-auth-library: thư viện được hỗ trợ chính thức của Google để sử dụng ủy

quyền và xác thực OAuth 2.0 với các API của Google

• dotenv: là một module, tải các biến môi trường từ env vào process.env Lưu trữ

cấu hình trong môi trường tách biệt với code

• moment: là một thư viện mạnh dùng để thao tác xử lý datetime trong javascript

cũng như là typescript được thiết kế hoạt động trong cả browser và Node.js,

thường được dùng để thay thế cho datetime có sẵn trong javascript

• cors: là viết tắt của Cross-origin resource sharing, là một cơ chế cho phép hạn

chế việc chia sẻ tài nguyên của một trang web đối với các trang web khác

Trang 28

CHƯƠNG 3 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 3.1 Khảo sát hiện trạng

3.1.1 CGV Vietnam

Hình 3.1 Khảo sát hiện trạng CGV Vietnam

Ưu điểm của CGV Vietnam:

• Giao diện: Trang web của CGV có giao diện trực quan, giúp họ dễ dàng tìm kiếm thông tin và đặt vé

• Thông tin chi tiết về phim và lịch chiếu: Cung cấp đầy đủ thông tin về các bộ phim đang chiếu, lịch chiếu, thể loại, diễn viên, giúp người dùng có cái nhìn tổng quan trước khi đặt vé

• Phương thức thanh toán đa dạng: Hỗ trợ nhiều phương thức thanh toán khác nhau như thẻ tín dụng, ví điện tử, hoặc cổng thanh toán trực tuyến

• Chương trình khuyến mãi và ưu đãi: Thường xuyên có các chương trình khuyến mãi, ưu đãi cho người dùng như vé giá rẻ, combo vé và đồ ăn uống

Hạn chế và điểm cần cải thiện của CGV Vietnam:

• Tốc độ tải trang và trải nghiệm người dùng: Tốc độ tải trang không nhanh, cũng như trải nghiệm đặt vé không được mượt mà

Trang 29

• Tính năng tương tác và hỗ trợ khách hàng: Cần cải thiện tính năng tương tác và

hỗ trợ người dùng khi gặp vấn đề trong quá trình đặt vé hoặc cần thông tin hỗ trợ

• Tối ưu hóa trải nghiệm người dùng: Có thể cần cải thiện giao diện và trải nghiệm người dùng để tăng tính hấp dẫn và thuận tiện cho người dùng khi sử dụng

• Chức năng: có 1 số chức năng lỗi hoặc khó thực hiện, giao diện khó cho người dùng sử dụng, quy trình đặt vé, đăng nhập phức tạp,…

Hình 3.2 Khảo sát hiện trạng CGV Vietnam

3.1.2 Lotte Cinema Vietnam

Ưu điểm của Lotte Cinema Vietnam:

• Thông tin chi tiết và lịch chiếu: Trang web cung cấp thông tin chi tiết về các bộ phim, lịch chiếu, thể loại, diễn viên và trailer giúp người dùng có cái nhìn tổng quan về phim trước khi đặt vé

• Tính linh hoạt và thanh toán đa dạng: Hỗ trợ nhiều phương thức thanh toán khác nhau như thẻ tín dụng, chuyển khoản ngân hàng, hoặc thanh toán qua các cổng thanh toán trực tuyến

Hạn chế và điểm cần cải thiện của Lotte Cinema Vietnam:

• Giao diện và trải nghiệm người dùng: Giao diện trang web có thể không linh hoạt và cần cải thiện để tăng trải nghiệm người dùng

Trang 30

• Tính năng tương tác và hỗ trợ khách hàng: Cần cải thiện tính năng tương tác và

hỗ trợ người dùng khi gặp vấn đề trong quá trình đặt vé hoặc cần thông tin hỗ trợ

• Cải thiện tính hấp dẫn và thuận tiện: Có thể cần cải thiện giao diện và trải nghiệm người dùng để tăng tính hấp dẫn và thuận tiện khi sử dụng

Hình 3.3 Khảo sát hiện trạng Lotte Cinema Vietnam

3.1.3 Galaxy Cinema

Ưu điểm của Galaxy Cinema:

• Thông tin chi tiết và lịch chiếu: Trang web cung cấp thông tin chi tiết về các bộ phim, lịch chiếu, thể loại, diễn viên và trailer giúp người dùng có cái nhìn tổng quan về phim trước khi đặt vé

• Tính linh hoạt và thanh toán đa dạng: Hỗ trợ nhiều phương thức thanh toán khác nhau như thẻ tín dụng, chuyển khoản ngân hàng, hoặc thanh toán qua các cổng thanh toán trực tuyến

Hạn chế và điểm cần cải thiện của Galaxy Cinema:

• Giao diện và trải nghiệm người dùng: Giao diện trang web có thể không linh hoạt và cần cải thiện để tăng trải nghiệm người dùng

Trang 31

• Tính năng tương tác và hỗ trợ khách hàng: Cần cải thiện tính năng tương tác và

hỗ trợ người dùng khi gặp vấn đề trong quá trình đặt vé hoặc cần thông tin hỗ trợ

• Cải thiện tính hấp dẫn và thuận tiện: Có thể cần cải thiện giao diện và trải nghiệm người dùng để tăng tính hấp dẫn và thuận tiện khi sử dụng

Hình 3.4 Khảo sát hiện trạng trang Galaxy Cinema

3.1.4 Kết luận

Dựa trên những thông tin về các trang web bán vé xem phim trực tuyến ở Việt Nam như CGV Vietnam, Lotte Cinema Vietnam và Galaxy Cinema,… có thể rút ra một số kết luận chung như sau:

Giao diện và trải nghiệm người dùng: Một số trang web có gặp vấn đề về giao diện không linh hoạt và trải nghiệm người dùng không luôn tốt Điều này có thể gây ra khó khăn cho người dùng khi tìm kiếm thông tin và đặt vé

Tính năng tương tác và hỗ trợ người dùng: Cần cải thiện tính năng tương tác và hỗ trợ người dùng khi họ cần thông tin hoặc gặp vấn đề trong quá trình đặt vé Việc cung cấp hỗ trợ nhanh chóng và hiệu quả sẽ tăng cường trải nghiệm người dùng

Trang 32

Tối ưu hóa trải nghiệm người dùng: Tăng cường trải nghiệm người dùng bằng cách cải thiện giao diện trang web, làm cho quá trình tìm kiếm thông tin và đặt vé trở nên dễ dàng và thuận tiện hơn

Chức năng hệ thống: Tốc độ tải trang không nhanh, cũng như trải nghiệm đặt vé không được mượt mà Một số chức năng bị lỗi, quy trình xử lý phức tạp

Từ những khảo sát trên và thông tin thu thập được, nhóm em sẽ ghi nhận và cải thiện, tăng trải nghiệm người dùng, đảm bảo hệ thống luôn hoạt động một cách chính xác

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

3.2.1 Yêu cầu chức năng

• Xem Danh Sách Phim: Hệ thống cung cấp danh sách các bộ phim đang chiếu

với thông tin chi tiết về từng bộ phim như tựa đề, thể loại, diễn viên, thời lượng, và mô tả

• Đặt Vé: Người dùng có thể chọn phim, suất chiếu, và ghế ngồi trên giao diện để

đặt vé

• Thanh Toán: Hệ thống cung cấp phương thức thanh toán an toàn và xử lý giao

dịch mua vé

• Quản Lý Lịch Chiếu: Quản trị viên có thể cập nhật, thêm mới, hoặc xóa lịch

chiếu cho các bộ phim

• Quản Lý Tài Khoản: Cho phép người dùng quản lý thông tin cá nhân, đổi mật

khẩu, và cài đặt tùy chọn khác

• Xác Nhận Đặt Vé: Hệ thống gửi thông báo xác nhận đặt vé cho người dùng sau

khi thanh toán thành công

3.2.2 Yêu cầu phi chức năng

• Hiệu Suất: Hệ thống cần xử lý nhiều giao dịch cùng lúc để đáp ứng nhu cầu đặt

vé trong các khung giờ cao điểm

• Bảo Mật: Thông tin cá nhân và thông tin thanh toán của người dùng cần được

mã hóa và bảo mật

• Khả Năng Mở Rộng: Hệ thống cần có khả năng mở rộng để hỗ trợ thêm rạp

chiếu phim, cải thiện hiệu suất và tính năng mới trong tương lai

Trang 33

• Đáng Tin Cậy và Ổn Định: Đảm bảo hệ thống hoạt động ổn định, đáng tin cậy,

ít gặp lỗi và có khả năng khôi phục sau sự cố

3.3 Mô hình hóa yêu cầu

3.3.1 Lược đồ Usecase

Hình 3.5 Usecase cho người dùng

Trang 34

Hình 3.6 Usecase cho quản trị viên

3.3.2 Mô hình hóa yêu cầu

2.3.3.1 Mô hình hóa website phía khách và thành viên

Bảng 3.1 Đặc tả usecase xem danh sách phim

Tên usecase Xem danh sách phim

Mô tả Chức năng này cho phép người dùng xem danh sách các bộ phim đang

chiếu tại rạp cụ thể thông qua trang web đặt vé

Actor Khách hàng hoặc người dùng

Tiền điều kiện

• Hệ thống hoạt động và đã được khởi động

• Dữ liệu về danh sách phim đã được tải hoặc cập nhật trên hệ thống

Hậu điều kiện • Danh sách phim được hiển thị đầy đủ và chính xác

Trang 35

• Người dùng có thể xem thông tin chi tiết về từng bộ phim

Luồng cơ bản

(Thành công)

Xem danh sách phim thành công

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng xem danh sách phim

3 Hệ thống hiển thị danh sách các bộ phim đang chiếu kèm theo thông tin chi tiết, bao gồm tên phim, thể loại, đạo diễn, diễn viên, thời lượng và mô tả

4 Người dùng có thể xem chi tiết từng bộ phim bằng cách chọn hoặc nhấn vào thông tin phim tương ứng

Luồng thay thế

(Thất bại)

Không có bộ phim để hiển thị

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng xem danh sách phim

3 Hệ thống cố gắng hiển thị danh sách các bộ phim đang chiếu

4 Nếu không có bộ phim nào hiển thị, hệ thống thông báo "Hiện không có thông tin về bộ phim nào được hiển thị" hoặc thông báo tương tự

5 Người dùng có thể quay lại trang chủ hoặc thực hiện lại việc xem danh sách phim

Người dùng không nhập thông tin tìm kiếm

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng không nhập thông tin tìm kiếm và nhấn nút xem danh sách phim

3 Hệ thống hiển thị thông báo "Vui lòng nhập thông tin tìm kiếm!" và yêu cầu người dùng nhập thông tin tìm kiếm

4 Người dùng có thể nhập lại thông tin tìm kiếm hoặc quay lại trang chủ

Luồng mở rộng Không có

Trang 36

Bảng 3.2 Đặc tả usecase xem chi tiết từng bộ phim

Tên usecase Xem chi tiết từng bộ phim

Mô tả Chức năng cho phép người dùng xem thông tin chi tiết về một bộ phim

cụ thể trên trang web đặt vé rạp chiếu phim

Actor Khách hàng hoặc người dùng

Tiền điều kiện Danh sách phim đã được tải hoặc cập nhật trong cơ sở dữ liệu

Hậu điều kiện Thông tin chi tiết về bộ phim được hiển thị đầy đủ và chính xác

Luồng cơ bản

(Thành công)

1 Hệ thống hiển thị thông tin chi tiết về bộ phim đã chọn, bao gồm tên phim, thể loại, đạo diễn, diễn viên, thời lượng, mô tả, và các thông tin khác

2 Người dùng có thể xem các chi tiết và thông tin cụ thể về bộ phim bằng cách duyệt qua trang hoặc chọn các mục tương ứng

3 Kết thúc xem chi tiết từng bộ phim

Luồng thay thế

(Thất bại)

Không thể hiển thị thông tin chi tiết về bộ phim

1 Hệ thống thông báo "Không thể hiển thị thông tin chi tiết cho

bộ phim này Vui lòng thử lại sau."

2 Người dùng có thể quay lại danh sách phim hoặc thực hiện lại việc chọn bộ phim khác

Luồng mở rộng Không có

Bảng 3.3 Đặc tả usecase xem lịch chiếu

Tên usecase Xem lịch chiếu

Mô tả Chức năng này cho phép người dùng xem lịch chiếu của các phim

đang chiếu tại rạp cụ thể thông qua trang web đặt vé

Actor Khách hàng hoặc người dùng

Tiền điều kiện Dữ liệu liên quan đến lịch chiếu của các bộ phim đã được cập nhật và

có sẵn trên hệ thống

Hậu điều kiện • Danh sách lịch chiếu hiển thị chính xác và hoàn chỉnh

Trang 37

• Người dùng có thể xem chi tiết về lịch chiếu của từng bộ phim nếu họ chọn

Luồng cơ bản

(Thành công)

Xem lịch chiếu thành công

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng xem lịch chiếu

3 Hệ thống hiển thị lịch chiếu cho các bộ phim đang chiếu, bao gồm thời gian, phòng chiếu, số ghế còn trống, và các thông tin liên quan khác

4 Người dùng có thể xem chi tiết về lịch chiếu của từng bộ phim bằng cách chọn hoặc nhấn vào thông tin lịch chiếu tương ứng

Luồng thay thế

(Thất bại)

Xem lịch chiếu không thành công

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng xem lịch chiếu

3 Hệ thống cố gắng hiển thị lịch chiếu cho các bộ phim đang chiếu

4 Nếu không có thông tin lịch chiếu nào được hiển thị, hệ thống thông báo "Hiện không có thông tin lịch chiếu" hoặc thông báo tương tự

5 Người dùng có thể quay lại trang chủ hoặc thực hiện lại việc xem lịch chiếu

Người dùng không chọn thông tin tìm kiếm lịch chiếu

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng không chọn thông tin tìm kiếm lịch chiếu và nhấn nút xem lịch chiếu

3 Hệ thống hiển thị thông báo "Vui lòng chọn thông tin tìm kiếm lịch chiếu!" và yêu cầu người dùng nhập thông tin tìm kiếm

4 Người dùng có thể chọn lại thông tin tìm kiếm lịch chiếu hoặc quay lại trang chủ

Luồng mở rộng Không có

Trang 38

Bảng 3.4 Đặc tả usecase đăng nhập vào tài khoản

Tên usecase Đăng nhập vào tài khoản

Mô tả Chức năng này cho phép người dùng truy cập vào tài khoản cá nhân

trên trang web đặt vé của rạp chiếu phim

Actor Người dùng

Tiền điều kiện

• Người dùng đã truy cập trang web

• Hệ thống đã được khởi động và hoạt động bình thường

• Người dùng đã có tài khoản được tạo trước đó trong cơ sở dữ liệu của hệ thống

Hậu điều kiện

• Người dùng được xác thực và họ có quyền truy cập các chức năng sau khi đăng nhập

• Hệ thống ghi nhận hoạt động đăng nhập của người dùng cho mục đích theo dõi và bảo mật

Luồng cơ bản

(Thành công)

Đăng nhập thành công

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng đăng nhập

3 Hệ thống yêu cầu người dùng nhập thông tin đăng nhập (tên đăng nhập và mật khẩu)

4 Người dùng nhập thông tin đăng nhập chính xác

5 Hệ thống xác minh thông tin và đăng nhập thành công vào tài khoản người dùng

6 Trang web hiển thị giao diện tài khoản cá nhân hoặc trang chủ

đã đăng nhập

Luồng thay thế

(Thất bại)

Đăng nhập không thành công vì thông tin không chính xác

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng đăng nhập

3 Hệ thống yêu cầu người dùng nhập thông tin đăng nhập (tên đăng nhập và mật khẩu)

Trang 39

4 Người dùng nhập thông tin không chính xác hoặc không hợp

Người dùng chưa có tài khoản và cần đăng ký

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng đăng nhập

3 Hệ thống cung cấp tùy chọn đăng ký tài khoản nếu người dùng chưa có tài khoản

4 Người dùng chọn tạo tài khoản mới

5 Hệ thống yêu cầu người dùng nhập thông tin cá nhân cần thiết (email, mật khẩu, thông tin liên hệ, v.v.)

6 Người dùng hoàn tất việc tạo tài khoản mới và có thể đăng nhập sau khi tạo thành công

Luồng mở rộng Không có

Bảng 3.5 Đặc tả usecase đăng ký tài khoản mới

Tên usecase Đăng ký tài khoản mới

Mô tả Chức năng này cho phép khách hàng tạo một tài khoản mới trên trang

web đặt vé của rạp chiếu phim

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

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

Trang 40

2 Người dùng chọn chức năng đăng ký tài khoản mới

3 Hệ thống yêu cầu người dùng nhập các thông tin cần thiết cho việc tạo tài khoản mới (email, mật khẩu, thông tin liên hệ, v.v.)

4 Người dùng điền thông tin yêu cầu

5 Hệ thống kiểm tra tính hợp lệ của thông tin và xác nhận tạo tài khoản mới thành công

6 Trang web hiển thị thông báo "Tài khoản đã được tạo thành công" hoặc thông báo tương tự

Luồng thay thế

(Thất bại)

Người dùng không nhập đầy đủ hoặc thông tin không hợp lệ

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng đăng ký tài khoản mới

3 Hệ thống yêu cầu người dùng nhập các thông tin cần thiết cho việc tạo tài khoản mới

4 Người dùng không điền đầy đủ hoặc cung cấp thông tin không hợp lệ

5 Hệ thống thông báo lỗi "Vui lòng nhập đầy đủ thông tin cần thiết" hoặc thông báo tương tự

6 Người dùng có thể điều chỉnh hoặc cung cấp thông tin chính xác để hoàn tất việc đăng ký

Tên người dùng hoặc địa chỉ email đã được sử dụng trước đó

1 Người dùng truy cập trang web đặt vé rạp chiếu phim

2 Người dùng chọn chức năng đăng ký tài khoản mới

3 Hệ thống yêu cầu người dùng nhập các thông tin cần thiết cho việc tạo tài khoản mới

4 Người dùng sử dụng tên người dùng hoặc địa chỉ email đã được sử dụng trước đó

5 Hệ thống thông báo lỗi "Tên người dùng hoặc địa chỉ email đã tồn tại" hoặc thông báo tương tự

Ngày đăng: 19/11/2024, 08:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Tổng quan về Node JS. https://viblo.asia/p/tong-quan-ve-node-js-924lJra0lPM [2] Cách Request Lifecycle hoạt động trong NestJS. https://viblo.asia/p/cach-request-lifecycle-hoat-dong-trong-nestjs-y3RL1awpLao Link
[3] Understanding Web Application Architectures. https://medium.com/@gwenilorac/layout-of-web-applications-795b3e8e4c1b Link
[4] Thiết Kế Hệ Thống Thông Tin Sử Dụng Sơ Đồ UML. https://viblo.asia/p/phan-tich-thiet-ke-he-thong-thong-tin-su-dung-bieu-do-uml-phan-1-PjxMe6yNG4YL Link
[6] Authorization Framework: Access Token, Refresh. https://viblo.asia/p/authorization-framework-access-token-refresh-token-cung-giong-viec-sinh-vien-thue-nha-tro-4dbZN4e85YM Link
[7] Unit Testing là gì? Cách thực hiện Unit Testing. https://200lab.io/blog/unit-testing-la-gi/ Link
[8] Tổng quan về ReactJS. https://viblo.asia/p/gioi-thieu-ve-reactjs-phan-i-cac-khai-niem-co-ban-V3m5WzjblO7 Link

HÌNH ẢNH LIÊN QUAN

Hình 2.3 Cấu trúc của NestJS - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 2.3 Cấu trúc của NestJS (Trang 24)
Hình 3.4 Khảo sát hiện trạng trang Galaxy Cinema - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 3.4 Khảo sát hiện trạng trang Galaxy Cinema (Trang 31)
Hình 3.6 Usecase cho quản trị viên - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 3.6 Usecase cho quản trị viên (Trang 34)
Hình 4.3 Lược đồ hoạt động chức năng cập nhật thông tin phim - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.3 Lược đồ hoạt động chức năng cập nhật thông tin phim (Trang 58)
Hình 4.2 Lược đồ hoạt động chức năng xem thông tin cá nhân và vé đã đặt - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.2 Lược đồ hoạt động chức năng xem thông tin cá nhân và vé đã đặt (Trang 58)
Hình 4.4 Lược đồ hoạt động chức năng cập nhật lịch chiếu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.4 Lược đồ hoạt động chức năng cập nhật lịch chiếu (Trang 59)
Hình 4.6 Lược đồ hoạt động chức năng xem thống kê - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.6 Lược đồ hoạt động chức năng xem thống kê (Trang 60)
Hình 4.8 Lược đồ hoạt động chức năng xem thông tin lịch chiếu - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.8 Lược đồ hoạt động chức năng xem thông tin lịch chiếu (Trang 61)
Hình 4.9 Lược đồ hoạt động chức năng xem thông tin phim - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.9 Lược đồ hoạt động chức năng xem thông tin phim (Trang 61)
Hình 4.10 Lược đồ tuần tự chức năng xem danh sách phim - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.10 Lược đồ tuần tự chức năng xem danh sách phim (Trang 62)
Hình 4.14 Lược đồ tuần tự chức năng đặt vé - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.14 Lược đồ tuần tự chức năng đặt vé (Trang 64)
Hình 4.16 Lược đồ tuần tự chức năng thanh toán vé đã chọn - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.16 Lược đồ tuần tự chức năng thanh toán vé đã chọn (Trang 65)
Hình 4.18 Lược đồ tuần tự chức năng xem thông tin vé đã đặt - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.18 Lược đồ tuần tự chức năng xem thông tin vé đã đặt (Trang 66)
Hình 4.20 Lược đồ tuần tự chức năng cập nhật thông tin cá nhân - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.20 Lược đồ tuần tự chức năng cập nhật thông tin cá nhân (Trang 67)
Hình 4.22 Lược đồ tuần tự chức năng sửa thông tin phim - Đồ án tốt nghiệp Công nghệ thông tin: Xây dựng hệ thống bán vé xem phim trực tuyến
Hình 4.22 Lược đồ tuần tự chức năng sửa thông tin phim (Trang 68)

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

TÀI LIỆU LIÊN QUAN

w