Professional Documents
Culture Documents
Bao Cao DAPM2
Bao Cao DAPM2
Bao Cao DAPM2
Hà Quốc Toản
Hà Quốc Toản
2
MỤC LỤC
DANH MỤC HÌNH ẢNH...............................................................................................5
LỜI MỞ ĐẦU.................................................................................................................7
2.4. Chuyển đổi biểu đồ Lớp sang mô hình CSDL quan hệ..........................................16
3
2.5.2. Xóa suất chiếu.....................................................................................................20
3.1.1. ReactJS................................................................................................................27
3.1.3. MongoDB............................................................................................................28
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.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.11. Biểu đồ tuần tự Yêu cầu đổi trả vé/Hoàn tiền.............................................23
Hình 2.16. Biểu đồ hoạt động Yêu cầu đổi trả vé/Hoàn tiền........................................26
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
5
Hình 3.10. Danh sách các suất chiếu của 1 bộ phim.....................................................29
Hình 3.14. Bảng xếp hạng top 10 khách hàng tiềm năng..............................................31
Hình 3.16. Danh sách các suất chiếu mà nhân viên đã thêm........................................31
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é, ….
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:
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.
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.
+ Quản lý phim.
12
+ Quản lý nhân viên.
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
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.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.
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ệ
NGAY_SINH, DIA_CHI_KH)
KHUNG_GIO)
MA_PHONG_CHIEU_PHIM)
MA_NHA_SAN_XUAT)
NHA_SAN_XUAT_PHIM (MA_NHA_SAN_XUAT,
TEN_NHA_SAN_XUAT, EMAIL_NHA_SAN_XUAT)
PHUONG_THUC_THANH_TOAN (MA_THANH_TOAN,
TEN_PHUONG_THUC, MA_NGAN_HANG)
17
2.4.2. Mô hình vật lý dữ liệu
18
19
Cơ sơ dữ liệu bảng Phòng chiếu phim
20
Cơ sở dữ liệu bảng Phim
21
22
2.5. Biểu đồ tuần tự
23
2.5.3. Chỉnh sửa suất chiếu
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
26
2.6.2. Xóa suất chiếu
27
2.6.4. Đặ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, ….
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.
30
3.1.3. MongoDB
+ 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ố.
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.
33
Hình 3.11. Sơ đồ ghế ngồi.
34
Hình 3.14. Bảng xếp hạng top 10 khách hàng tiềm năng.
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.
36
Hình 3.20. Xuất báo cáo ra file excel (.csv).
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