Tải bản đầy đủ (.docx) (103 trang)

XÂY DỰNG ỨNG DỤNG WEB ĐẶT VÉ XEM PHIM

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.12 MB, 103 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
----------

TIỂU LUẬN CHUYÊN NGÀNH

XÂY DỰNG ỨNG DỤNG WEB ĐẶT VÉ XEM PHIM
GVHD: TS. Lê Văn Vinh

Sinh viên thực hiện:
NGUYỄN THU NGÂN

18110161

NGUYỄN NHƯ BẢO PHƯƠNG

18110180

Khóa: 2018
Ngành: CƠNG NGHỆ THƠNG TIN

Thành phố Hồ Chí Minh, tháng 11/2021


ĐH SƯ PHẠM KỸ THUẬT TP. HCM

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

Độc lập – Tự do – Hạnh Phúc



*******

*******

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 Thu Ngân

MSSV 1: 18110161

Họ và tên Sinh viên 2: Nguyễn Như Bảo Phương

MSSV 2: 18110180

Ngành: Công nghệ Thông tin
Tên đề tài: Xây dựng ứng dụng web đặt vé xem phim
Họ và tên Giáo viên hướng dẫ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? ..................................................................................
5. Đánh giá loại: ..............................................................................................................
6. Điểm: ..........................................................................................................................

Tp. Hồ Chí Minh, ngày tháng năm 2021
Giáo viên hướng dẫn
ĐH SƯ PHẠM KỸ THUẬT TP. HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
*******

(Ký & ghi rõ họ tên)
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh Phúc
*******


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 Thu Ngân
MSSV 1: 18110161
Họ và tên Sinh viên 2: Nguyễn Như Bảo Phương
MSSV 2: 18110180
Ngành: Công nghệ Thông tin
Tên đề tài: Xây dựng ứng dụng web đặt vé xem phim
Họ và tên Giáo viên phản biện:
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? ..................................................................................
5. Đánh giá loại: ..............................................................................................................
6. Điểm: ..........................................................................................................................
Tp. Hồ Chí Minh, ngày tháng năm 2021
Giáo viên phản biện
(Ký & ghi rõ họ tên)


LỜI CẢM ƠN
Lời đầu tiên nhóm xin phép được gửi lời cảm ơn chân thành và sâu sắc nhất đến
với Khoa Đào Tạo Chất Lượng Cao – Trường Đại Học Sư Phạm Kỹ Thuật Thành
Phố Hồ Chí Minh đã tạo điều kiện cho nhóm chúng em được học tập, phát triển nền
tảng kiến thức sâu sắc và thực hiện đề tài này.
Bên cạnh đó, nhóm chúng em cũng xin gửi lời cảm ơn chân thành nhất đến
thầy Lê Văn Vinh, người đã tận tình chỉ bảo và hướng dẫn nhóm chúng em thực
hiện đề tài này.
Mặc dù nhóm chúng em đã rất cố gắng để hoàn thành một cách tốt nhất,
nhưng do thời gian hạn hẹp, khả năng còn hạn chế nên khó tránh khỏi việc thiếu sót
trong bài báo cáo. Chúng em rất mong nhận được sự thông cảm, góp ý cũng như
đóng góp của thầy để đề tài hồn thiện hơn, để có thể phát triển hơn phục vụ cho
tương lai.
Chúng em chân thành cảm ơn.

Nhóm thực hiện
Nguyễn Thu Ngân – 18110161
Nguyễn Như Bảo Phương – 18110180


TĨM TẮT TIẾNG VIỆT
1


Các vấn đề nghiên cứu

-

Tìm hiểu về các hệ thống tương tự, phân tích để tìm ra điểm mạnh và phù hợp
để áp dụng.

-

Tìm hiểu về NodeJS, ExpressJS để giải quyết vấn đề cung cấp dịch vụ API cho
hệ thống đặt vé xem phim.

-

Tìm hiểu về ReactJS để tạo giao diện và thực hiện chức năng cho hệ thống đặt
vé xem phim.

2

Các vấn đề phát sinh

-

Tính bảo mật của website.

-

Dùng dường dẫn ảnh trực tuyến bị lỗi hiển thị.


-

Giải pháp hoàn tiền trong Paypal.

3

Các phương pháp giải quyết vấn đề

-

Sử dụng JWT để cải thiện yêu cầu bảo mật cho website.

-

Lưu ảnh ở local bằng multer.

4

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

-

Hệ thống Đặt vé xem phim gồm: website cho phía người dùng cuối và website
cho phía người quản lý trang.

-

Giao diện dễ sử dụng với người dùng.

-


Đáp ứng được các chức năng cơ bản.


MỤC LỤC


MỤC LỤC HÌNH ẢNH

7


MỤC LỤC BẢNG

8


DANH MỤC TỪ VIẾT TẮT
Số thứ tự

Ký hiệu chữ viết tắt

Từ viết đầy đủ

1

API

Application Programming Interface


2

QR

Quick Response

3

UI

User Interface

4

JWT

JSON Web Token

9


DANH MỤC TỪ CHUYÊN NGÀNH

Số thứ tự

Từ

Ý nghĩa

1


Server

Máy chủ

2

Middleware

Phần mềm trung gian này có nhiệm vụ
đơn giản hóa cho các ứng dụng phân
tán phức tạp đồng thời nó cịn hỗ trợ
vơ cùng tích cực cho tồn bộ các q
trình kết nối

3

Search field

Trường tìm kiếm

4

Regular expression

Những biểu thức này sẽ có những
nguyên tắc riêng và bạn phải tuân theo
nguyên tắc đó thì biểu thức của bạn
mới hoạt động được


5

Range queries

Phạm vi truy vấn

6

Replication

Nhân rộng

7

Indexing

Chỉ mục

8

Aggregation

Tổng hợp

9

Operation

Thi hành


10

Document

Dòng dữ liệu trong MongoDB

11

File

Tập tin

12

Mapreduce

Mơ hình được thiết kế độc quyền bởi
Google, nó có khả năng lập trình xử lý
các tập dữ liệu lớn song song và phân
tán thuật toán trên 1 cụm máy tính

13

Collection

Bảng trong MongoDB

14

Client


Máy khách

15

Scenario

Kịch bản

16

Sequence

Lược đồ tuần tự

17

Request

Yêu cầu được gửi từ người dùng

10


KẾ HOẠCH THỰC HIỆN
Tuần

Ngày

Nhiệm vụ (Công việc dự kiến)


Sản phẩm

Ghi
chú

- Khảo sát hiện trạng
- Xác định chức năng của web

1+2+
3

15/09 – 05/10

- Thiết kế usecase
- Viết Scenario và vẽ Sequence
- Thiết kế MongoDB
- Tìm

hiểu
Website.

4+5+
6

7+8+
9

06/10 – 26/10


về

ReactJS

cho - Xây dựng giao
diện
web
admin và web
- Tìm hiểu về NodeJS, ExpressJS
người dùng.
để phát triển APIs, JSON WEB
TOKEN để ứng dụng vào xác - Làm API đăng
thực và phân quyền API của hệ
ký, đăng nhập
thống.
- Tìm hiểu về MongoDB để áp

- Xây dựng các

dụng vào lưu trữ dữ liệu người
dùng của hệ thống.

API quản lý
phim, tạo lịch
chiếu,
xem/
sửa thơng tin
cá nhân.

- Tìm hiểu cách xây dựng Restful


27/10 – 16/11

API.
- Kết hợp các phần đã xây dựng lại

với nhau
Database).

(Giao

diện,

API, - Xây dựng chức
năng đăng ký,
đăng nhập.

- Viết báo cáo

9+10

17/11 – 30/11

- Tiếp tục xây dựng các chức năng

đặt vé

- Chạy

project

kiểm lỗi

thử


- API đặt vé, xem lịch sử giao dịch
Page 11 of 93


- Tiếp tục viết báo cáo
- Viết API tìm kiếm người dùng,

11+12

31/11 – 14/12

phim, thống kê
- Xây dựng chức năng quản trị

- Ứng

dụng
hoàn thành cơ
bản.

(quản lý người dùng, quản lý
phim, thống kê)

13


15/12-25/12

- Kiểm thử chương trình và tiến - Ứng
dụng
hành sửa lỗi.
hoàn thành cơ
bản.
- Hoàn tất báo cáo và dự án web

Page 12 of 93


CHƯƠNG 1: PHẦN MỞ ĐẦU
1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Đến rạp xem phim là một hình thức giải trí tuyệt vời, được nhiều bạn trẻ yêu
thích hiện nay. Tuy nhiên, mua vé xem phim lại là một việc không được yêu thích như
vậy. Bởi vào những ngày cao điểm thì xếp hàng mua vé xem phim trực tiếp tại quầy là
một "cực hình". Đặc biệt hơn nữa vào thời điểm dịch bệnh vẫn chưa hồn tồn được
kiểm sốt như hiện này thì việc tập trung đơng người để mua vé là điều khơng nên
khuyến khích. Chính vì thế mà hình thức mua vé xem phim online được ưa chuộng
hơn rất nhiều.
Quý khách có thể quét mã QR để một bước vào rạp mà không cần tốn thêm bất
kỳ công đoạn nào nữa. Nếu bạn đã chọn được phim hay để xem, hãy đặt vé cực nhanh
bằng cách chọn phim ngay từ Trang Chủ. Chỉ cần một phút, email phản hồi của web
sẽ gửi ngay vào hộp mail của bạn.
Nhận thấy được nhu cầu xem phim của người dùng hiện nay, nhóm chúng em
đã quyết định chọn đề tài “Xây dựng trang web Đặt vé xem phim” để giúp mọi người
có thể đặt vé nhanh chóng, tiện lợi và hiệu quả.

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 một cách nhanh
chóng việc đặt vé xem phim. Đồng thời kèm theo đó là các cơng nghệ áp dụng tạo ra
sản phẩm. Cụ thể như sau:
- Tập trung nghiêm cứu Restful API, NodeJS, ExpressJS để xây dựng nên hệ thống các

APIs hỗ trợ lấy dữ liệu một cách chính xác và nhanh chóng nhất.
- Áp dụng cơ sở dữ liệu NoSQL là MongoDB để lưu trữ dũ liệu người dùng của hệ

thống.
- Về phần hiển thị cho người sử dụng 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.
- 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 sốt thơng qua
Token. Người dùng bắt buộc phải đăng nhập vào hệ thống để có một Token riêng và

Page 13 of 93


mỗi request từ phía người dùng đều phải thơng qua một “cánh cửa” Interceptor và
Token là “chìa khóa”.
1.3. PHẠM VI NGHIÊN CỨU
Đề tài này chủ yếu đi tập trung vào việc xử lý các nghiệp vụ cơ bản của một
website như là xem thông tin phim, thực hiện việc đặt vé, lưu lịch sử giao dịch,… Về
phần lõi xử lý, xây dựng đầy đủ các APIs phục vụ cho phần hiển thị cuối cùng.
1.4. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
- Có thêm kiến thức về NodeJS, ReactJS, cách gọi API.
- Xây dựng được một website đặt vé phim trực tuyến với những tính năng cơ bản: Đặt


vé, đổi vé, xem thông tin phim, quản lý thông tin cá nhân ở phía người dùng; Quản
lý phim, lịch chiếu, quản lý người dùng và thống kê ở phía người quản lý trang.

Page 14 of 93


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. NODEJS [1]
2.1.1.Khái niệm
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine.
Nó được xây dựng để chạy trên server.Javascript là ngơn ngữ hướng sự kiện, do đó bất
cứ điều gì xảy ra trên server đều tạo ra sự kiện non-blocking. Nên 1 website sử dụng
NodeJS đáp ứng được việc truy cập cùng lúc một lượng user cực kì lớn.
Và cũng như nhiều ngơn ngữ chạy phía server khác, NodeJS cũng có một cộng
đồng phát triển rất lớn. Nhiều framework sử dụng core NodeJS ra đời, một trong số
các framework phổ biến nhất hiện nay là Express.
2.1.2.Các đặc tính của NodeJS
• Khả năng bất đồng bộ

Tất cả các API của NodeJS đều khơng đồng bộ (none-blocking), nó chủ yếu dựa
trên nền của NodeJS Server và chờ đợi Server trả dữ liệu về.
Việc di chuyển máy chủ đến các API tiếp theo khi gọi và cơ chế thông báo các sự
kiện. Giúp máy chủ để có được một phản ứng từ các cuộc gọi API trước (Realtime).
• Tốc độ nhanh

NodeJS được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi
chương trình rất nhanh.
• Khả năng đơn luồng


Nhưng khả năng mở rộng cao: Node.js sử dụng một mô hình luồng duy nhất với
sự kiện lặp.
Cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứng một cách không ngăn chặn
và làm cho máy chủ cao khả năng mở rộng.
Sử dụng một chương trình đơn luồng và các chương trình tương tự có thể cung
cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủ
• Khả năng khơng đệm (NoCache)

NodeJS khơng đệm bất kì một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra
dữ liệu.

Page 15 of 93


2.2. EXPRESSJS [2]

2.2.1. Khái niệm
Đây là một framework mã nguồn mở miễn phí cho NodeJS. ExpressJS được sử
dụng trong thiết kế và xây dựng các ứng dụng web một cách đơn giản và nhanh
chóng.
ExpressJS chỉ u cầu ngơn ngữ lập trình Javascript nên việc xây dựng các ứng
dụng web và API trở nên đơn giản hơn với các lập trình viên và nhà phát
triển. ExpressJS cũng là một khuôn khổ của NodeJS do đó hầu hết các mã code đã
được viết sẵn cho các lập trình viên có thể làm việc.
Nhờ có ExpressJS mà các nhà lập trình có thể dễ dàng tạo các ứng dụng 1 web,
nhiều web hoặc kết hợp. Do có dung lượng khá nhẹ, ExpressJS giúp cho việc tổ chức
các ứng dụng web thành một kiến trúc MVC có tổ chức hơn. Để có thể sử dụng được
mã nguồn này, chúng ta cần phải biết về Javascript và HTML.
Trên thực tế, nếu không sử dụng ExpressJS, bạn sẽ phải thực hiện rất nhiều bước
lập trình phức tạp để xây dựng nên một API hiệu quả. ExpressJS đã giúp cho việc lập

trình trong Node.js trở nên dễ dàng hơn và có nhiều tính năng mới bổ sung.
2.2.2 Tính năng
Phát triển máy chủ nhanh chóng: ExpressJS cung cấp nhiều tính năng dưới dạng
các hàm để dễ dàng sử dụng ở bất kỳ đâu trong chương trình. Điều này đã loại bỏ nhu
cầu viết mã từ đó tiết kiệm được thời gian.
Phần mềm trung gian Middleware: Đây là phần mềm trung gian có quyền truy
cập vào cơ sở dữ liệu, yêu cầu của khách hàng và những phần mềm trung gian khác.
Phần mềm Middleware này chịu trách nhiệm chính cho việc tổ chức có hệ thống các
chức năng của ExpressJS.
Định tuyến - Routing: ExpressJS cung cấp cơ chế định tuyến giúp duy trì trạng
thái của website với sự trợ giúp của URL.
Tạo mẫu - Templating: Các công cụ tạo khuôn mẫu được ExpressJS cung cấp cho
phép các nhà xây dựng nội dung động trên các website bằng cách tạo dựng các mẫu
HTML ở phía máy chủ.

Page 16 of 93


Gỡ lỗi - Debugging: Để phát triển thành công các ứng dụng web không thể thiết
đi việc gỡ lỗi. Giờ đây với ExpressJS việc gỡ lỗi đã trở nên dễ dàng hơn nhờ khả
năng xác định chính xác các phần ứng dụng web có lỗi.
2.3. MONGODB [3]
2.3.1. Khái niệm
MongoDB là một loại database thiên hướng tài liệu và là một dạng NoSQL
database. Chính vì vậy, Mongodb thường sẽ tránh đi cấu trúc table-based của
relational database để có thể thích ứng được với mọi tài liệu như JSON có sẵn trong
một schema rất linh hoạt và được gọi là BSON.
MongoDB được dùng để lưu trữ mọi dữ liệu dưới dạng Document JSON bởi vậy
mỗi một collection thường sẽ có các kích cỡ và các document khác nhau. Mọi dữ liệu
khi đó đều sẽ được lưu trữ sẵn trong document theo kiểu JSON nên các truy vấn sẽ rất

nhanh.
2.3.2. Tính năng
Hỗ trợ search bằng field, các phép search thông thường, regular expression
searches, và range queries.
Indexing: bất kì field nào trong BSON document cũng có thể được index.
Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bản
đang tồn tại, đang sử dụng. Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữ
liệu tồn vẹn, khơng bị mất mát trước những sự cố ngồi dự đốn là rất cao. Vì vậy,
người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giống hệt cơ
sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố.
Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kết
quả đã được tính tốn. Các phép tốn tập hợp nhóm các giá trị từ nhiều Document
lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm
đó để trả về một kết quả duy nhất. Trong SQL, count(*) và GROUP BY là tương
đương với Aggregation trong MongoDB.
Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những function
trên và hoạt động như một cách phân phối qua sharding.
Ở tính năng tập hợp, chương trình này cung cấp ba cách chính để thực hiện tập
hợp là Aggregation Pipeline, chức năng Mapreduce và Single-purpose Aggregation.

Page 17 of 93


Trong đó, theo tài liệu của MongoDB thì Aggregation Pipeline được công nhận là
cung cấp hiệu suất tốt hơn hầu hết các hoạt động tổng hợp.
JavaScript thường được thực thi trong các truy vấn, các hàm tổng hợp và được
gửi trực tiếp đến cơ sở dữ liệu.
MongoDB hỗ trợ collection có kích thước cố định được gọi là collection giới
hạn. Nó có kích cỡ cố định theo sau thứ tự chèn làm tăng hiệu suất các hoạt động khác
có liên quan đến dữ liệu. Khi dữ liệu vượt quá mức giới hạn thì các tài liệu cũ sẽ bị

xóa mà khơng cần dùng bất cứ dịng lệnh nào.

2.4. REACTJS [4]
2.4.1.Khái niệm
ReactJS là một mã nguồn mở được phát triển bởi Facebook, ra mắt vào năm 2013,
bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác với
các thành phần trên website. Một trong những điểm nổi bật nhất của ReactJS đó là
việc render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client
nữa.
ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao
diện người dùng hay UI. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ
phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng.
2.4.2. Đặc trưng
2.4.2.1.JSX
Trong React, thay vì thường xuyên sử dụng JavaScript để thiết kế bố cục trang
web thì sẽ dùng JSX. JSX được đánh giá là sử dụng đơn giản hơn JavaScript và cho
phép trích dẫn HTML cũng như việc sử dụng các cú pháp thẻ HTML để render các
subcomponent. JSX tối ưu hóa code khi biên soạn, vì vậy nó chạy nhanh hơn so với
code JavaScript tương đương.
2.4.2.2.Redux
ReactJS khơng có những module chuyên dụng để xử lý data, vì vậy ReactJS chia
nhỏ view thành các component nhỏ có mỗi quan hệ chặt chẽ với nhau. Việc ReactJS
sử dụng one-way data flow có thể gây ra một chút khó khăn cho những người muốn
Page 18 of 93


tìm hiểu và ứng dụng vào trong các dự án. Tuy nhiên, cơ chế này sẽ phát huy được ưu
điểm của mình khi cấu trúc cũng như chức năng của view trở nên phức tạp thì ReactJS
sẽ phát huy được vai trị của mình.
2.4.2.3.Virtual DOM

Những Framework sử dụng Virtual-DOM như ReactJS khi Virtual-DOM thay đổi,
chúng ta không cần thao tác trực tiếp với DOM trên View mà vẫn phản ánh được sự
thay đổi đó. Do Virtual-DOM vừa đóng vai trị là Model, vừa đóng vai trị là View nên
mọi sự thay đổi trên Model đã kéo theo sự thay đổi trên View và ngược lại. Có nghĩa
là mặc dù chúng ta không tác động trực tiếp vào các phần tử DOM ở View nhưng vẫn
thực hiện được cơ chế Data-binding. Điều này làm cho tốc độ ứng dụng tăng lên đáng
kể – môt lợi thế không thể tuyệt vời hơn khi sử dụng Virtula-DOM.
2.5. JSON WEB TOKEN [5]
2.5.1.Khái niệm
JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519) định nghĩa một
phương thức nhỏ gọn và khép kín để truyền tải thơng tin an tồn giữa client và server
dưới dạng một JSON. Các thơng tin được truyền tải được đính kèm với một chữ ký
điện có thể xác minh tính đúng đắn do đó tạo ra sự tin cậy cho dữ liệu.
2.5.2.Cấu trúc
JSON Web Token bao gồm 3 thành phần chính được cách nhau bởi dấu chấm (.).
+ Header
+ Payload
+ Signature


Header

Header là một JSON object bao gồm 2 thành phần: kiểu của token là JWT và
thuật toán dùng để ký như HMAC hoặc RSA.
Sau đó JSON này sẽ được mã hóa Base64Url và thêm vào phần đầu tiên của JWT
token.


Payload


Page 19 of 93


Phần thứ 2 của token là payload, chứa các claims (là một các biểu thức về một
thực thể (chẳng hạn user) và một số metadata phụ trợ). Có 3 kiểu
claims: registered, public, và private claims.
Registered claims: Một tập hợp các claims đã được định nghĩa sẵn, chúng không
bắt buộc nhưng được khuyến khích sử dụng để tạo ra token có ý nghĩa hơn. Ví dụ
iss (thời gian tạo token), exp (thời gian token hết hạn), sub (tiêu đề).
Public claims: Những thơng tin mà chúng ta có thể tự định nghĩa ví dụ role,
username, v.v. Nhưng để tránh xung đột với các Registered claims chúng ta nên định
nghĩa các claims được liệt kê trong IANA JSON Web Token Registry.
Private claims: Đây cũng là những thông tin tự định nghĩa để chia sẽ thông tin
giữa 2 bên truyền và nhận và được sự đồng ý của họ.


Signature

Để tạo ra một chữ ký chúng ta cần có encoded header, và encoded payload đã
được mã hóa ở trên cùng với một mã bí mật secret và một thuật toán được chỉ định
trong phần header để tạo ra chữ ký.
Chữ ký được sử dụng để xác minh thông điệp không bị thay đổi trong quá trình
truyền nhận nhờ đó đảm bảo tính đúng đắn của dữ liệu. Nếu ai đó cố gắng sửa thơng
tin trong phần header hoặc payload để gửi mạo danh đến server (nơi tạo và ký token)
thì quá trình xác nhận sẽ không hợp lệ.

Page 20 of 93


CHƯƠNG 3: KHẢO SÁT HIỆN TRẠNG VÀ MƠ HÌNH HĨA

U CẦU
3.1. KHẢO SÁT HIỆN TRẠNG
3.1.1.TIX.VN

Hình 1. Trang TIX

Tix.vn là website hỗ trợ người dùng đặt vé xem phim trực tuyến tại các cụm
rạp như BHD, Galaxy, CGV cực kỳ nhanh chóng và tiện lợi. Với Tix.vn, bạn có thể
mua vé mà không cần phải đến rạp phim sớm để xếp hàng chờ đợi hoặc lo lắng về vấn
đề hết vé. Ngồi ra, Tix.vn thường xun cập nhật các thơng tin mới nhất về trailer,
suất chiếu sớm, các đánh giá phim và chương trình khuyến mãi từ rạp.


Ưu điểm:
- Đặt vé nhanh chóng, thanh tốn tiện lợi và an tồn
- Cập nhật các phim đang hot, đang chiếu và sắp chiếu tại các cụm rạp
- Tích điểm đổi quà, ngập tràn ưu đãi
- Cập nhật tin tức, điện ảnh 24h nóng hổi cùng nhiều khuyến mãi hấp dẫn mỗi

ngày
- Đăng nhập tài khoản để kiểm tra lịch sử giao dịch

Page 21 of 93


3.1.2.CGV.VN

Hình 2.Trang CGV

CJ CGV là một trong top 5 cụm rạp chiếu phim lớn nhất toàn cầu và là nhà

phát hành, cụm rạp chiếu phim lớn nhất Việt Nam. Mục tiêu của CJ CGV là trở thành
hình mẫu cơng ty điển hình đóng góp cho sự phát triển khơng ngừng của ngành công
nghiệp điện ảnh Việt Nam.
Cgv.vn là trang web của CJ CGV có tính năng hỗ trợ khán giả mua vé xem
phim và thanh toán online tại website với nhiều chương trình ưu đãi hấp dẫn.


Ưu điểm:
- Xem những ưu đãi hấp dẫn dành riêng cho bạn
- Đặt vé dễ dàng ngay trên ứng dụng nhanh chóng, an tồn và tiện lợi.
- Chọn rạp yêu thích.
- Đăng nhập & xem thông tin tài khoản CGV Membership.
- Chia sẻ thông tin về phim & ưu đãi với bạn bè qua mạng xã hội.

Page 22 of 93


3.1.3.BHDSTAR.VN

Hình 3. Trang BHD

Từ 2014, BHD Star Cineplex là cụm rạp của doanh nghiệp Việt Nam duy nhất
có sức phát triển mạnh mẽ, qua việc liên tục mở thêm các vị trí rạp mới, ở những khu
vực đắc địa của Thành phố Hồ Chí Minh, Hà Nội, Huế và các tỉnh thành khác. Và
là trang web trực tuyến của BHD Star Cineplex.
Ưu điểm:


Đặt trước ghế đẹp mà không phải xếp hàng tại rạp




Đồng bộ hóa quyền lợi thành viên, đặt trước đồ ăn thức uống với ưu đãi đến
20%



Quản lý tài khoản thành viên dễ dàng với lịch sử tích điểm qua từng giao dịch



Cập nhật lịch chiếu và thơng tin phim nhanh nhất



Tra cứu vị trí rạp BHD Star gần bạn nhất

Page 23 of 93


3.1.4.GALAXYCINE.VN

Hình 4. Trang GALAXYCINE

Galaxy Cinema đang ngày càng phát triển hơn nữa với các chương trình đặc
sắc, các khuyến mãi hấp dẫn, đem đến cho khán giả những bộ phim bom tấn của thế
giới và Việt Nam nhanh chóng và sớm nhất. Đến website galaxycine.vn, quý khách sẽ
dễ dàng mua được vé xem phim ưng ý, tại website luôn được cập nhật nhanh chóng
các phim hay nhất phim mới nhất đang chiếu hoặc sắp chiếu. Lịch chiếu tại mọi hệ
thống rạp chiếu phim của Galaxy Cinema cũng được cập nhật đầy đủ hàng ngày hàng

giờ trên trang chủ.
Ưu điểm:


Dùng tin nhắn lấy vé tại quầy vé của Galaxy Cinema hoặc quét mã QR.



Mục Góc Điện Ảnh - sở hữu lượng dữ liệu về phim, diễn viên và đạo diễn,
giúp quý khách dễ dàng chọn được phim mình u thích.



Giới thiệu các phim sắp chiếu hot nhất trong mục Phim Hay Tháng để q
khách sớm có sự tính tốn.



Mua vé nhanh chóng: rút gọn tối đa các bước mua vé, thời gian tải nội dung
được tối ưu hơn.



Ticket Voucher và Movie Voucher nay có thể áp dụng mua vé trực tuyến..

Page 24 of 93


3.1.5.CINESTAR.COM.VN


Hình 5. Trang CINESTAR

Cinestar có các hệ thống rạp tại nhiều khu vực khác nhau trên tồn quốc. Chính
vì thế chọn mua vé xem phim online trên website Cinestar.com.vn cũng vơ cùng thuận
tiện cho bạn. Vì có thể lựa chọn được những rạp chiếu gần bạn. Bên cạnh đó việc mua
vé xem phim trực tuyến tại Cinestar.com.vn cũng giúp bạn hưởng được nhiều ưu đãi
hơn khi mua trực tiếp tại quầy.


Ưu điểm:

-

Đặt trước ghế đẹp, đồ ăn thức uống với nhiều ưu đãi.

-

Cập nhật sự kiện khuyến mãi, các suất chiếu sớm.

-

Quản lý tài khoản thành viên, đồng bộ quyền lợi với thẻ tích điểm.

-

Cập nhật lịch chiếu và thơng tin phim nhanh nhất.

-

Tra cứu vị trí rạp Cinestar gần bạn nhất.


3.1.6.KẾT LUẬN
Qua dữ liệu khảo sát được ở 5 trang đặt vé xem phim phổ biến nhất hiện nay,
chúng em đã tổng hợp lại những yêu cầu chức năng cho đề tài “Xây dựng ứng dụng
web đặt vé xem phim” như sau:

Page 25 of 93


×