Bao Cao DAPM2

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 38

TRƯỜNG ĐẠI HỌC XÂY DỰNG MIỀN TRUNG

KHOA CÔNG NGHỆ HẠ TẦNG – KỸ THUẬT


BỘ MÔN CÔNG NGHỆ THÔNG TIN

HỌC PHẦN: ĐỒ ÁN PHẦN MỀM 2


TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG BÁN VÉ XEM PHIM
TRỰC TUYẾN
Giảng viên hướng dẫn: Nguyễn Xuân Hậu

Sinh viên thực hiện: Võ Xuân Tuấn

Phạm Huỳnh Chi

Nguyễn Văn Sáng

Hà Quốc Toản

Phú Yên, 2024


TRƯỜNG ĐẠI HỌC XÂY DỰNG MIỀN TRUNG
KHOA CÔNG NGHỆ HẠ TẦNG – KỸ THUẬT
BỘ MÔN CÔNG NGHỆ THÔNG TIN

HỌC PHẦN: ĐỒ ÁN PHẦN MỀM 2


TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG BÁN VÉ XEM PHIM
TRỰC TUYẾN
Giảng viên hướng dẫn: Nguyễn Xuân Hậu

Sinh viên thực hiện: Võ Xuân Tuấn

Phạm Huỳnh Chi

Nguyễn Văn Sáng

Hà Quốc Toản

Phú Yên, 2024

2
MỤC LỤC
DANH MỤC HÌNH ẢNH...............................................................................................5

LỜI MỞ ĐẦU.................................................................................................................7

CHƯƠNG 1. TỔNG QUAN HỆ THỐNG QUẢN LÝ BÁN VÉ XEM PHIM TRỰC


TUYẾN...........................................................................................................................8

1.1. Đặc tả bài toán..........................................................................................................8

1.2. Phân nhóm chức năng..............................................................................................9

1.3. Phân tích chức năng.................................................................................................9

1.3.1. Đặt vé xem phim...................................................................................................9

1.3.2. Yêu cầu đổi trả vé/Hoàn tiền...............................................................................10

1.3.3. Phân quyền nhân viên.........................................................................................11

1.3.4. Báo cáo, thống kê................................................................................................12

CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ BÁN VÉ XEM


PHIM TRỰC TUYẾN..................................................................................................13

2.1. Biểu đồ Use Case...................................................................................................13

2.1.1. Tác nhân Khách hàng..........................................................................................13

2.1.2. Tác nhân Quản trị viên........................................................................................13

2.1.3. Tác nhân Nhân viên.............................................................................................14

2.2. Biểu đồ Trạng thái..................................................................................................14

2.2.1. Trạng thái đặt vé xem phim.................................................................................14

2.2.2. Trạng thái Yêu cầu đổi trả vé/Hoàn tiền.............................................................15

2.3. Biểu đồ Lớp............................................................................................................15

2.4. Chuyển đổi biểu đồ Lớp sang mô hình CSDL quan hệ..........................................16

2.4.1. Mô hình tổ chức dữ liệu......................................................................................16

2.4.2. Mô hình vật lý dữ liệu.........................................................................................17

2.5. Biểu đồ tuần tự.......................................................................................................20

2.5.1. Thêm suất chiếu..................................................................................................20

3
2.5.2. Xóa suất chiếu.....................................................................................................20

2.5.3. Chỉnh sửa suất chiếu............................................................................................21

2.5.4. Đặt vé xem phim.................................................................................................21

2.5.5. Yêu cầu đổi trả vé/Hoàn tiền...............................................................................23

2.6. Biểu đồ hoạt động..................................................................................................23

2.6.1. Thêm suất chiếu..................................................................................................23

2.6.2. Xóa suất chiếu.....................................................................................................24

2.6.3. Chỉnh sửa suất chiếu............................................................................................24

2.6.4. Đặt vé xem phim.................................................................................................25

2.6.5. Yêu cầu đổi trả vé/Hoàn tiền...............................................................................26

CHƯƠNG 3. XÂY DỰNG HỆ THỐNG QUẢN LÝ BÁN VÉ XEM PHIM TRỰC


TUYẾN.........................................................................................................................27

3.1. Các công cụ sử dụng..............................................................................................27

3.1.1. ReactJS................................................................................................................27

3.1.2. NodeJS, Express..................................................................................................27

3.1.3. MongoDB............................................................................................................28

3.2. Demo chương trình.................................................................................................28

3.2.1. Server side rendering...........................................................................................28

3.2.2. Client side rendering...........................................................................................30

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

4
DANH MỤC HÌNH ẢNH
Hình 2.1. Biểu đồ Use Case tác nhân Khách hàng........................................................13

Hình 2.2. Biểu đồ Use Case tác nhân Quản trị viên......................................................13

Hình 2.3. Biểu đồ Use Case tác nhân Nhân viên..........................................................14

Hình 2.4. Biểu đồ trạng thái mô tả Khách hàng đặt vé xem phim................................14

Hình 2.5. Biểu đồ trạng thái Khách hàng yêu cầu đổi trả vé/hoàn tiền.........................15

Hình 2.6. Biểu đồ Lớp hệ thống bán vé xem phim trực tuyến......................................15

Hình 2.7. Biểu đồ tuần tự Thêm suất chiếu...................................................................20

Hình 2.8. Biểu đồ tuần tự Xóa suất chiếu.....................................................................20

Hình 2.9. Biểu đồ tuần tự Chỉnh sửa suất chiếu............................................................21

Hình 2.10. Biểu đồ tuần tự Đặt vé xem phim................................................................22

Hình 2.11. Biểu đồ tuần tự Yêu cầu đổi trả vé/Hoàn tiền.............................................23

Hình 2.12. Biểu đồ hoạt động Thêm suất chiếu............................................................23

Hình 2.13. Biểu đồ hoạt động Xóa suất chiếu...............................................................24

Hình 2.14. Biểu đồ hoạt động Chỉnh sửa suất chiếu.....................................................24

Hình 2.15. Biểu đồ hoạt động Đặt vé xem phim...........................................................25

Hình 2.16. Biểu đồ hoạt động Yêu cầu đổi trả vé/Hoàn tiền........................................26

Hình 3.1. Logo ReactJS.................................................................................................26

Hình 3.2. Logo NodeJS và Express...............................................................................26

Hình 3.3. Logo MongoDB............................................................................................27

Hình 3.4. Trang thêm phim mới của Admin.................................................................27

Hình 3.5. Danh sách tất cả các bộ phim của hệ thống...................................................28

Hình 3.6. Trang lưu trữ các bộ phim đã xóa (Thùng rác).............................................28

Hình 3.7. Trang Admin theo dõi chi tiết các lượt đặt vé của Khách hàng....................28

Hình 3.8. Danh sách các phim đang công chiếu và sắp công chiếu..............................29

Hình 3.9. Trang chi tiết bộ phim...................................................................................29

5
Hình 3.10. Danh sách các suất chiếu của 1 bộ phim.....................................................29

Hình 3.11. Sơ đồ ghế ngồi.............................................................................................30

Hình 3.12. Giỏ hàng......................................................................................................30

Hình 3. 13. Chi tiết vé xem phim..................................................................................30

Hình 3.14. Bảng xếp hạng top 10 khách hàng tiềm năng..............................................31

Hình 3.15. Trang thêm suất chiếu của nhân viên..........................................................31

Hình 3.16. Danh sách các suất chiếu mà nhân viên đã thêm........................................31

Hình 3.17. Trang thống kê phim...................................................................................32

Hình 3.18. Trang thống kê nhân viên............................................................................32

Hình 3.19. Trang thống kê khách hàng.........................................................................32

Hình 3.20. Xuất báo cáo ra file excel (.csv)..................................................................33

Hình 3.21. In báo cáo....................................................................................................33

6
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển không ngừng nghĩ của công nghệ nhất là ngành
công nghệ thông tin. Công nghệ thông tin được ứng dụng trong rất nhiều các lĩnh vực
khác nhau. Với khả năng ứng dụng rộng rãi đó cùng với những chính sách phát triển
ngành công nghệ của Nhà nước, cùng với việc không ngừng nâng cao chất lượng dịch
vụ cũng như chương trình quản lý của các ngành dịch vụ.

Với khả năng ứng dụng rộng rãi của ngành công nghệ thông tin, việc đưa tin
học vào hỗ trợ các công việc quản lý bán vé xem phim cho ngành dịch vụ đã trở thành
một công cụ quản lý trực tuyến mới cũng là một loại hình thương mại điện tử mới theo
hình thức đặt vé xem phim trực tuyến. Ứng dụng này nhằm giảm tải được công việc
cho các nhân viên của rạp chiếu phim như người bán vé và người quản lý về số lượng
vé bán, chương trình chiếu phim, giúp người xem có thể xem thông tin nhanh hơn,
người quản lý có thể cập nhật chương trình nhanh hơn. Đây là ứng dụng rất cần thiết
đối với các rạp chiếu phim nhất là các rạp chiếu phim lớn.

Xuất phát từ nhu cầu đó, sau khi thực hiện đề tài “Phân Tích Và Thiết Kế Hệ
Thống Quản Lý Bán Vé Xem Phim Trực Tuyến” ở Đồ án phần mềm 1 thì nhóm chúng
em đã tiếp tục thực hiện đề tài “Xây Dựng Hệ Thống Bán Vé Xem Phim Trực Tuyến”
cho Đồ án phần mềm 2 lần này. Nhằm tạo ra hệ thống quản lý bán vé xem phim trực
tuyến tại các rạp chất lượng và nâng cao hơn, tránh các sai sót vẫn mắc phải khi còn
làm các phương pháp bán vé xem phim cổ điển. Trọng tâm đồ án này là quá trình xây
dựng hệ thống bán vé xem phim trực tuyến từ việc hình thành lên một hệ thống xem
phim trực tuyến, cải tiến các chức năng đã có của những hệ thống bán vé xem phim
trực tuyến khác, tạo ra các chức năng mới hơn cho hệ thống, kiểm thử và deloy lên để
mọi người cùng sử dụng và nêu ra trải nghiệm.

7
CHƯƠNG 1. TỔNG QUAN HỆ THỐNG QUẢN LÝ BÁN VÉ XEM
PHIM TRỰC TUYẾN
1.1. Đặc tả bài toán

Đối với hệ thống bán vé xem phim trực tuyến thì để khách hàng có thể truy cập
vào ứng dụng và đặt vé thì cần phải đăng ký tài khoản và điền đầy đủ các thông tin
sau: Tên khách hàng, email, số điện thoại, giới tính, ngày sinh, và địa chỉ. Mỗi tài
khoản khách hàng sẽ được định danh bằng mã khách hàng.

Còn đối với tài khoản của nhân viên thì sẽ được người quản trị cung cấp sẵn với
các thông tin như sau: mã nhân viên, chức vụ, mã rạp chiếu phim (để biết nhân viên đó
làm việc tại rạp chiếu phim nào) và phân quyền cho nhân viên để thêm, sửa, xóa thông
tin các bộ phim bao gồm các trường thông tin như sau: mã bộ phim, tên phim, diễn
viên, đạo diễn, biên kịch, thể loại, thời lượng, mô tả phim, ngày công chiếu. Thông tin
các bộ phim này sẽ được cung cấp bởi nhà sản xuất bộ phim đó. Thông tin chi tiết về
nhà sản xuất bao gồm: mã nhà sản xuất, tên nhà sản xuất, email nhà sản xuất.

Sau khi có đầy đủ các thông tin của bộ phim được công chiếu thì tiếp đó người
nhân viên của mỗi cụm rạp sẽ phải thêm các suất chiếu bởi các nội dung như sau: mã
suất chiếu, ngày chiếu phim, khung giờ chiếu phim và mã bộ phim để xác định suất
chiếu đó chiếu bộ phim gì. Nhân viên làm việc ở rạp chiếu phim nào thì chỉ thêm suất
chiếu được cho các phòng tại rạp chiếu phim đó.

Khi khách hàng đặt vé xem phim thì cần phải chọn bộ phim mình muốn xem và
vào trang chi tiết bộ phim, sau đó chọn đặt vé thì hệ thống sẽ yêu cầu chọn suất chiếu
bao gồm ngày chiếu, khung giờ và suất chiếu đó chiếu ở rạp chiếu phim nào thông qua
tên rạp chiếu phim và địa chỉ rạp chiếu phim, tại phòng chiếu phim nào trong rạp
thông qua mã phòng chiếu phim. Sau khi đặt vé thành công thì khách hàng sẽ nắm
được các thông tin chi tiết trong vé xem phim bao gồm: mã vé xem phim, đơn giá, số
lượng, tổng thành tiền, thời gian đặt vé, mã khách hàng xác định mã định danh của
khách hàng đặt vé, mã suất chiếu xác định dành cho suất chiếu nào, mã ghế ngồi để có
thể biết được vị trí và loại ghế ngồi và mã thanh toán để xác định phương thức thanh
toán.

Nhưng để xác nhận đặt vé thành công thì cần phải thanh toán trước đó thông
qua phương thức thanh toán trên ứng dụng chứa thông tin: mã thanh toán, tên phương
thức thanh toán, mã ngân hàng để xác định thanh toán thuộc giao dịch của ngân hàng
nào. Ngân hàng sẽ được xác định thông qua mã ngân hàng và tên ngân hàng khi khách
hàng liên kết tài khoản ngân hàng vào ứng dụng bán vé xem phim trực tuyến.

8
9
1.2. Phân nhóm chức năng

- Khách hàng: Đặt vé xem phim, Yêu cầu đổi trả vé/Hoàn tiền, ….

- Nhân viên: Quản lý phim, Quản lý suất chiếu, Báo cáo, Thống kê, ….

- Quản trị viên: Quản lý dữ liệu hệ thống (phim, rạp chiếu phim, phòng chiếu
phim, ghế ngồi, …), Phân quyền nhân viên, Thống kê chi tiết tất cả các lượt đặt vé, ….

1.3. Phân tích chức năng

1.3.1. Đặt vé xem phim

Khách hàng truy cập vào danh sách tất cả các suất chiếu của bộ phim mình
chọn để chọn suất chiếu mình muốn xem. Có thể lọc ra các suất chiếu từ các rạp khác
nhau để biết rạp nào có suất chiều nào vào ngày nào và vào lúc mấy giờ.

Khi chọn được suất chiếu mình muốn xem khách hàng click chuột vào suất
chiếu đó. Thì ứng dụng sẽ chuyển đến sơ đồ ghế ngồi của phòng chứa suất chiếu đó.
Tại đây, ta có thể thấy được trong phòng chứa suất chiếu khách hàng chọn có tổng
cộng bao nhiêu ghế ngồi, bao nhiêu ghế ngồi là đã được đặt và bao nhiêu ghế ngồi còn
trống. Những ghế ngồi được đặt sẽ có màu xám và không click chuột vào được. Những
ghế ngồi còn trống sẽ có màu đỏ và khi click chuột vào sẽ có màu tím để nhận biết
được ghế mình đã chọn. Khi click vào các ghế ngồi mà khách hàng muốn đặt, ở bên
dưới sẽ có các thông tin như đơn giá ghế ngồi, số lượng ghế ngồi đã chọn, tổng thành
tiền. Sau khi xác nhận thì khách hàng ấn nút “Booking” để đặt vé.

Nhưng để đặt vé thành công thì khách hàng phải đăng nhập trước đó. Nếu
khách hàng chưa đăng nhập hoặc là tài khoản đăng nhập đang thuộc loại Nhân viên thì
khi ấn đặt vé sẽ hiển thị thông báo là “Quý khách chưa đăng nhập! Vui lòng đăng nhập
để đặt vé” hoặc “Tài khoản của bạn là tài khoản dành cho nhân viên không thể đặt vé
được”. Còn nếu tài khoản đăng nhập đúng là tài khoản dành cho khách hàng thì khi ấn
đặt vé, suất chiếu sẽ được thêm vào giỏ hàng và sẽ chuyển đến trang Chi tiết vé xem
phim và khách hàng lưu mã QR về để tới ngày chiếu phim khách hàng tới tại quầy của
rạp chiếu phim scan mã QR để lấy vé xem phim trực tiếp. Và khi khách hàng đặt vé
xong thì dựa vào số lượng ghế ngồi đã đặt khách hàng sẽ được cộng thêm điểm xét
hạng (1 ghế ngồi = 5 điểm) dùng để xét khách hàng tiềm năng hoặc có thể nhận
voucher giảm giá.

10
1.3.2. Yêu cầu đổi trả vé/Hoàn tiền

Trước khi thực hiện quá trình đổi trả và hoàn tiền, khách hàng cần tìm hiểu về
các điều kiện và chính sách đổi trả và hoàn tiền của ứng dụng. Điều này có thể bao
gồm thời hạn đổi trả, điều kiện về trạng thái vé hoặc các chi phí liên quan đến quá
trình đổi trả và hoàn tiền.

Đối với đổi trả/hoàn tiền vé thì tùy thuộc vào thời gian khách hàng đặt vé trước
ngày công chiếu là bao lâu thì sẽ có thời gian qui định cho khách hàng là đổi trả và
hoàn tiền trước giờ công chiếu phim là bao lâu. Quy ước chung về thời gian và mức độ
hoàn tiền có thể được rạp chiếu phim áp dụng để đảm bảo sự công bằng và tối ưu hóa
quy trình đổi trả vé và hoàn tiền cho cả khách hàng và rạp chiếu phim đó. Mỗi rạp
chiếu phim sẽ có mức độ quy ước thời gian và hoàn tiền khác nhau.

+ Đặt vé trước 7 ngày: Nếu khách hàng đặt vé trước 7 ngày so với ngày
công chiếu, yêu cầu trả vé và hoàn tiền có thể yêu cầu khách hàng thực
hiện trước ngày công chiếu là 3-4 ngày. Điều này cho phép công ty có đủ
thời gian để tái bán vé cho khách hàng khác. Khách hàng phải chịu cho
chi phí đổi trả là 10%.
+ Đặt vé trước 3-4 ngày: Nếu khách hàng đặt vé trước 3-4 ngày so với
ngày công chiếu, yêu cầu trả vé và hoàn tiền có thể yêu cầu khách hàng
thực hiện trước 1,5-2 ngày. Điều này giúp đảm bảo công ty có thời gian
đủ để xử lý yêu cầu và tái bán vé. Khách hàng phải chịu cho chi phí đổi
trả là 20%.
+ Đặt vé cách ngày chiếu 1 ngày: Nếu khách hàng đặt vé cách ngày chiếu
1 ngày, yêu cầu trả vé và hoàn tiền có thể yêu cầu khách hàng thực hiện
trong khoảng thời gian trước 12-16 tiếng trước giờ công chiếu. Điều này
cho phép công ty có đủ thời gian để tái bán vé và không gây mất mát do
vé trống. Khách hàng phải chịu cho chi phí đổi trả là 30%.

Để đổi trả vé và hoàn tiền thì khách hàng click vào suất chiếu mình đã đặt ở
trong Giỏ hàng rồi xem có nút ở bên dưới là Yêu cầu đổi trả/Hoàn tiền nếu có thì
khách hàng vẫn còn thời hạn để đổi trả. Ấn vào Yêu cầu đổi trả/Hoàn tiền một giao
diện khác mở ra yêu cầu khách hàng chọn một trong những lí do đổi trả vé/hoàn tiền
như sau:

+ Tôi không muốn xem phim này nữa.


+ Tôi muốn đặt thêm vé.
+ Tôi muốn giảm số lượng ghế ngồi đã đặt.
+ Tôi muốn xem vào ngày khác.

11
+ Tôi muốn xem vào khung giờ khác trong ngày đó.
+ Tôi đã lỡ đặt nhầm vé phim này.
+ Khác.

Ở mục khác khi khách hàng chọn vào thì một ô textbox hiện ra yêu cầu khách
hàng nhập vào lí do mà mình muốn đổi trả vé và hoàn tiền. Sau khi chọn xong lí do
khách hàng muốn đổi trả vé và hoàn tiền thì khách hàng chọn Gửi yêu cầu để chờ bên
rạp chiếu phim giải quyết.

Sau khi nhận được yêu cầu đổi trả vé và hoàn tiền từ khách hàng, ứng dụng sẽ
xử lý yêu cầu này. Quá trình này có thể bao gồm: kiểm tra điều kiện đổi trả vé và hoàn
tiền, xác nhận thông tin vé (tên khách hàng đặt, rạp chiếu phim, suất chiếu, vị trí
phòng, vị trí ghế ngồi, hình thức thanh toán) và các thủ tục cần thiết để hoàn tiền cho
khách hàng. Thời gian quá trình này diễn ra có thể mất đến 1-2 ngày tùy thuộc vào
thời gian mà khách hàng yêu cầu đổi trả.

Sau khi xử lý yêu cầu, ứng dụng sẽ thông báo kết quả đổi trả và hoàn tiền cho
khách hàng. Nếu yêu cầu được chấp nhận, khách hàng sẽ nhận được thông báo về việc
hoàn tiền và thời gian dự kiến để nhận được số tiền hoàn lại, trong đó có cả những
khoản chi phí mà khách hàng phải chi trả cho việc đổi trả vé tùy thuộc vào thời gian
mà khách hàng đã trả đổi vé. Còn về hoàn tiền ứng dụng sẽ thực hiện quá trình hoàn
tiền cho khách hàng dựa trên phương thức thanh toán ban đầu. Thời gian hoàn tiền có
thể khác nhau tùy thuộc vào phương thức thanh toán và chính sách của ngân hàng hoặc
ví điện tử mà khách hàng đã sử dụng để thanh toán trực tuyến.

Lưu ý rằng quá trình đổi trả và hoàn tiền có thể có các quy định và hạn chế cụ
thể và có thể khác nhau tùy thuộc vào chính sách của công ty bán vé xem phim.

1.3.3. Phân quyền nhân viên

Khi người admin tạo ra một tài khoản nhân viên thì sẽ phải chọn quyền hạn cho
nhân viên đó, thì mới tạo được tài khoản cho nhân viên. Thì tương ứng với từng quyền
hạn nhân viên sẽ có được những chức năng riêng.

Một số quyền cho tài khoản nhân viên của hệ thống:

+ Quản lý phim.

+ Quản lý suất chiếu.

+ Quản lý đặt vé.

+ Quản lý phòng chiếu phim.

12
+ Quản lý nhân viên.

+ Nhân viên thống kê.

+ Nhân viên hỗ trợ.

1.3.4. Báo cáo, thống kê

Hệ thống sẽ thống kê 3 danh mục chính đó là: thống kê phim, thống kê nhân
viên và thống kê khách hàng.

Đối với thống kê phim thì nhân viên sẽ xem được mức độ đặt vé trong 1 ngày
thông qua biểu đồ đường biểu diễn. Ngoài ra, sẽ có bảng thống kê các bộ phim bao
gồm các nội dung: tổng suất chiếu, tổng số lượng vé đã đặt, doanh thu. Và khi click
vào từng hàng thống kê thì sẽ hiển thị ra biểu đồ hình tròn thống kê phần trăm số
lượng vé đã đặt và chưa đặt của bộ phim tương ứng với hàng đó.

Tiếp đến, là thống kê nhân viên thì sẽ có biểu đồ cột thể hiện chỉ tiêu và mức độ
hoàn thành công việc, biểu đồ hình tròn thống kê phần trăm nhóm các nhân viên dựa
vào vai trò. Tiếp theo, là bảng thống kê nhân viên bao gồm thông tin chi tiết của từng
nhân viên (email, làm việc tại rạp nào, chức vụ) và cột cuối cùng là số lượng công việc
đã hoàn thành.

Cuối cùng, là thống kê khách hàng là bảng xếp hạng top 10 khách hàng tiềm
năng nhất dựa vào điểm xét hạng của khách hàng. Điểm này dựa vào số lượng vé
khách hàng đã đặt và số lượng đóng góp phản hồi cho các bộ phim của hệ thống. Từ
đó, lấy ra 10 khách hàng có điểm xét hạng cao nhất, đối với bảng này thì khách hàng
cũng xem được ở phần Bảng xếp hạng.

Để báo cáo thì nhân viên xuất ra file excel (.csv) hoặc là in ra các bảng thống kê
theo từng danh mục tương ứng.

13
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ
BÁN VÉ XEM PHIM TRỰC TUYẾN
2.1. Biểu đồ Use Case

2.1.1. Tác nhân Khách hàng

Hình 2.1. Biểu đồ Use Case tác nhân Khách hàng.

2.1.2. Tác nhân Quản trị viên

Hình 2.2. Biểu đồ Use Case tác nhân Quản trị viên.

14
2.1.3. Tác nhân Nhân viên

Hình 2.3. Biểu đồ Use Case tác nhân Nhân viên.

2.2. Biểu đồ Trạng thái

2.2.1. Trạng thái đặt vé xem phim

Hình 2.4. Biểu đồ trạng thái mô tả Khách hàng đặt vé xem phim.

15
2.2.2. Trạng thái Yêu cầu đổi trả vé/Hoàn tiền

Hình 2.5. Biểu đồ trạng thái Khách hàng yêu cầu đổi trả vé/hoàn tiền.

2.3. Biểu đồ Lớp

Biểu đồ Lớp (UML Class Diagrams) ở dưới thể hiện chi tiết sự tương tác quan
hệ giữa tất cả các lớp trong hệ thống bán vé xem phim trực tuyến. Tổng cộng có 13
lớp, mỗi lớp bao gồm các thuộc tính (khóa chính, khóa ngoại), phương thức của từng
lớp và chỉ số quan hệ (1..1, 1..n, n..n) của các lớp có quan hệ với nhau.

Hình 2.6. Biểu đồ Lớp hệ thống bán vé xem phim trực tuyến.

16
2.4. Chuyển đổi biểu đồ Lớp sang mô hình CSDL quan hệ

2.4.1. Mô hình tổ chức dữ liệu

KHACH_HANG (MA_KHACH_HANG, TEN_KHACH_HANG,

EMAIL_KHACH_HANG, SĐT_KHACH_HANG, GIOI_TINH,

NGAY_SINH, DIA_CHI_KH)

NHAN_VIEN (MA_NHAN_VIEN, CHUC_VU, MA_RAP_CHIEU_PHIM)

RAP_CHIEU_PHIM (MA_RAP_CHIEU_PHIM, TEN_RAP_CHIEU_PHIM,


DIA_CHI_RCP)

SUAT_CHIEU (MA_SUAT_CHIEU, MA_PHIM, NGAY_CHIEU,

KHUNG_GIO)

PHONG_CHIEU_PHIM (MA_PHONG_CHIEU_PHIM, SO_LUONG_GHE,


MA_RAP_CHIEU_PHIM)

CONG_CHIEU (MA_SUAT_CHIEU, MA_PHONG_CHIEU_PHIM)

GHE_NGOI (MA_GHE_NGOI, VI_TRI, LOAI_GHE,

MA_PHONG_CHIEU_PHIM)

PHIM (MA_PHIM, TEN_PHIM, MA_DIENVIEN, DAO_DIEN,


BIEN_KICH, THE_LOAI, THOI_LUONG, MO_TA_PHIM,
NGAY_CONG_CHIEU,

MA_NHA_SAN_XUAT)

DIEN_VIEN(MA_DIENVIEN, TEN_DIEN_VIEN, NGAYSINH, GIOITINH)

NHA_SAN_XUAT_PHIM (MA_NHA_SAN_XUAT,

TEN_NHA_SAN_XUAT, EMAIL_NHA_SAN_XUAT)

VE_XEM_PHIM (MA_VE_XEM_PHIM, MA_KHACH_HANG,

MA_SUAT_CHIEU, MA_GHE_NGOI, GIA_TIEN, SO_LUONG,

TONG_THANH_TIEN, THOI_GIAN_DAT_VE, MA_THANH_TOAN)

PHUONG_THUC_THANH_TOAN (MA_THANH_TOAN,

TEN_PHUONG_THUC, MA_NGAN_HANG)

NGAN_HANG (MA_NGAN_HANG, TEN_NGAN_HANG)

17
2.4.2. Mô hình vật lý dữ liệu

Cơ sở dữ liệu bảng Khách hàng

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_KHACH_HANG String Not null Chính Mã khách hàng
TEN_KHACH_HANG String Not null Tên khách hàng
EMAIL_KHACH_HAN String Not null Email khách hàng
G
SĐT_KHACH_HANG String Not null Số điện thoại
GIOI_TINH Boolean Not null Giới tính
NGAY_SINH Date Not null Ngày sinh
DIA_CHI_KH String Null Địa chỉ khách hàng

Cơ sở dữ liệu bảng Nhân viên

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_NHAN_VIEN String Not null Chính Mã nhân viên
CHUC_VU String Not null Chức vụ
MA_RAP_CHIEU_PHI String Not null Ngoại Mã rạp chiếu phim
M

Cơ sở dữ liệu bảng Rạp chiếu phim

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_RAP_CHIEU_PHIM String Not null Chính Mã rạp chiếu phim
TEN_RAP_CHIEU_PHIM String Not null Tên rạp chiếu phim
DIA_CHI_RCP String Not null Địa chỉ rạp chiếu
phim

Cơ sở dữ liệu bảng Suất chiếu

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_SUAT_CHIEU String Not null Chính Mã suất chiếu
MA_PHIM String Not null Ngoại Mã phim
NGAY_CHIEU_PHIM Date Not null Ngày chiếu phim
KHUNG_GIO DateTime Not null Khung giờ

18
19
Cơ sơ dữ liệu bảng Phòng chiếu phim

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_PHONG_CHIEU_PHIM String Not null Chính Mã phòng
chiếu phim
SO_LUONG_GHE Int Not null Số lượng ghế
MA_RAP_CHIEU_PHIM String Not null Ngoại Mã rạp chiếu
phim

Cơ sở dữ liệu bảng Công chiếu

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_SUAT_CHIEU String Not null Chính, Mã suất chiếu
Ngoại
MA_PHONG_CHIEU_PHIM String Not null Chính, Mã phòng
Ngoại chiếu phim

Cơ sở dữ liệu bảng Vé xem phim

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_VE_XEM_PHIM String Not null Chính Mã vé xem phim
MA_KHACH_HANG String Not null Ngoại Mã khách hàng
MA_SUAT_CHIEU String Not null Ngoại Mã suất chiếu
MA_GHE_NGOI String Not null Ngoại Mã ghế ngồi
GIA_TIEN Double Not null Giá tiền
SO_LUONG Int Not null Số lượng
TONG_THANH_TIEN Double Not null Tổng thành tiền
THOI_GIAN_DAT_VE DateTime Not null Thời gian đặt vé
MA_THANH_TOAN String Not null Ngoại Mã thanh toán

Cơ sở dữ liệu bảng Ghế ngồi

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_GHE_NGOI String Not null Chính Mã ghế ngồi
VI_TRI String Not null Vị trí
LOAI_GHE String Not null Loại ghế
MA_PHONG_CHIEU_PHIM String Not null Ngoại Mã phòng chiếu
phim

20
Cơ sở dữ liệu bảng Phim

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_PHIM String Not null Chính Mã phim
TEN_PHIM String Not null Tên phim
DIEN_VIEN String Not null Diễn viên
DAO_DIEN String Not null Đạo diễn
BIEN_KICH String Not null Biên kịch
THE_LOAI String Not null Ngoại Thể loại
THOI_LUONG String Not null Thời lượng
MO_TA_PHIM String Not null Mô tả phim
NGAY_CONG_CHIEU Date Not null Ngày công chiếu
MA_NHA_SAN_XUAT String Not null Ngoại Mã nhà sản xuất

Cơ sở dữ liệu bảng Nhà sản xuất phim

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_NHA_SAN_XUAT String Not null Chín Mã nhà sản xuất
h
TEN_NHA_SAN_XUAT String Not null Tên nhà sản xuất
EMAIL_NHA_SAN_XUAT String Not null Email nhà sản
xuất

Cơ sở dữ liệu bảng Phương thức thanh toán

Tên trường Kiểu dữ liệu Null/Not Khóa Ghi chú


null
MA_THANH_TOAN String Not null Chính Mã thanh toán
TEN_PHUONG_THUC_T String Not null Tên phương thức
T thanh toán
MA_NGAN_HANG String Not null Ngoại Mã ngân hàng

Cơ sở dữ liệu bảng Ngân hàng

Tên trường Kiểu dữ liệu Null/Not null Khóa Ghi chú


MA_NGAN_HANG String Not null Chính Mã ngân hàng
TEN_NGAN_HANG String Not null Tên ngân hàng

21
22
2.5. Biểu đồ tuần tự

2.5.1. Thêm suất chiếu

Hình 2.7. Biểu đồ tuần tự Thêm suất chiếu.


2.5.2. Xóa suất chiếu

Hình 2.8. Biểu đồ tuần tự Xóa suất chiếu.

23
2.5.3. Chỉnh sửa suất chiếu

Hình 2.9. Biểu đồ tuần tự Chỉnh sửa suất chiếu.


2.5.4. Đặt vé xem phim

24
Hình 2.10. Biểu đồ tuần tự Đặt vé xem phim.

25
2.5.5. Yêu cầu đổi trả vé/Hoàn tiền

Hình 2.11. Biểu đồ tuần tự Yêu cầu đổi trả vé/Hoàn tiền.
2.6. Biểu đồ hoạt động

2.6.1. Thêm suất chiếu

Hình 2.12. Biểu đồ hoạt động Thêm suất chiếu.

26
2.6.2. Xóa suất chiếu

Hình 2.13. Biểu đồ hoạt động Xóa suất chiếu.

2.6.3. Chỉnh sửa suất chiếu

Hình 2.14. Biểu đồ hoạt động Chỉnh sửa suất chiếu.

27
2.6.4. Đặt vé xem phim

Hình 2.15. Biểu đồ hoạt động Đặt vé xem phim.

28
2.6.5. Yêu cầu đổi trả vé/Hoàn tiền

Hình 2.16. Biểu đồ hoạt động Yêu cầu đổi trả vé/Hoàn tiền.

29
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG QUẢN LÝ BÁN VÉ XEM
PHIM TRỰC TUYẾN
3.1. Các công cụ sử dụng

3.1.1. ReactJS

Phần giao diện của hệ thống được xây dựng bằng framework ReactJS. Đây là
một thư viện JavaScript frontend mã nguồn mở và miễn phí để xây dựng giao diện
người dùng dựa trên các thành phần (components) UI riêng lẻ. Nó được phát hành vào
năm 2013 và được phát triển và duy trì bởi Meta. Một số ứng dụng nổi tiếng sử dụng
ReactJS là Facebook, Instagram, TikTok, Netflix, ….

Hình 3.1. Logo ReactJS.


3.1.2. NodeJS, Express

NodeJS là một Javascript runtime dùng viết các ứng dụng backend chạy trên
web server. Sử dụng kỹ thuật điều khiển theo sự kiện, bất đồng bộ (asynchronous) để
cải thiện hiệu suất và mở rộng.

Express là một framework của NodeJS giúp đơn giản hóa việc xây dựng các
ứng dụng web và API dựa vào các tính năng và công cụ hỗ trợ như routing,
middleware, view engine, RESTful APIs, …. Đây chính là 2 công cụ dùng để xây
dựng phần backend của hệ thống.

Hình 3.2. Logo NodeJS và Express.

30
3.1.3. MongoDB

MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng


viết bằng C++. Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản, là
một cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng
JSON.

Hình 3.3. Logo MongoDB.


Một số điểm nổi bật của hệ quản trị CSDL MongoDB:

+ Lưu trữ dữ liệu khối lượng lớn.

+ Tốc độ truy vấn và cập nhật nhanh.

+ Khả năng mở rộng tăng số lượng truy vấn cao một cách hiệu quả.

+ Hiệu suất cao cải thiện khả năng chịu tải của hệ thống.

+ Tạo bản sao dự phòng dữ liệu và khôi phục khi gặp sự cố.

+ Cộng động lớn và tài liệu đa dạng, phong phú.

3.2. Demo chương trình

3.2.1. Server side rendering

Hình 3.4. Trang thêm phim mới của Admin.

31
Hình 3.5. Danh sách tất cả các bộ phim của hệ thống.

Hình 3.6. Trang lưu trữ các bộ phim đã xóa (Thùng rác).

Hình 3.7. Trang Admin theo dõi chi tiết các lượt đặt vé của Khách hàng.

32
3.2.2. Client side rendering

Hình 3.8. Danh sách các phim đang công chiếu và sắp công chiếu.

Hình 3.9. Trang chi tiết bộ phim.

Hình 3.10. Danh sách các suất chiếu của 1 bộ phim.

33
Hình 3.11. Sơ đồ ghế ngồi.

Hình 3.12. Giỏ hàng.

Hình 3. 13. Chi tiết vé xem phim.

34
Hình 3.14. Bảng xếp hạng top 10 khách hàng tiềm năng.

Hình 3.15. Trang thêm suất chiếu của nhân viên.

Hình 3.16. Danh sách các suất chiếu mà nhân viên đã thêm.

35
Hình 3.17. Trang thống kê phim.

Hình 3.18. Trang thống kê nhân viên.

Hình 3.19. Trang thống kê khách hàng.

36
Hình 3.20. Xuất báo cáo ra file excel (.csv).

Hình 3.21. In báo cáo.

37
TÀI LIỆU THAM KHẢO
[1]. Đồ Án Phần Mềm 1: Phân Tích Và Thiết Kế Hệ Thống Bán Vé Xem Phim
Trực Tuyến – Võ Xuân Tuấn, Phạm Huỳnh Chi, Nguyễn Văn Sáng, Hà Quốc Toản.

[2]. Phân Tích Thiết Kế Hướng Đối Tượng Hệ Thống Đặt Vé Xem Phim Trực
Tuyến Galaxy – Phạm Thị Thùy, Nguyên Tấn Thọ, Lê Trung Hoàng Long.

38

You might also like