Tải bản đầy đủ (.pdf) (79 trang)

đồ án xây dựng website đặt vé xem phim tại rạp

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 (3.93 MB, 79 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI

XÂY DỰNG WEBSITE ĐẶT VÉ
XEM PHIM TẠI RẠP ANHLS
Giảng viên hướng dẫn

: KS. Bùi Minh Thảo

Sinh viên thực hiện

: Cao Thế Anh

Lớp

: Công nghệ thông tin 3

Mã sinh viên

: 191202943

Khóa

: 60

Hà Nội – 2023



MỤC LỤC
LỜI CẢM ƠN ..................................................................................................................1
DANH MỤC CÁC TỪ VIẾT TẮT .................................................................................2
DANH MỤC BẢNG BIỂU .............................................................................................3
DANH MỤC HÌNH ẢNH ...............................................................................................4
LỜI MỞ ĐẦU .................................................................................................................6
CHƯƠNG 1. GIỚI THIỆU VỀ CÔNG NGHỆ VÀ ĐỀ TÀI ..........................................7
1.1 Tổng quan về công nghệ ........................................................................................7
1.1.1 Giới thiệu về Nextjs .........................................................................................7
1.1.2 Giới thiệu về ngôn ngữ JavaScript ..................................................................8
1.1.3 Giới thiệu về ngôn ngữ TypeScript .................................................................9
1.1.4 Giới thiệu về Nodejs/Expressjs......................................................................10
1.1.5 Giới thiệu và MySQL ....................................................................................11
1.2 Tổng quan đề tài ...................................................................................................13
1.2.1 Tổng quan về website rạp chiếu phim ...........................................................13
1.2.2 Lý do chọn đề tài ...........................................................................................16
1.2.3 Mục tiêu đề tài ...............................................................................................16
1.2.4 Phạm vi đề tài ................................................................................................16
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG ...................................................17
2.1 Mô tả tổng quan hệ thống ....................................................................................17
2.1.1 Tổng quan hệ thống .......................................................................................17
2.1.2 Các yêu cầu của hệ thống ..............................................................................17
2.1.3 Các chức năng của hệ thống ..........................................................................17
2.2 Đặc tả yêu cầu của hệ thống.................................................................................20
2.2.1 Các tác nhân của hệ thống .............................................................................20
2.2.2 Biểu đồ Use-case ...........................................................................................21
2.2.3 Biểu đồ tuần tự ...............................................................................................39
2.2.4 Biểu đồ lớp .....................................................................................................43
2.3 Phân tích thiết kế cơ sở dữ liệu ............................................................................44
2.3.1 Phân tích cơ sở dữ liệu...................................................................................44

2.3.2 Thiết kế cơ sở dữ liệu ....................................................................................50
2.3.3 Sơ đồ quan hệ thực thể ERD .........................................................................55


CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH ............................................................56
3.1 Xây dựng chức năng cho khách hàng ..................................................................56
3.1.1 Chức năng đăng ký ........................................................................................56
3.1.2 Chức năng đăng nhập ....................................................................................57
3.1.3 Chức năng hiển thị trang chủ .........................................................................58
3.1.4 Chức năng hiển thị danh sách phim đang chiếu ............................................58
3.1.5 Chức năng hiển thị thông tin cá nhân ............................................................59
3.1.6 Chức năng hiển thị chi tiết của một phim ......................................................60
3.1.7 Chức năng đánh giá, bình luận phim .............................................................61
3.1.8 Chức năng tìm kiếm phim .............................................................................62
3.1.9 Chức năng chọn lịch trình của phim ..............................................................63
3.1.10 Chức năng chọn ghế ....................................................................................64
3.1.11 Chức năng chọn đồ ăn .................................................................................65
3.2 Xây dựng chức năng của quản trị viên.................................................................66
3.2.1 Chức năng quản lý phim ................................................................................66
3.2.2 Chức năng quản lý khách hàng ......................................................................67
3.2.3 Chức năng quản lý lịch trình .........................................................................68
3.2.4 Chức năng quản lý lịch địa điểm chiếu phim ................................................68
3.2.5 Chức năng quản lý phòng chiếu ....................................................................69
3.2.6 Chức năng quản lý ghế ..................................................................................70
3.2.7 Chức năng quản lý trạng thái ghế ..................................................................70
3.2.8 Chức năng quản lý loại ghế ...........................................................................71
3.2.9 Chức năng quản lý hóa đơn ...........................................................................71
3.2.10 Chức năng quản lý đồ ăn .............................................................................72
3.2.11 Chức năng thống kê báo cáo ........................................................................73
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ....................................................................74

TÀI LIỆU THAM KHẢO .............................................................................................76


1

LỜI CẢM ƠN
***
Em chân thành cảm ơn Cô Bùi Minh Thảo trong thời gian qua đã giúp đỡ, hướng dẫn
em để em có thể hồn thành đề tài này một cách tốt nhất.
Qua đây, em cũng xin được gửi lời cảm ơn đến tất cả các thầy cô công tác tại khoa
Công nghệ thông tin - Trường Đại học Giao thơng vận tải đã dìu dắt, chỉ bảo cho em
trong suốt quá trình học tập tại trường.
Cuối cùng, em xin gửi lời cảm ơn đến gia đình và tất cả người thân, bạn bè, những
người đã luôn động viên, ủng hộ, tạo điều kiện cho em trong thời gian hoàn thành đồ
án.
Mặc dù em đã cố gắng rất nhiều nhưng cũng khơng tránh khỏi thiếu sót và hạn chế
trong q trình thực hiện. Em rất mong nhận được sự thơng cảm và chỉ bảo cũng như
những đóng góp chân thành của các thầy cô và bạn bè để bài đồ án được tốt hơn.
Em xin chân thành cảm ơn!
Hà Nội, tháng 06 năm 2023
Sinh viên thực hiện

Cao Thế Anh


2

DANH MỤC CÁC TỪ VIẾT TẮT
STT Từ viết tắt Tên đầy đủ


Giải thích
Cơ sở dữ liệu là một tập hợp các dữ liệu

1

CSDL

Cơ sở dữ liệu

có tổ chức, thường được lưu trữ và truy
cập điện tử từ hệ thống máy tính.

2

3

SEO

API

Search Engine
Optimization

Tối ưu hóa cơng cụ tìm kiếm

Application

API cung cấp khả năng truy xuất đến một

Programming


tập các hàm hay dùng. Và từ đó có thể

Interface

trao đổi dữ liệu giữa các ứng dụng.


3

DANH MỤC BẢNG BIỂU
Bảng 2.1 Chức năng của quản trị viên ..........................................................................18
Bảng 2.2 Chức năng của người dùng ............................................................................19
Bảng 2.3 Đặc tả chức năng quản lý tài khoản ...............................................................22
Bảng 2.4 Đặc tả chức năng quản lý phim ......................................................................24
Bảng 2.5 Đặc tả chức năng quản lý lịch chiếu phim .....................................................25
Bảng 2.6 Đặc tả chức năng quản lý địa điểm chiếu ......................................................27
Bảng 2.7 Đặc tả chức năng quản lý phòng chiếu ..........................................................28
Bảng 2.8 Đặc tả chức năng quản lý ghế ........................................................................30
Bảng 2.9 Đặc tả chức năng quản lý loại ghế .................................................................31
Bảng 2.10 Đặc tả chức năng quản lý trạng thái ghế ......................................................32
Bảng 2.11 Đặc tả chức năng quản lý đồ ăn ...................................................................34
Bảng 2.12 Đặc tả chức năng quản lý hóa đơn ...............................................................35
Bảng 2.13 Đặc tả chức năng báo cáo thống kê..............................................................37
Bảng 2.14 Đặc tả chức năng đặt vé phim ......................................................................38
Bảng 2.15 Đặc tả chức năng đánh giá, bình luận ..........................................................39
Bảng 2.16 Accounts .......................................................................................................50
Bảng 2.17 Cinemas ........................................................................................................50
Bảng 2.18 Foods ............................................................................................................50
Bảng 2.19 Genres ..........................................................................................................51

Bảng 2.20 Movie_genres ...............................................................................................51
Bảng 2.21 Movies ..........................................................................................................51
Bảng 2.22 Orders ...........................................................................................................52
Bảng 2.23 Order_details ................................................................................................52
Bảng 2.24 Ratings .........................................................................................................52
Bảng 2.25 Rooms ..........................................................................................................53
Bảng 2.26 Schedules .....................................................................................................53
Bảng 2.27 Seat_types ....................................................................................................53
Bảng 2.28 Seats .............................................................................................................54
Bảng 2.29 Status_seats ..................................................................................................54
Bảng 2.30 Tickets ..........................................................................................................54


4

DANH MỤC HÌNH ẢNH
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

1.1 Website của CGV ..........................................................................................13
1.2 Website của Galaxy Cinema .........................................................................14

1.3 Website Lotte Cinema ...................................................................................15
2.1 Sơ đồ phân rã chức năng ..............................................................................20
2.2 Biểu đồ use-case tổng quát ............................................................................21
2.3 Biểu đồ use-case quản lý tài khoản ...............................................................22
2.4 Biểu đồ use-case quản lý phim ......................................................................23
2.5 Biểu đồ use-case quản lý lịch chiếu phim .....................................................25
2.6 Biểu đồ use-case quản lý lịch địa điểm chiếu ...............................................26
2.7 Biểu đồ use-case quản lý phòng chiếu ..........................................................28
2.8 Biểu đồ use-case quản lý ghế ........................................................................29
2.9 Biểu đồ use-case quản lý loại ghế ................................................................31
2.10 Biểu đồ use-case quản lý trạng thái ghế ......................................................32
2.11 Biểu đồ use-case quản lý đồ ăn ...................................................................33
2.12 Biểu đồ use-case quản lý hóa đơn ...............................................................35
2.13 Biểu đồ use-case báo cáo thống kê ..............................................................36
2.14 Biểu đồ use-case đặt vé phim ......................................................................37
2.15 Biểu đồ use-case đánh giá, bình luận ..........................................................38
2.16 Biểu đồ tuần tự đăng ký..............................................................................39
2.17 Biểu đồ tuần tự đăng nhập ..........................................................................40
2.18 Biểu đồ tuần tự đặt vé ..................................................................................40
2.19 Biểu đồ tuần tự quản lý phim ......................................................................41
2.20 Biểu đồ tuần tự quản lý lịch trình ................................................................41
2.21 Biểu đồ tuần tự quản lý hóa đơn..................................................................42
2.22 Biểu đồ tuần tự quản lý báo cáo, thống kê ..................................................42
2.23 Biểu đồ lớp của hệ thống .............................................................................43
2.24 Mơ hình ERD thực thể người dùng .............................................................44
2.25 Mơ hình ERD thực thể phim .......................................................................45
2.26 Mơ hình ERD thực thể thể loại phim ..........................................................45
2.27 Mơ hình ERD thực thể lịch chiếu phim.......................................................46
2.28 Mơ hình ERD thực thể rạp phim .................................................................46
2.29 Mơ hình ERD thực thể phịng chiếu ............................................................47

2.30 Mơ hình ERD thực thể ghế ..........................................................................47
2.31 Mơ hình ERD thực thể loại ghế ...................................................................48
2.32 Mơ hình ERD thực thể hóa đơn...................................................................48
2.33 Mơ hình ERD thực thể vé phim ..................................................................49
2.34 Mơ hình ERD thực thể đánh giá, bình luận phim .......................................49
2.35 Sơ đồ quan hệ ERD .....................................................................................55
3.1 Màn hình đăng ký tài khoản ..........................................................................56
3.2 Màn hình đăng nhập tài khoản ......................................................................57
3.3 Màn hình trang chủ ........................................................................................58


5

Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình
Hình

Hình
Hình
Hình
Hình

3.4 Màn hình hiển thị danh sách phim đang chiếu ..............................................58
3.5 Màn hình hiển thị trang thơng tin cá nhân.....................................................59
3.6 Màn hình hiển thị trang thơng tin phim .........................................................60
3.7 Màn hình hiển thị đoạn phim giới thiệu ........................................................60
3.8 Màn hình hiển thị đánh giá, bình luận phim..................................................61
3.9 Màn hình hiển thị tìm kiếm phim ..................................................................62
3.10 Màn hình hiển thị danh sách lịch trình của phim ........................................63
3.11 Màn hình hiển thị danh sách ghế .................................................................64
3.12 Màn hình hiển thị đồ ăn ...............................................................................65
3.13 Màn hình quản lý phim................................................................................66
3.14 Màn hình thêm phim ...................................................................................66
3.15 Màn hình quản lý khách hàng .....................................................................67
3.16 Màn hình quản lý lịch trình .........................................................................68
3.17 Màn hình quản lý địa điểm chiếu ................................................................68
3.18 Màn hình quản lý phịng chiếu ....................................................................69
3.19 Màn hình quản lý ghế ..................................................................................70
3.20 Màn hình quản lý trạng thái ghế………………………...………………..77
3.21 Màn hình quản lý loại ghế ...........................................................................71
3.22 Màn hình quản lý hóa đơn ...........................................................................71
3.23 Màn hình quản lý đồ ăn ..............................................................................72
3.24 Màn hình thống kê báo cáo ........................................................................73


6


LỜI MỞ ĐẦU
***
Khoa học xã hội ngày càng một phát triển, kèm theo đó chính là nhu cầu của con
người ngày càng tăng cao. Thay vì hồi trước chúng ta phải đứng ở quầy vé, phải xếp
hàng chen chúc nhau để mua được những tấm vé xem phim thì bây giờ ta có thể ngồi ở
nhà có thể đặt được tấm vé. Xem xét từ nhu cầu đó, nên em thực hiện xây dựng một
website đặt vé xem phim để cho khách hàng có thể mua vé một cách nhanh chóng và
thuận lợi. Ngồi ra, có thể giúp cho nhà quản lý nắm bắt thông tin lịch chiếu, phim,
khách hàng… và đặc biệt là quá trình đặt vé một cách dễ dàng và hiệu quả.
Với việc hoàn thành website này, em mong mình có thể phát triển tư duy, kĩ năng
trong quá trình học và làm việc. Mặc dù đề tài này nếu mà được đưa ra thị trường thực
tế thì cịn địi hỏi rất nhiều yếu tố về cơ sở vật chất, trang thiết bị. Nhưng với những
đóng góp này có thể làm một phần gì đó để đem đến những trải nghiệm, giá trị cho
khách hàng.


7

CHƯƠNG 1. GIỚI THIỆU VỀ CÔNG NGHỆ VÀ ĐỀ TÀI
1.1 Tổng quan về công nghệ
1.1.1 Giới thiệu về Nextjs
❖ Lịch sử hình thành
Trước khi tìm hiểu về Nextjs ta nên cần biết qua về Reactjs. Reactjs là một thư
viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng.
Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook. Người bị ảnh
hưởng bởi XHP (một nền tảng thành phần HTML cho PHP). React lần đầu tiên được
triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho
instagram.com năm 2012. Nó được mở mã nguồn tại JSConf US tháng 5 năm 2013.
Nextjs là một khung phát triển web mã nguồn mở do Vercel tạo ra và ra mắt lần
đầu tiên vào năm 2016. Nextjs được xây dựng trên nền tảng Nodejs và Reactjs, cho

phép phát triển ứng dụng web phía máy chủ và phía máy khách.
❖ Khái niệm và sự phát triển của Nextjs
Nextjs là một framework front-end React được phát triển dưới dạng mã nguồn
mở bổ sung các khả năng tối ưu hóa như kết xuất phía máy chủ và tạo trang web tĩnh.
Nextjs xây dựng dựa trên thư viện React, có nghĩa là các ứng dụng Nextjs sử dụng lõi
của React và chỉ thêm các tính năng bổ sung. Việc triển khai ứng dụng kết xuất phía
máy chủ cho phép máy chủ truy cập tất cả dữ liệu được yêu cầu và xử lý JavaScript
cùng nhau để hiển thị trang. Sau đó, trang được gửi lại tồn bộ cho trình duyệt và ngay
lập tức được hiển thị. Kết xuất máy chủ cho phép các trang web tải trong thời gian nhỏ
nhất và tăng trải nghiệm người dùng với khả năng phản hồi nhanh hơn.
Ngoài ra, sử dụng kết xuất phía máy chủ cũng mang lại cho bạn lợi thế về SEO,
giúp trang web của bạn hiển thị cao hơn trên các trang kết quả của cơng cụ tìm kiếm.
Từ đó làm cho các trang web xếp hạng tốt hơn cho SEO vì chúng tải nhanh hơn và
nhiều nội dung trang web có thể được quét bởi các SEO trackers.
❖ Ưu và nhược điểm của Nextjs
Ưu điểm:
- Tính linh hoạt và tiện ích: Nextjs cung cấp các tính năng mạnh mẽ cho
phép phát triển ứng dụng web phía máy chủ và phía máy khách, giúp cho
việc xây dựng các ứng dụng web phức tạp trở nên dễ dàng và nhanh chóng
hơn.
- Tối ưu SEO: vì Nextjs hỗ trợ kết xuất phía máy chủ, các trang web được
xây dựng bằng Nextjs có khả năng tối ưu hóa SEO cao, đưa ra kết quả
tìm kiếm tốt hơn trên các cơng cụ tìm kiếm.


8

-

Tính bảo mật: Nextjs có các tính năng bảo mật được tích hợp sẵn, cho

phép phát triển ứng dụng web an tồn và đáng tin cậy.
Cộng đồng phát triển đơng đảo: Nextjs có một cộng đồng phát triển lớn,
cung cấp các công cụ và tài liệu hỗ trợ cho các nhà phát triển.

Nhược điểm:
Khó tìm hiểu ban đầu: Nextjs có một số tính năng khá phức tạp, điều này
có thể làm cho việc tìm hiểu và sử dụng framework khó khăn đối với các
nhà phát triển mới.
- Tốc độ tải trang phụ thuộc vào nhiều yếu tố: như kích thước ứng dụng và
khả năng tối ưu hóa. Một số ứng dụng web có thể có thời gian tải trang
chậm hơn so với các ứng dụng web khác.
- Không phù hợp với các ứng dụng đơn giản: Nextjs là một framework
phát triển web mạnh mẽ, vì vậy nó khơng phù hợp cho các ứng dụng
web đơn giản và nhỏ. Việc sử dụng framework này cho các ứng dụng
đơn giản có thể làm tăng thời gian và chi phí phát triển.
-

1.1.2 Giới thiệu về ngơn ngữ JavaScript
❖ Lịch sử hình thành
JavaScript được bắt đầu vào năm 1995 tại Netscape Communications. Vào thời
gian này, các nhà sản xuất Netscape browser nhận ra rằng, việc thêm một glue
language để nâng cao trải nghiệm người dùng sẽ làm tăng sự tiêu thụ nội dung của
người dùng. Vì vậy, họ đã đưa Brendan Eich nhúng vào Scheme Programming
language. Phiên bản đầu tiên của ngôn ngữ này được đặt tên là Mocha vào tháng 5
năm 1995, đổi tên thành Livescript vào tháng 9 năm 1995, và được đổi tên thành
Javascript vào tháng 12 năm 1995. Năm 1996, JavaScript đã được gửi đến ECMA
International để hoàn thiện trở thành, một đặc tính kỹ thuật tiêu chuẩn. Vào tháng 6
năm 1997, đặc tính kỹ thuật chính thức đầu tiên cho ngôn ngữ được phát hành là
ECMA-262. Phiên bản mới nhất của ngôn ngữ là ECMAScript 2017 được phát hành
vào tháng 6 năm 2017.

❖ Khái niệm và sự phát triển của ngơn ngữ Javascript
JavaScript là một ngơn ngữ lập trình thông dịch, được sử dụng phổ biến để phát
triển các ứng dụng web phía máy khách và phía máy chủ. Nó là một ngơn ngữ kịch
bản, cho phép các nhà phát triển tương tác với trang web và các tài nguyên trên trình
duyệt web của người dùng thay đổi, tạo ra và xử lý các sự kiện và dữ liệu người dùng.
JavaScript là một ngôn ngữ động, cho phép các biến có thể thay đổi kiểu dữ liệu
của chúng trong q trình thực thi. Nó cũng có thể tương tác với các công nghệ khác
như HTML và CSS để tạo ra các trang web tương tác và đáp ứng tốt trên nhiều thiết bị
khác nhau.


9

❖ Ưu và nhược điểm của ngôn ngữ JavaScript
Ưu điểm:
Độ phổ biến và tính đa năng: JavaScript là một ngơn ngữ phổ biến, được
sử dụng trong nhiều lĩnh vực khác nhau, bao gồm phát triển web, phát
triển ứng dụng di động, phát triển game và nhiều lĩnh vực khác.
Dễ học và sử dụng: JavaScript có cú pháp đơn giản, dễ học và sử dụng.
Nó cũng hỗ trợ rất nhiều tài liệu và nguồn học tập trực tuyến.
Tính tương thích cao: JavaScript hoạt động trên mọi trình duyệt và hệ điều
hành.
Khả năng xử lý dữ liệu trên trình duyệt: JavaScript cho phép xử lý dữ liệu
trên trình duyệt mà khơng cần kết nối tới máy chủ, đây là tính năng quan
trọng đối với các ứng dụng web.

-

-


Nhược điểm:
Bảo mật: không được bảo mật hồn tồn và có thể dẫn đến các vấn đề
bảo mật.
- Tốc độ xử lý: là ngôn ngữ dựa trên đối tượng và chạy trên trình duyệt, do
đó tốc độ xử lý của nó khơng bằng các ngơn ngữ được biên dịch như
C++, Java hoặc Python.
- Độ tin cậy: khơng đáng tin cậy vì nó có thể bị thay đổi trên trình duyệt
hoặc chặn bởi các trình chặn quảng cáo.
-

1.1.3 Giới thiệu về ngôn ngữ TypeScript
❖ Lịch sử hình thành
TypeScript là một ngơn ngữ lập trình mã nguồn mở được phát triển bởi
Microsoft. Nó được phát hành lần đầu vào tháng 10 năm 2012. TypeScript được xây
dựng trên cú pháp JavaScript tiêu chuẩn và thêm vào các tính năng mới, bao gồm các
kiểu dữ liệu tĩnh, lớp, mô đun và các tính năng khác.
❖ Khái niệm và sự phát triển của ngôn ngữ TypeScript
TypeScript được thiết kế để giải quyết một số vấn đề về phát triển ứng dụng lớn
và phức tạp bằng JavaScript. Với các tính năng kiểu dữ liệu tĩnh, TypeScript cho phép
các nhà phát triển phát hiện các lỗi phát sinh trong quá trình phát triển sớm hơn và
giảm thiểu số lượng lỗi trong quá trình thực thi. TypeScript cũng cho phép các nhà
phát triển xây dựng các ứng dụng phức tạp hơn với mã nguồn dễ hiểu hơn, dễ bảo trì
hơn và dễ tái sử dụng hơn.
Sau khi được phát hành, TypeScript đã nhận được sự quan tâm và phản hồi tích
cực từ cộng đồng phát triển. Microsoft đã liên tục cập nhật và phát triển TypeScript
với các tính năng mới như kiểu dữ liệu phức tạp hơn, truy xuất kiểu tại thời điểm biên
dịch và tính năng khai báo kiểu cho các thư viện JavaScript.


10


TypeScript được sử dụng rộng rãi trong phát triển ứng dụng web, ứng dụng di
động và các ứng dụng máy tính. TypeScript cũng là một trong những ngơn ngữ lập
trình phổ biến nhất trên GitHub, với hàng nghìn dự án được xây dựng bằng
TypeScript.
❖ Ưu và nhược điểm của ngôn ngữ TypeScript
Ưu điểm:
- Kiểm soát được kiểu dữ liệu: TypeScript cho phép khai báo kiểu dữ liệu
tĩnh, giúp giảm thiểu số lượng lỗi trong quá trình phát triển và giúp mã
nguồn dễ hiểu hơn.
- Tính mở rộng: TypeScript được phát triển trên cú pháp của JavaScript, vì
vậy nó có thể chạy trên các trình duyệt web và các máy chủ sử dụng
Nodejs.
- Có nhiều tính năng mới: TypeScript bổ sung nhiều tính năng mới như lớp,
kế thừa, giao diện, mơ đun, decorator, đồn bộ và bất đồng bộ và nhiều tính
năng khác giúp mã nguồn dễ bảo trì và tái sử dụng.
Nhược điểm
- Khó học: TypeScript có nhiều khái niệm mới và cú pháp khác với
JavaScript, vì vậy nó có thể khó học cho những người mới bắt đầu.
- Thêm thời gian phát triển: Việc khai báo kiểu dữ liệu tĩnh và sử dụng các
tính năng mới trong TypeScript có thể tốn nhiều thời gian phát triển hơn so
với JavaScript thơng thường.
- Thêm chi phí: TypeScript có thể tăng chi phí phát triển ứng dụng, do việc
phải tốn nhiều thời gian và công sức để phát triển ứng dụng với TypeScript.

1.1.4 Giới thiệu về Nodejs/Expressjs
❖ Lịch sử hình thành
Expressjs là một Framework được xây dựng trên nền tảng của Nodejs. Nó cung
cấp các tính năng mạnh mẽ để phát triển web hoặc mobile. Expressjs hỗ trợ các
phương thức HTTP và phần mềm trung gian tạo ra API vô cùng mạnh mẽ và dễ sử

dụng.
❖ Tính năng của Expressjs
- 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 : đâ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
trung gian 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.


11

- Định tuyến: 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: 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ủ.
❖ Ưu và nhược điểm của Expressjs
Ưu điểm:
- Tốc độ xử lý nhanh: được thiết kế để xử lý các yêu cầu HTTP nhanh chóng
và hiệu quả.
- Đơn giản và dễ sử dụng: cung cấp một API đơn giản và dễ sử dụng cho
phép lập trình viên tạo các ứng dụng web đơn giản hoặc phức tạp.
- Mạnh mẽ và linh hoạt: cho phép lập trình viên xây dựng ứng dụng web đa
dạng với các tính năng như middleware, routing, template engine…
- Cộng đồng hỗ trợ lớn: Expressjs được sử dụng rộng rãi và có cộng đồng
phát triển và hỗ trợ lớn, vì vậy có nhiều tài liệu và giải pháp được chia sẻ
trên Internet.
Nhược điểm:

- Khơng có hỗ trợ tích hợp, khơng đi kèm với một cơ sở dữ liệu hay các công
cụ hỗ trợ khác như Object Relational Mapping hoặc công cụ mẫu. Do đó,
người dùng phải tự chọn các cơng cụ hỗ trợ phù hợp.
- Khơng có quản lý lỗi được tích hợp sẵn, điều này có nghĩa là lập trình viên
phải tự quản lý lỗi trong ứng dụng của mình.
- Khó khăn trong việc quản lý trạng thái ứng dụng, khi ứng dụng Expressjs
lớn, việc quản lý trạng thái của ứng dụng trở nên phức tạp và khó khăn hơn.

1.1.5 Giới thiệu và MySQL
❖ Lịch sử hình thành
MySQL được phát triển bởi Michael Widenius, David Axmark và Allan Larsson
từ năm 1994. Ban đầu là dự án trong công ty TCX Datakonsult AB và sau đó thành
cơng ty MySQL AB. Năm 2008, MySQL AB được mua lại bởi Sun Microsystems, sau
đó Sun Microsystems được mua lại bởi Oracle Corporation vào năm 2010. Tuy nhiên,
MySQL vẫn là một phần mềm mã nguồn mở và tiếp tục được phát triển dưới dạng
MySQL Community Edition. Hiện nay, MySQL vẫn là một trong những hệ quản trị cơ
sở dữ liệu phổ biến nhất trên thế giới.
❖ Tính năng của MySQL
MySQL hỗ trợ mơ hình quan hệ, cho phép lưu trữ và truy vấn dữ liệu theo cấu
trúc bảng, các quan hệ giữa các bảng và sử dụng ngôn ngữ truy vấn SQL.


12

Cung cấp các cơ chế bảo mật và quản lý người dùng để kiểm soát quyền truy cập
vào cơ sở dữ liệu. Nó cũng hỗ trợ sao lưu và khơi phục dữ liệu, giúp đảm bảo tính an
tồn và khả năng khơi phục của hệ thống.
Ngồi ra, có sẵn trên nhiều nền tảng hệ điều hành như Windows, Linux, macOS
và có khả năng tương thích với nhiều ngơn ngữ lập trình và cơng nghệ phát triển.
Cuối cùng, cung cấp các công cụ quản lý cơ sở dữ liệu như MySQL Workbench,

MySQL Shell và MySQL Utilities để quản lý và tương tác với cơ sở dữ liệu. Nó cũng
hỗ trợ các ngơn ngữ lập trình phổ biến như PHP, Java, Python, Node.js để phát triển
ứng dụng.
❖ Ưu và nhược diểm của MySQL
Ưu điểm:
- MySQL được tối ưu để đạt hiệu suất cao với khả năng xử lý tải lớn và thời
gian truy vấn nhanh.
- Cung cấp các cơ chế bảo mật và quản lý người dùng để kiểm soát quyền
truy cập vào cơ sở dữ liệu. Nó cũng hỗ trợ sao lưu và khơi phục dữ liệu,
đảm bảo tính an tồn và khả năng khôi phục của hệ thống.
- Được tối ưu để đạt hiệu suất cao với khả năng xử lý tải lớn và thời gian truy
vấn nhanh. Nó hỗ trợ các chỉ mục để tăng tốc độ truy vấn và các kỹ thuật
tối ưu truy vấn để cải thiện hiệu suất.
- MySQL có một cộng đồng phát triển mạnh mẽ và hoạt động mã nguồn mở,
cung cấp tài liệu, diễn đàn và các tài liệu tham khảo phong phú.
Nhược điểm:
MySQL tập trung vào cơ sở dữ liệu quan hệ và có hạn chế trong việc xử
lý dữ liệu phi cấu trúc như dữ liệu không gian, dữ liệu văn bản đầy đủ, và
dữ liệu lớn.
- Mặc dù MySQL hỗ trợ mở rộng theo chiều ngang, nhưng khả năng mở
rộng này có giới hạn và có thể gặp khó khăn khi xử lý tải công việc rất lớn
hoặc phân tán trên nhiều máy chủ.
- Phiên bản miễn phí của MySQL có một số giới hạn tính năng so với phiên
bản trả phí như cơng cụ quản lý và hỗ trợ.
-


13

1.2 Tổng quan đề tài

1.2.1 Tổng quan về website rạp chiếu phim
❖ Khái niệm về rạp chiếu phim
Một website đặt vé xem phim là một trang web cho phép người dùng mua vé
xem phim trực tuyến thông qua internet. Trang web này cung cấp cho người dùng
thông tin về các phim đang chiếu, giá vé, suất chiếu và các chương trình khuyến mãi
hiện có. Người dùng có thể lựa chọn phim mình muốn xem, chọn suất chiếu và đặt vé
trực tuyến thơng qua trang web.
Trong q trình đặt vé, người dùng sẽ được yêu cầu cung cấp thông tin cá nhân,
như tên, số điện thoại và địa chỉ email. Sau khi hoàn tất việc đặt vé, người dùng sẽ
nhận được thông tin về vé qua email hoặc tin nhắn điện thoại. Người dùng cũng có thể
lựa chọn in vé hoặc hiển thị vé trên điện thoại để sử dụng khi đến xem phim.
❖ Các rạp chiếu phim nổi tiếng của Việt Nam
Rạp phim CGV: />
Hình 1.1 Website của CGV
CGV có thể được truy cập thông qua trang web cgv.vn, nơi người dùng có thể
tìm kiếm thơng tin về các phim đang chiếu, giá vé, suất chiếu và đặt vé trực tuyến.
CGV cũng cung cấp cho người dùng nhiều dịch vụ khác nhau, bao gồm đặt vé VIP,
đặt phòng hát karaoke, đặt bàn ăn và mua đồ ăn uống tại rạp.
Ưu điểm:
- Về giao diện web thì trực quan, dễ sử dụng và thuận tiện cho người dùng. Trang
web được thiết kế với hình ảnh, biểu tượng và màu sắc tương thích với hình ảnh
của hãng CGV, tạo sự nhận diện cho người dùng.


14

- Cung cấp thông tin về các phim đang chiếu tại rạp CGV, bao gồm cả những phim
sắp chiếu. Người dùng có thể tìm kiếm thơng tin về phim bằng cách sử dụng
thanh tìm kiếm hoặc chọn trong danh sách các phim được hiển thị.
- Tiếp đến cung cấp thông tin về giá vé và lịch chiếu của các phim tại các rạp

CGV. Người dùng có thể chọn rạp và suất chiếu cụ thể, xem lịch chiếu và giá vé
tương ứng, và đặt vé trực tuyến.
- Ngoài ra trang web có chức năng đặt vé trực tuyến. Người dùng có thể đăng nhập
vào tài khoản của mình hoặc tiến hành đặt vé với tư cách khách. Trang web cũng
cho phép người dùng chọn chỗ ngồi và thanh toán vé trực tuyến.
Nhược điểm :
- Chỉ cung cấp thông tin về các phim đang chiếu tại các rạp CGV, không bao gồm
các rạp khác.
- Đôi khi gặp phải sự cố khi đặt vé trực tuyến, như không đặt được chỗ ngồi hoặc
lỗi trong q trình thanh tốn.
- Chưa có đăng nhập các nền tảng mảng xã hội
Rạp Glaxy Cinema: />
Hình 1.2 Website của Galaxy Cinema
Ưu điểm:
-

-

Rạp Galaxy có thiết kế hiện đại và sang trọng với hệ thống âm thanh và hình
ảnh tiên tiến, đảm bảo mang lại trải nghiệm giải trí tốt nhất cho khách hàng.
Rạp cũng cung cấp các dịch vụ tiện ích như rạp hát karaoke, trị chơi điện tử và
mua sắm đồ ăn uống tại rạp.
Trang web Galaxy Cinema cho phép người dùng đặt vé trực tuyến với nhiều lựa
chọn về phòng chiếu, ghế ngồi và thời gian chiếu. Người dùng có thể chọn hình
thức thanh tốn trực tuyến hoặc thanh toán khi đến rạp.


15

-


Hiển thị lịch chiếu của các bộ phim đang chiếu tại rạp. Người dùng có thể chọn
xem lịch chiếu theo ngày hoặc theo phim.
Trang web cung cấp tính năng đăng ký thành viên, giúp người dùng nhận được
thông tin mới nhất về các bộ phim sắp chiếu, các chương trình khuyến mãi và
các sự kiện đặc biệt tại rạp.

Nhược điểm:
-

-

-

Trang web khơng được tối ưu hồn hảo cho việc sử dụng trên các thiết bị di
động như điện thoại thông minh hoặc máy tính bảng.
Trang web khơng cung cấp đầy đủ các thông tin về các bộ phim đang chiếu,
chẳng hạn như đánh giá, nhận xét của khán giả và các thơng tin liên quan đến
sản xuất phim.
Khơng có tính năng tìm kiếm nâng cao giúp người dùng tìm kiếm thơng tin về
các bộ phim theo nhiều tiêu chí khác nhau, chẳng hạn như thể loại, đạo diễn,
diễn viên và quốc gia sản xuất.
Chưa có đăng nhập với các nên tảng mạng xã hội

Rạp Lotte Cinema: />
Hình 1.3 Website Lotte Cinema
Ưu điểm:
- Trang web của Lotte Cinema được thiết kế rất đẹp và dễ sử dụng, giúp người
dùng tìm kiếm thông tin về các bộ phim đang chiếu, đặt vé trực tuyến và tìm
kiếm các ưu đãi và khuyến mãi một cách dễ dàng.

- Cho phép người dùng đặt vé trực tuyến với nhiều lựa chọn về phòng chiếu, ghế
ngồi và thời gian chiếu. Người dùng cũng có thể chọn hình thức thanh tốn trực
tuyến hoặc khi đến rạp.


16

- Các chương trình khuyến mãi đang diễn ra tại rạp, bao gồm giảm giá vé, tặng quà
và ưu đãi cho các đối tượng khách hàng nhất định.
Nhược diểm:
- Trang web của Lotte Cinema có thể bị chậm đơi khi, đặc biệt là khi truy cập vào
lịch chiếu hoặc đặt vé trực tuyến.
- Hạn chế về tính năng tìm kiếm thơng tin, đặc biệt là khi người dùng tìm kiếm các
bộ phim theo thể loại hoặc theo diễn viên.

1.2.2 Lý do chọn đề tài
Bán vé xem phim là một lĩnh vực kinh doanh tiềm năng, vì nhu cầu giải trí của
con người ln có sự tăng trưởng và phim là một hình thức giải trí phổ biến.
Việc nghiên cứu và phát triển một hệ thống đặt vé xem phim đòi hỏi tư duy phân
tích, thiết kế và triển khai hệ thống, từ đó giúp nâng cao kỹ năng tư duy của bản thân.
Để phát triển một hệ thống đặt vé xem phim hiệu quả, cần phải có kiến thức về các
cơng nghệ và kỹ năng lập trình. Việc thực hành và phát triển một hệ thống thực tế sẽ
giúp bạn cải thiện kỹ năng lập trình của mình.
Một hệ thống đặt vé xem phim hiệu quả sẽ giúp cho người dùng có thể đặt vé
một cách dễ dàng và thuận tiện hơn, từ đó giúp cho việc xem phim trở nên đơn giản và
tiện lợi hơn đối với cộng đồng. Chính vì thế em đã quyết định chọn đề tài này để nâng
cao trình độ bản thân và có thể mang lại lợi ích cho cộng đồng.

1.2.3 Mục tiêu đề tài
- Đề tài được xây dựng phát triển dựa trên nhu cầu thực tế của khách hàng có thể

đặt vé xem phim trực tuyến một cách nhanh chóng mà khơng cần phải đứng xếp
hàng đợi như khi mua ở bên ngồi quầy.
- Ngồi ra cịn giúp nhà quản lý nắm bắt thông tin lịch chiếu, phim, khách hàng…
và đặc biệt là quá trình đặt vé một cách dễ dàng và hiệu quả.
- Thực hiện đề tài nhằm:
o Hiểu rõ nguyên lý hoạt động của Nextjs, các thành phần hệ thống của một ứng
dụng Nextjs.
o Tìm hiểu và nắm rõ Expressjs để làm một webservice.
o Biết cách quản lý dữ liệu bằng MySQL.
o Nắm rõ ngôn ngữ JavaScript và TypeScript.

1.2.4 Phạm vi đề tài
Ứng dụng được thiết kế nhằm đáp ứng nhu cầu khách hàng có thể đặt vé xem
phim trực tuyến tại rạp AnhLS. Rạp sẽ có nhiều chi nhánh trên cả nước để khách hàng
có thể chọn địa điểm xem phim gần mình nhất.


17

CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Mơ tả tổng quan hệ thống
2.1.1 Tổng quan hệ thống
Website sẽ được thiết kế cho dễ dàng sử dụng với giao diện người dùng tốt và tin
cậy. Nó sẽ đảm bảo sẵn sàng cho mọi khách hàng và người quản trị ở mọi thời điểm.
Hỗ trợ trên mọi hệ điều hành.
Website có hai nhóm đối tượng chính:
- Khách hàng có nhu cầu mua đặt vé xem phim tại các địa điểm.
- Quản trị viên quản lý hệ thống.

2.1.2 Các yêu cầu của hệ thống

❖ Yêu cầu chức năng
Website có những yêu cầu chức năng sau:
- Đăng ký, đăng nhập, đổi mật khẩu.
- Hiển thị danh sách phim, danh sách lịch chiếu phim.
- Chọn phim, địa điểm phim, lịch trình, phịng chiếu, ghế, đồ ăn để đặt vé
xem phim.
- Tìm kiếm phim theo tên.
- Xem thông tin, cập nhật thông tin thành viên, xem các phim đã đặt.
- Xem chi tiết phim, đánh giá và bình luận phim.
- Quản lý thêm, cập nhật, xóa danh sách phim, thể loại, lịch trình, phịng
chiếu, địa điểm, ghế ngồi, đồ ăn, khách hàng.
- Thống kê phim xem nhiều nhất.
- Thống kê doanh thu, lợi nhuận theo tháng, năm.
❖ Yêu cầu phi chức năng
Website có những yêu cầu phi chức năng sau:
- Giao diện thân thiện, dễ sử dụng.
- Các tính năng của hệ thống phải tối ưu và đảm bảo được tính tự động.
- Tương thích với đa phần và website hiện tại.
- Thích ứng với mọi kích thước màn hình.

2.1.3 Các chức năng của hệ thống
❖ Phần web quản trị viên
- Quản lý khách hàng.
- Quản lý danh sách phim.
- Quản lý lịch chiếu phim.
- Quản lý địa điểm chiếu.
- Quản lý phòng chiếu.




×