Trong bối cảnh thời đại công nghệ ngày nay, đặt vé xem phim trực tuyến đang trở thành xu hướng phổ biến trên thế giới và ở Việt Nam. Theo thống kê của Hiệp hội Điện ảnh Hoa Kỳ (MPAA), trong năm 2022, doanh thu từ phòng vé trực tuyến tại Mỹ đạt 13,4 tỷ USD, chiếm 42,3% tổng doanh thu phòng vé của cả nước. Tại Việt Nam, doanh thu từ phòng vé trực tuyến cũng đang tăng trưởng mạnh mẽ, với tốc độ tăng trưởng trung bình hàng năm là 25%. Xu hướng đặt vé xem phim trực tuyến mang lại nhiều lợi ích cho cả người tiêu dùng và doanh nghiệp trong ngành điện ảnh. Đối với người tiêu dùng, đặt vé trực tuyến mang lại sự tiện lợi, nhanh chóng và tiết kiệm thời gian. Họ có thể đặt vé mọi lúc, mọi nơi, chỉ cần có điện thoại thông minh hoặc máy tính. Họ cũng có thể dễ dàng so sánh giá vé giữa các rạp chiếu phim khác nhau. Sự tiện lợi của việc đặt vé xem phim trực tuyến là điều không thể phủ nhận. Người tiêu dùng có thể đặt vé mọi lúc, mọi nơi, chỉ cần có điện thoại thông minh hoặc máy tính. Họ cũng có thể dễ dàng so sánh giá vé giữa các rạp chiếu phim khác nhau. Ngoài ra, trải nghiệm người dùng qua ứng dụng di động cũng là một điểm nhấn quan trọng. Các ứng dụng đặt vé xem phim thường được thiết kế với giao diện thân thiện, dễ sử dụng. Người dùng có thể dễ dàng tìm kiếm thông tin về các bộ phim đang chiếu, chọn chỗ ngồi và thanh toán vé. Vì những lý do trên, chúng em đã chọn đề tài “Thiết Kế Ứng Dụng Đặt Vé Xem Phim MOVIE APP” nhằm đáp ứng nhu cầu và đem lại sự thuận tiện cho người dùng.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-ĐỒ ÁN CHUYÊN NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ PHẦN MỀM ĐẶT VÉ XEM PHIM
Trang 2Hà Nội, tháng 12/2023
LỜI CẢM ƠN
Trong khoảng thời gian làm đồ án chuyên ngành, nhóm em đã nhậnđược nhiều sự giúp đỡ, đóng góp ý kiến và sự dẫn dắt chỉ bảo nhiệt tình củathầy cô, gia đình và bạn bè Nhóm em xin gửi lời cảm ơn chân thành đến giáoviên hướng dẫn – Thạc Sỹ Phạm Thị Quỳnh Trang giảng viên Bộ môn Điện
Tử Máy Tính - Trường Đại học Công Nghiệp Hà Nội người đã tận tình hướngdẫn, chỉ bảo nhóm em trong suốt quá trình làm đồ án
Nhóm cũng xin gửi cảm ơn chân thành nhất tới các thầy cô giáo trongtrường Đại học Công Nghiệp Hà Nội nói chung, các thầy cô trong Bộ mônĐiện Tử Máy Tính nói riêng đã dạy dỗ cho nhóm em kiến thức về các mônđại cương cũng như các môn chuyên ngành, giúp nhóm em có được cơ sở lýthuyết vững vàng và tạo điều kiện giúp đỡ trong suốt quá trình tham gia họctập
Cuối cùng, nhóm em xin chân thành cảm ơn gia đình và bạn bè, nhữngngười luôn ở bên cạnh đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viêntrong suốt quá trình học tập và hoàn thành đồ án
Với điều kiện về thời gian cũng như lượng kiến thức về đề tài rất rộng
mà kinh nghiệm còn hạn chế của một nhóm, đề án này không thể tránh đượcnhững thiếu sót Nhóm rất mong nhận được sự chỉ bảo, đóng góp ý kiến củacác thầy cô để nhóm em có điều kiện bổ sung, nâng cao ý thức của mình,phục vụ tốt hơn công tác thực tế sau này
Trang 3MỤC LỤC
LỜI CẢM ƠN 2
PHẦN I: MỞ ĐẦU 10
1 Lý do chọn đề tài 10
2 Mục đích nghiên cứu 10
3 Đối tượng nghiên cứu 11
4 Ý nghĩa khoa học 11
5 Ý nghĩa thực tiễn của đề tài 12
PHẦN 2: NỘI DUNG 14
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 14
1.1 Tổng quan về ứng dụng đặt vé xe phim 14
1.1.1 Tổng quan 14
1.1.2 Ứng dụng đặt vé xem phim trong nước 15
1.2 Android Studio 19
1.2.1 Đặc điểm của Android Studio 19
1.2.2 Tại sao cần sử dụng Android Studio 20
1.2.3 Ưu điểm và nhược điểm 20
1.2.3.1 Ưu điểm 21
1.2.3.2 Nhược điểm 21
1.3 Ngôn ngữ lập trình Kotlin 22
1.3.1 Giới thiệu về ngôn ngữ lập trình Kotlin 22
1.3.2 Các ứng dụng về ngôn ngữ lập trình Kotlin 23
1.3.4 Ưu điểm và nhược điểm 24
1.3.4.1 Ưu điểm 24
1.3.4.2 Nhược điểm 25
Trang 41.4 Thư viện Room Database 25
1.4.1 Giới thiệu về thư viện Room Database 25
1.4.2 Các ứng dụng về thư viện Room Database 26
1.4.3 Ưu điểm và nhược điểm 27
1.4.3.1 Ưu điểm 27
1.4.3.2 Nhược điểm 28
CHƯƠNG 2: THIẾT KẾ ỨNG DỤNG ĐẶT VÉ XEM PHIM 29
2.1 Mục đích yêu cầu 29
2.2 Phân tích hệ thống 30
2.2.1 Use case “Đăng nhập” 31
2.2.2 Use case “Đăng ký” 34
2.2.3 Use case “Xem danh sách phim theo mục” 36
2.2.4 Use case “Xem chi tiết phim” 38
2.2.5 Use case “Đặt vé xem phim” 40
2.2.6 Use case “Xem danh sách vé xem phim” 42
2.2.7 Use case “Nạp tiền” 43
2.2.8 Use case “Quản lý tài khoản” 46
2.2.9 Use case “Bảo trì hệ thống” 48
2.2.10 Use case “Xem doanh thu từng bộ phim” 50
2.2.11 Use case “Reset doanh thu và phim” 52
2.2.12 Use case “Đổi mật khẩu” 54
2.3 Thiết kế cơ sở dữ liệu 56
2.4 Thiết kế giao diện 57
2.5 Lưu đồ thuật toán 70
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN 82
3.1 Giao diện chính 82
3.1.1 Giao diện người dùng 82
3.1.2 Giao diện chính của admin 91
3.2 Kiểm thử sản phẩm 95
Trang 53.2.1 Kiểm thử chức năng đăng ký 95
3.2.1.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 95
3.2.1.2 Thực hiện kiểm thử 96
3.3.2 Kiểm thử chức năng đăng nhập 98
3.3.2.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 98
3.3.2.2 Thực hiện kiểm thử 98
3.3.3 Kiểm thử chức năng mua vé xem phim 99
3.3.3.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 99
3.3.3.2 Thực hiện kiểm thử 100
3.3.4 Kiểm thử màn hình Management User 101
3.3.4.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 101
3.3.4.2 Thực hiện kiểm thử 101
3.3.5 Kiểm thử Tình năng nạp tiền 102
3.3.5.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 102
3.3.5.2 Thực hiện kiểm thử 103
3.3.6 Kiểm thử Tình năng đổi mật khẩu 104
3.3.6.1 Lập kế hoạch test case, Điều kiện test case và kết quả test 104
3.3.6.2 Thực hiện kiểm thử 105
3.3.7 Kiểm thử Tình Reset theo ngày 108
3.3.7.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 108
3.3.7.2 Thực hiện kiểm thử 109
3.3.8 Kiểm thử Tình Reset theo tháng 109
3.3.8.1 Lập kế hoạch test case, điều kiện test case và kết quả test case 109
3.3.8.2 Thực hiện kiểm thử 109
PHẦN 3: KẾT LUẬN 110
PHỤ LỤC 111
TÀI LIỆU THAM KHẢO 113
Trang 6DANH MỤC HÌNH ẢNH
Hình 2 1: Use case đăng nhập 33
Hình 2 2 : Use case đăng ký 35
Hình 2 3: Use case xem danh sách xem phim 37
Hình 2 4: Use case xem chi tiết phim 39
Hình 2 5: Use case đặt vé xem phim 41
Hình 2 6: Use case xem danh sách vé xem phim 43
Hình 2 7: Use case nạp tiền 45
Hình 2 8: Use case quản lý tài khoản 47
Hình 2 9: Use case bảo trì hệ thống 49
Hình 2 10: Use case xem doanh thu từng bộ phim 51
Hình 2 11: Use case reset doanh thu và phim 53
Hình 2 12: Use case đổi mật khẩu 55
Hình 2 13: Sơ đồ bảng cơ sở dữ liệu 56
Hình 2 14: Bản vẽ thiết kế giao diện đăng ký 59
Hình 2 15: Bản vẽ thiết kế giao diện đăng nhập 60
Hình 2 16: Bản vẽ thiết kế giao diện đổi mật khẩu 61
Hình 2 17: Bản vẽ thiết kế giao diện trang chủ 62
Hình 2 18: Bản vẽ thiết kế giao diện chi tiết phim 63
Hình 2 19: Bản vẽ thiết kế giao diện chọn ghế, đặt vé xem phim 64
Hình 2 20: Bản vẽ thiết kế giao diện nạp tiền, danh sách vẽ đã đặt 65
Hình 2 21: Thiết kế bản vẽ giao diện chính của admin 66
Hình 2 22: Bản vẽ thiết giao diện xem doanh thu bộ phim 67
Hình 2 23: Bản vẽ thiết giao diện danh sách ghế user đã đặt 68
Hình 2 24: Bản vẽ thiết kế giao diện xem tài khoản đã đăng ký 69
Trang 7Hình 2 25: Lưu đồ thuật toán màn hình Login 70
Hình 2 26: Lưu đồ thuật toán màn hình Register 71
Hình 2 27: Lưu đồ thuật toán màn hình Resetpassword 72
Hình 2 28: Lưu đồ thuật toán màn hình HomePage 73
Hình 2 29: Lưu đồ thuật toán màn hình Main user 74
Hình 2 30: Lưu đồ thuật toán màn hình ContentMovie 75
Hình 2 31: Lưu đồ màn hình ConentMovie 76
Hình 2 32: Lưu đồ thuật toán màn hình BuyTicket 77
Hình 2 33: Lưu đồ thuật toán màn hình Admin 78
Hình 2 34: Lưu đồ thuật toán màn hình MangementUser 79
Hình 2 35: Lưu đồ thuật toán màn hình Revernue 80
Hình 2 36: Lưu đồ thuật toán màn hình SeatManagementFromUser 81
Hình 3 1: Giao diện đăng ký tài khoản 82
Hình 3 2: Giao diện đăng nhập 83
Hình 3 3: Giao diện chọn phim 84
Hình 3 4: Giới thiệu chi tiết về phim 85
Hình 3 5: Giao diện chọn ghế xem phim 86
Hình 3 6: Thông tin tài khoản 87
Hình 3 7: Giao diện nạp tiền 88
Hình 3 8: Màn hình reset password 89
Hình 3 9: Sau khi bấm confirm 90
Hình 3 10: Giao diện chính của admin sau khi đăng nhập 91
Hình 3 11: Quản lý doanh thu của phim 92
Hình 3 12: Quản lý danh sách ghế user đã đặt 93
Hình 3 13: Quản lý tài khoản của người dùng 94
Trang 8
DANH MỤC TỪ VIẾT TẮT
1 MPAA Motion Picture Association of America
3 QR Code Quick Response Code
4 IDE Integrated Development Environment
6 CPU Central Processing Unit
8 IDEA Integrated Development Environment for Java
11 SQL Structured Query Language
12 API Application Programming Interface
Trang 9DANH MỤC BẢNG
Bảng 3 1: Kế hoạch và kết quả test case chức năng đăng ký tài khoản 95
Bảng 3 2: Kế hoạch và kết quả test case chức năng đăng nhập 98
Bảng 3 3: Kế hoạch và kết quả test case chức năng mua vé xem phim 100
Bảng 3 4: Kế hoạch và kết quả test case chức năng xóa người dùng 101
Bảng 3 5: Kế hoạch và kết quả test case chức năng nạp tiền 103
Bảng 3 6: Kế hoạch và kết quả test case tính năm đổi mật khẩu 105
Bảng 3 7: Kế hoạch và kết quả test case chức năng Reset ghế theo ngày .108
Bảng 3 8: Kế hoạch và kết quả test case chức năng Reset ghế theo ngày .109
Trang 10PHẦN I: MỞ ĐẦU
1 Lý do chọn đề tài
Trong bối cảnh thời đại công nghệ ngày nay, đặt vé xem phim trực tuyếnđang trở thành xu hướng phổ biến trên thế giới và ở Việt Nam Theo thống kêcủa Hiệp hội Điện ảnh Hoa Kỳ (MPAA), trong năm 2022, doanh thu từ phòng
vé trực tuyến tại Mỹ đạt 13,4 tỷ USD, chiếm 42,3% tổng doanh thu phòng vécủa cả nước Tại Việt Nam, doanh thu từ phòng vé trực tuyến cũng đang tăngtrưởng mạnh mẽ, với tốc độ tăng trưởng trung bình hàng năm là 25%
Xu hướng đặt vé xem phim trực tuyến mang lại nhiều lợi ích cho cảngười tiêu dùng và doanh nghiệp trong ngành điện ảnh Đối với người tiêudùng, đặt vé trực tuyến mang lại sự tiện lợi, nhanh chóng và tiết kiệm thờigian Họ có thể đặt vé mọi lúc, mọi nơi, chỉ cần có điện thoại thông minhhoặc máy tính Họ cũng có thể dễ dàng so sánh giá vé giữa các rạp chiếu phimkhác nhau
Sự tiện lợi của việc đặt vé xem phim trực tuyến là điều không thể phủnhận Người tiêu dùng có thể đặt vé mọi lúc, mọi nơi, chỉ cần có điện thoạithông minh hoặc máy tính Họ cũng có thể dễ dàng so sánh giá vé giữa cácrạp chiếu phim khác nhau
Ngoài ra, trải nghiệm người dùng qua ứng dụng di động cũng là mộtđiểm nhấn quan trọng Các ứng dụng đặt vé xem phim thường được thiết kếvới giao diện thân thiện, dễ sử dụng Người dùng có thể dễ dàng tìm kiếmthông tin về các bộ phim đang chiếu, chọn chỗ ngồi và thanh toán vé
Vì những lý do trên, chúng em đã chọn đề tài “Thiết Kế Ứng Dụng Đặt
Vé Xem Phim MOVIE APP” nhằm đáp ứng nhu cầu và đem lại sự thuận tiệncho người dùng
Trang 112 Mục đích nghiên cứu
Mục tiêu của nghiên cứu không chỉ đơn thuần là khai thác và phân tíchứng dụng của việc đặt vé xem phim qua các nền tảng trực tuyến, mà còn làmột hành trình sâu sắc để hiểu rõ về bản chất của sự chuyển đổi số trong lĩnhvực điện ảnh Chúng em đặt mình vào tâm điểm của người tiêu dùng vàdoanh nghiệp, nhằm nhìn nhận những thách thức và cơ hội mà xu hướng nàymang lại từ hai góc độ đắc địa: người tiêu dùng trải nghiệm sự thuận tiện vàdoanh nghiệp đối mặt với sự biến động của thị trường Chúng em muốnkhông chỉ đưa ra cái nhìn toàn diện về hiện tượng này mà còn phản ánh sựchuyển đổi văn hóa và kinh tế toàn cầu trong ngành giải trí Nghiên cứu củachúng em không chỉ là một tập hợp dữ liệu và số liệu, mà còn là một hànhtrình khám phá sâu rộng về cách mà việc đặt vé xem phim trực tuyến thay đổi
cả trải nghiệm người tiêu dùng và bức tranh chiến lược doanh nghiệp
3 Đối tượng nghiên cứu
Nghiên cứu của chúng em sẽ dành sự tập trung đặc biệt cho hai nhómđối tượng chính: người tiêu dùng sử dụng ứng dụng đặt vé xem phim vàdoanh nghiệp trong ngành điện ảnh, với sự đặc biệt nghiên cứu đối với các tổchức quản lý và triển khai dịch vụ liên quan đến việc đặt vé trực tuyến Chúng
em không chỉ muốn xác định những thói quen, mong muốn, và trải nghiệmcủa người tiêu dùng khi sử dụng ứng dụng, mà còn muốn đặt mình vào vị trícủa doanh nghiệp để hiểu rõ hơn về cách họ thích ứng và tận dụng xu hướngđặt vé trực tuyến Điều này giúp chúng em xây dựng một cái nhìn toàn diện,không chỉ làm sáng tỏ các yếu tố ảnh hưởng đến quyết định mua sắm củangười tiêu dùng mà còn phản ánh sự đổi mới và thích ứng của doanh nghiệptrong ngành Nghiên cứu này không chỉ là sự đánh giá mà còn là một cơ hộihiếm có để nắm bắt lòng khách và chiến lược kinh doanh của những bên liênquan, từ đó đưa ra những đề xuất cụ thể và có tính ứng dụng cao cho cả ngườitiêu dùng và doanh nghiệp
4 Ý nghĩa khoa học
Trang 12Nghiên cứu của chúng em không chỉ là sự phân tích của một ứng dụngcông nghệ đặc biệt, mà còn là một cuộc tìm hiểu, nghiên cứu sâu sắc vào tầmảnh hưởng của sự chuyển đổi số đối với ngành điện ảnh Chúng em hướngđến việc không chỉ đưa ra cái nhìn sâu sắc về các khía cạnh công nghệ trongviệc đặt vé xem phim trực tuyến mà còn tập trung vào việc hiểu rõ những biếnđổi văn hóa và kinh tế mà sự chuyển đổi này mang lại Nghiên cứu của chúng
em không chỉ là một bức tranh tĩnh về công nghệ, mà là một bức tranh động
về cách mà sự đổi mới kỹ thuật có thể làm thay đổi cả xã hội và thị trường.Chúng em hi vọng rằng, thông qua việc nghiên cứu này, chúng ta sẽ khôngchỉ mở rộng kiến thức mà còn khám phá những quan điểm mới, những vị thếkhác nhau để đối mặt với những thách thức và cơ hội mà sự chuyển đổi sốđem lại trong ngành điện ảnh Nghiên cứu không chỉ là quá trình học hỏi màcòn là cơ hội để chia sẻ và lan tỏa những kiến thức mới, từ đó đóng góp vào
sự phát triển và đổi mới của cộng đồng nghiên cứu lĩnh vực công nghệ vàquản lý
5 Ý nghĩa thực tiễn của đề tài
Nghiên cứu của chúng em không chỉ là một phần của nghiên cứu lýthuyết, mà còn mang lại giá trị thực tiễn lớn cho cả người tiêu dùng và doanhnghiệp trong ngành điện ảnh Bằng cách tập trung vào tác động của việc đặt
vé xem phim trực tuyến, chúng em mong muốn đưa ra những thông điệp cóthể hỗ trợ đưa ra quyết định và hành động cụ thể trong thực tế kinh doanh.Kết quả của nghiên cứu không chỉ là số liệu và phân tích, mà còn là mộtnguồn thông tin quý giá giúp doanh nghiệp nắm bắt cơ hội và đối mặt vớithách thức trong môi trường kinh doanh ngày càng biến động Đối với ngườitiêu dùng, nghiên cứu sẽ là nguồn thông tin để họ hiểu rõ hơn về lợi ích vàtiện ích khi sử dụng ứng dụng đặt vé trực tuyến, từ đó làm nổi bật giá trị cánhân hóa và trải nghiệm người dùng
Đồng thời, nghiên cứu cũng đặt ra những câu hỏi và giả định quan trọng,khơi nguồn động viên để các doanh nghiệp thực hiện những cải tiến và điềuchỉnh chiến lược của mình Qua đó, chúng em hy vọng nghiên cứu có thể làm
Trang 13thay đổi thực tế kinh doanh, tạo ra những cơ hội mới và thúc đẩy sự đổi mớitrong ngành điện ảnh Nghiên cứu không chỉ là một cuộc phiêu lưu trí tuệ màcòn là một công cụ hữu ích cho quyết định và hành động trong thế giới thựccủa doanh nghiệp và người tiêu dùng.
PHẦN 2: NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về ứng dụng đặt vé xe phim
1.1.1 Tổng quan
Ứng dụng đặt vé xem phim đã trở thành một phần không thể thiếu trongcuộc sống hiện đại, mang lại sự thuận tiện và linh hoạt cho người tiêu dùng.Việc có thể dễ dàng chọn suất chiếu, rạp phim, và ghế ngồi từ bất kỳ đâuthông qua điện thoại di động hoặc máy tính bảng đã giúp họ tránh đượcnhững hàng đợi dài và tiết kiệm thời gian quý báu
Ứng dụng này không chỉ giúp người dùng đặt vé một cách thuận tiện, màcòn cung cấp một loạt các lựa chọn phong phú Thông tin chi tiết về các bộphim đang chiếu, bao gồm lịch chiếu, diễn viên, đạo diễn và đánh giá, giúp họ
có sự tự tin khi lựa chọn suất chiếu phù hợp với thời gian và sở thích cá nhân
Hệ thống thanh toán an toàn tích hợp trong ứng dụng còn làm cho quá trìnhmua vé trở nên thuận lợi hơn Người dùng có thể thoải mái lựa chọn phươngthức thanh toán, từ thẻ tín dụng cho đến ví điện tử, mà không cần phải mangtheo tiền mặt
Không chỉ dừng lại ở việc đặt vé, ứng dụng còn mang đến những ưu đãi
và khuyến mãi hấp dẫn Thông báo về các chương trình khuyến mãi, mã giảmgiá, và ưu đãi đặc biệt thường xuyên xuất hiện, làm tăng tính hấp dẫn của việc
sử dụng ứng dụng này
Người dùng không chỉ là người nhận ưu đãi mà còn là người đóng góp vàocộng đồng thông tin với hệ thống đánh giá và phản hồi Các đánh giá sau khixem phim giúp tạo ra một cái nhìn tổng quan về chất lượng phim và dịch vụcủa các rạp chiếu, hỗ trợ người khác trong quyết định chọn lựa
Trang 14Ngoài ra, tính năng thông báo và nhắc nhở giúp người dùng không bỏ
lỡ bất kỳ chi tiết quan trọng nào, từ thời gian chiếu đến thông tin về vé đã đặt
Sự tích hợp với mạng xã hội còn làm cho trải nghiệm xem phim trở nên đadạng hơn, khi người dùng có thể chia sẻ trực tiếp trên các nền tảng xã hội về
bộ phim đã xem và trải nghiệm tại rạp
Tóm lại, ứng dụng đặt vé xem phim không chỉ là công cụ thuận tiện,
mà còn là một phần quan trọng của trải nghiệm giải trí hiện đại, kết hợp giữa
sự thuận tiện, đa dạng lựa chọn, và tính tương tác cộng đồng
1.1.2 Ứng dụng đặt vé xem phim trong nước
1 Galaxy Cinema
Galaxy Cinema là một ứng dụng đặt vé xem phim online tại rạp Vớiứng dụng này, người dùng vừa chủ động tìm hiểu các suất chiếu cũng để lựachọn nhanh khung giờ phù hợp tại các rạp gần nhà mình nhất Ngoài ra, ứngdụng này cũng liên tục cập nhật tin tức mới nhất để người dùng có thế tiệntheo dõi
Ưu điểm:
Lựa chọn chỗ ngồi ưng ý, thanh toán trực tuyến
Cập nhật sớm nhất các ưu đãi, thông tin phim và lịch chiếu
Cung cấp tính năng lịch sử giao dịch để quản lý tài khoản thànhviên dễ dàng
Cung cấp mã vé QR Code để khách hàng dễ dàng thẳng tiến vàorạp chiếu mà không phải xếp hàng
Nhược điểm: Chỉ có thể xem lịch chiếu, giá vé tại cụm rạp Galaxy,không thể tham khảo và so sánh thêm của các rạp khác
2 Lotte Cinema VN
Hiện nay, hệ thống rạp chiếu Lotte Cinema cũng cung cấp một ứngdụng riêng để người dùng có thể dễ dàng mua vé trực tuyến Người dùng sẽnhận được đầy đủ tin tức được cập nhật mới nhất từ Lotte Cinema VN khi bậtthông báo của ứng dụng
Trang 15Ưu điểm:
Cho phép việc đặt vé rạp Lotte trực tuyến dễ dàng
Cung cấp thông tin phim đang và sắp chiếu cũng như các cụmrạp chiếu Lotte gần nhà bạn nhất
Hỗ trợ chính sách giá vé cho khách hàng học sinh, sinh viên
Các khuyến mại được cập nhật nhanh nhất
Nhược điểm: Người dùng chỉ có thể xem lịch chiếu của các cụm rạpLotte
3 BHD Star Cineplex
BHD Star Cineplex là một trong các ứng dụng đặt vé xem phim tiện lợi
và đơn giản Khi sử dụng ứng dụng này, bạn xem thông tin tài khoản thànhviên BHD để nhận được các ưu đãi hấp dẫn, riêng biệt dành cho bạn màkhông cần phải xếp hàng chờ đợi
Hỗ trợ tiện ích đặc biệt cho thành viên BHD, cho phép đặt trước
đồ ăn uống trước với các ưu đãi lên đến 20%
Trang 16cũng cung cấp cập nhật thường xuyên cập nhật ưu đãi và cùng thông tin vềlịch chiếu phim đang hot trên thị trường.
có các tính năng như mua vé, thanh toán trực tuyến, tích điểm, voucher và cậpcập nhật tin tức
Ưu điểm:
Cập nhật liên tục các phim bom tấn
Mở ứng dụng và xem đầy đủ các thông tin khách hàng thành viêncủa CGV
Ứng dụng mua vé xem phim giảm giá CGV cung cấp các chươngtrình khuyến mãi hấp dẫn và mới nhất dành cho bạn
Nhược điểm: Người dùng không thể so sánh, đối chiếu giá vé của cácrạp khác ngoại trừ rạp CGV
1.1.2 Ứng dụng đặt vé xem phim nước ngoài
1 Fandango:
Ưu điểm:
Trang 17 Phổ biến tại Mỹ và quốc tế: Fandango là một ứng dụng được sửdụng rộng rãi ở Mỹ, và khả năng hỗ trợ đặt vé ở nhiều quốc giakhác là một lợi ích đối với người dùng quốc tế.
Thông tin chi tiết: Cung cấp thông tin đầy đủ về các bộ phimđang chiếu, lịch chiếu chi tiết và giá vé, giúp người dùng dễ dànglựa chọn và đặt vé theo nhu cầu của họ
Nhược điểm:
Phụ thuộc vào khu vực địa lý: Có thể cung cấp thông tin và hỗtrợ đặt vé tốt ở Mỹ, nhưng hạn chế đối với người dùng ở cácquốc gia khác
Khả năng cập nhật chậm: Thông tin về lịch chiếu và giá vé có thểkhông được cập nhật kịp thời, dẫn đến thông tin không chínhxác
Hạn chế tính tương tác: Khả năng tương tác và đánh giá phimcủa người dùng có thể bị hạn chế so với một số ứng dụng khác
3 Cineplex (Canada):
Ưu điểm:
Lựa chọn tốt cho người ở Canada: Đối với người ở Canada,Cineplex là một ứng dụng đặt vé phổ biến và thuận tiện
Trang 18 Theo dõi thông tin phim: Cung cấp các thông tin chi tiết về phim
và các sự kiện liên quan
Nhược điểm:
Cung cấp giới hạn dịch vụ ngoại trừ xem phim: Mặc dù là mộtứng dụng chủ yếu cho xem phim, nhưng có thể hạn chế trongviệc cung cấp dịch vụ khác như sự kiện và giải trí đa dạng
1.2 Android Studio
1.2.1 Đặc điểm của Android Studio
Android Studio, môi trường phát triển tích hợp (IDE) dành cho phát triểnứng dụng di động trên hệ điều hành Android, đòi hỏi nhà phát triển nắm vữngmột số kiến thức cơ bản để làm việc hiệu quả Trong quá trình xây dựng ứngdụng, sự hiểu biết vững về các ngôn ngữ lập trình như Java hoặc Kotlin làquan trọng, với Kotlin ngày càng trở thành sự lựa chọn phổ biến [2]
Để tương tác hiệu quả với hệ điều hành Android, việc nắm rõ cơ bản vềcác thành phần như Activity, Fragment, Intent, và các khái niệm khác làkhông thể thiếu Đồng thời, sự quen thuộc với XML, được sử dụng để địnhnghĩa giao diện người dùng, là yếu tố quan trọng để tạo ra các layout mànhình [2]
Gradle, hệ thống quản lý phụ thuộc, được tích hợp trong Android Studiogiúp quản lý các thư viện và công cụ bên ngoài sử dụng trong dự án Việchiểu rõ về AndroidManifest.xml, nơi chứa các thông tin cơ bản của ứng dụng,cũng đóng một vai trò quan trọng [2]
Sự hiểu biết về Activity và Fragment, cũng như vòng đời của chúng,giúp quản lý tài nguyên và trạng thái của ứng dụng một cách hiệu quả Xử lý
sự kiện và quản lý tài nguyên, bao gồm hình ảnh, chuỗi văn bản, màu sắc,cũng là phần quan trọng trong quá trình phát triển [3]
Cuối cùng, khả năng debug và kiểm thử lỗi sẽ đảm bảo ứng dụng đượcphát triển một cách mượt mà và ổn định Việc này bao gồm sử dụng các công
Trang 19cụ debug và kiểm thử của Android Studio để giải quyết vấn đề và đảm bảochất lượng của ứng dụng [2]
1.2.2 Tại sao cần sử dụng Android Studio
Android Studio đóng vai trò quan trọng như một cỗ máy mạnh mẽ dànhcho những người sáng tạo ứng dụng Android Với những tính năng đa dạng
và tiện ích tinh tế, nó không chỉ đơn thuần là một IDE, mà còn là người bạnđồng hành đáng tin cậy trong hành trình phát triển ứng dụng [2]
Quá trình phát triển ứng dụng Android trở nên linh hoạt hơn bao giờ hếtvới Android Studio Tích hợp sự hỗ trợ đặc biệt cho cả Kotlin và Java, nhàphát triển có sự linh hoạt lựa chọn ngôn ngữ lập trình phù hợp với dự án củamình [2]
Việc tích hợp các thư viện và framework quan trọng trực tiếp vàoAndroid Studio là một lợi thế lớn Từ AndroidX, Google Play services đếnFirebase, tất cả đều được kết nối một cách mạch lạc, giúp giảm bớt bước đầukhởi tạo và tăng tốc quá trình phát triển [3]
Android Emulator, một chiếc máy ảo linh hoạt đi kèm với AndroidStudio, cho phép kiểm thử trực tiếp trên nhiều thiết bị ảo khác nhau, giúp đảmbảo ứng dụng hoạt động mượt mà trên mọi nền tảng [3]
Các công cụ như Android Profiler, CPU Profiler và Memory Profiler đưađến những cái nhìn chi tiết về hiệu suất ứng dụng, giúp nhà phát triển tối ưuhóa mã nguồn và tăng cường trải nghiệm người dùng [3]
Với khả năng quản lý ngôn ngữ, tài nguyên và hỗ trợ đa màn hình,Android Studio đào sâu vào nhu cầu đa dạng của thị trường Sự tích hợp củaGradle build system và hỗ trợ Git làm cho quy trình phát triển mạnh mẽ vàhiệu quả [3]
Tổng cộng, Android Studio không chỉ là một công cụ phát triển, mà làngôi nhà của sự sáng tạo, nơi mà ý tưởng chuyển thành hiện thực trên nềntảng Android [3]
1.2.3 Ưu điểm và nhược điểm
Trang 201.2.3.1 Ưu điểm
1 Hỗ trợ đa nền tảng: Android Studio hỗ trợ phát triển ứng dụng
Android trên nhiều hệ điều hành, bao gồm Windows, macOS và Linux [3]
2 Hỗ trợ Kotlin: Android Studio có hỗ trợ tốt cho ngôn ngữ Kotlin, giúp
nhà phát triển viết mã nguồn một cách nhanh chóng và dễ dàng [1]
3 Intelligent Code Editor: IDE này cung cấp các tính năng thông minh
như gợi ý mã, tự động hoàn thành mã, kiểm tra lỗi và refactoring giúp tăngnăng suất phát triển [1]
4 Android Emulator: Android Studio đi kèm với một máy ảo Android
Emulator mạnh mẽ cho phép kiểm tra ứng dụng trên nhiều thiết bị và cấu hìnhkhác nhau [3]
5 Android Profiler: Cung cấp các công cụ hỗ trợ phân tích hiệu suất ứng
dụng như CPU Profiler, Memory Profiler, Network Profiler giúp tối ưu hóahiệu suất của ứng dụng [3]
6 Công cụ quản lý tài nguyên:Android Studio cung cấp các công cụ
quản lý tài nguyên cho việc xử lý ngôn ngữ, đa màn hình và các nguồn tàinguyên khác [3]
7 Hỗ trợ Git: IDE này tích hợp sẵn các công cụ để quản lý phiên bản mã
nguồn bằng cách sử dụng hệ thống quản lý phiên bản như Git [4]
1.2.3.2 Nhược điểm
1 Yêu cầu tài nguyên hệ thống lớn: Android Studio yêu cầu một máy
tính có cấu hình khá cao, đặc biệt khi sử dụng Android Emulator [3]
2 Học hỏi và thời gian chuyển đổi từ các IDE khác: Đối với những
người mới bắt đầu, có thể cần thời gian để học cách sử dụng Android Studio
và chuyển đổi từ các IDE khác [3]
3 Khó khăn khi sử dụng trên máy tính có cấu hình thấp: Trên các máy
tính có cấu hình thấp, việc sử dụng Android Studio có thể gây ra hiện tượnglag hoặc giật [3]
Trang 214 Hệ sinh thái Android Studio đang thay đổi liên tục: Điều này có thể
dẫn đến việc cần phải cập nhật kiến thức liên tục để theo kịp các tính năng vàcông nghệ mới [3]
5 Tài liệu và hướng dẫn không phong phú cho một số tính năng mới:
Một số tính năng mới có thể thiếu tài liệu và hướng dẫn chi tiết, đặc biệt đốivới các tính năng mới ra mắt gần đây [3]
1.3 Ngôn ngữ lập trình Kotlin
1.3.1 Giới thiệu về ngôn ngữ lập trình Kotlin
Kotlin, ngôn ngữ lập trình đa nền tảng được JetBrains đặt ra nhằm giảiquyết những thách thức trong phát triển ứng dụng hiện đại, đã nhanh chóngtrở thành một cột mốc quan trọng trong ngành công nghiệp phần mềm Vớiviệc được chính thức ủng hộ cho việc phát triển ứng dụng Android từ Google,Kotlin không chỉ là một “ngôn ngữ thay thế” mà còn là một đối tác đáng tincậy cho những dự án đa dạng trên nền tảng JVM [1]
Điều làm nổi bật Kotlin là khả năng đa nền tảng, nơi nó có thể "đónggói" mã nguồn và chia sẻ giữa nhiều môi trường khác nhau như JVM,Android, JavaScript và Native Sự linh hoạt này không chỉ giúp tối ưu hóanguồn lực mà còn đảm bảo tính đồng nhất và hiệu suất ổn định trên mọi nềntảng [1]
Đặc biệt, Kotlin chú trọng vào tính an toàn trong lập trình Cú pháp rõràng và việc kiểm tra kiểu dữ liệu tại thời điểm biên dịch giúp tránh đượcnhiều lỗi thường gặp, giảm rủi ro khi triển khai ứng dụng Điều này làm choquá trình phát triển trở nên ổn định hơn và giảm áp lực cho các nhà phát triển.Kotlin không chỉ là một ngôn ngữ hướng đối tượng mạnh mẽ mà còn hỗtrợ lập trình hàm, mở ra nhiều cơ hội cho việc thiết kế mã nguồn linh hoạt và
dễ bảo trì Sự kết hợp giữa các tính chất của lập trình hướng đối tượng và lậptrình hàm giúp tạo ra mã nguồn có tính linh hoạt và dễ mở rộng [1]
Trang 22Ngoài ra, sự tương thích hoàn toàn với mã nguồn Java giúp Kotlin trởthành một lựa chọn hợp lý cho các dự án có sẵn mã nguồn Java, mở ra khảnăng nâng cấp dự án mà không phải bắt đầu từ đầu [1]
Sự hỗ trợ mạnh mẽ từ các công cụ phát triển hàng đầu như IntelliJ IDEA
và Android Studio cung cấp trải nghiệm phát triển tốt nhất, giúp nhà pháttriển tập trung vào sáng tạo thay vì lo lắng về các vấn đề kỹ thuật
Cuối cùng, với việc hỗ trợ coroutines, Kotlin giúp ứng dụng xử lý tiếntrình bất đồng bộ một cách hiệu quả, đặc biệt quan trọng trong thời đại ứngdụng đa nhiệm và đa luồng [1]
Tóm lại, Kotlin không chỉ là một ngôn ngữ lập trình mà là một cộngđồng, một cộng đồng của những người đam mê sáng tạo và muốn tạo ranhững ứng dụng xuất sắc trên nền tảng JVM và nền tảng di động [1]
1.3.2 Các ứng dụng về ngôn ngữ lập trình Kotlin
Ngôn ngữ lập trình Kotlin, với sự ủng hộ chính thức từ Google cho việcphát triển ứng dụng Android, đã trở thành một lựa chọn phổ biến trong cộngđồng phát triển phần mềm Sự linh hoạt và tính đa nền tảng của Kotlin đã mở
ra nhiều cánh cửa cho việc áp dụng ngôn ngữ này vào nhiều lĩnh vực khácnhau của công nghiệp phần mềm [1]
Với khả năng tích hợp chặt chẽ vào môi trường phát triển Android,Kotlin đã trở thành ngôn ngữ ưa thích của nhiều nhà phát triển ứng dụng diđộng Tính an toàn và sự rõ ràng của Kotlin giúp giảm rủi ro lỗi và tăng hiệusuất của ứng dụng trên nền tảng Android [1]
Không chỉ giới hạn trong việc phát triển ứng dụng di động, Kotlin còncung cấp khả năng phát triển ứng dụng máy tính đa nền tảng, bao gồm cả cácứng dụng desktop và server-side Điều này mang lại tính linh hoạt và tái sửdụng mã nguồn, giảm bớt công đoạn phát triển và bảo trì [1]
Với sự hỗ trợ của Kotlin/JS, ngôn ngữ này cũng có thể được sử dụng đểphát triển ứng dụng web Điều này tạo ra cơ hội cho việc xây dựng các ứng
Trang 23dụng web hiện đại và linh hoạt, đồng thời giữ lại tính tương thích và an toàn
từ Kotlin [1]
Kotlin Native, một thành phần quan trọng của hệ sinh thái Kotlin, mở rakhả năng phát triển ứng dụng đa nền tảng trên cả iOS và Android Điều nàygiúp giảm độ phức tạp của việc duy trì mã nguồn cho nhiều hệ điều hành khácnhau [1]
Ngoài ra, Kotlin có thể được sử dụng cho phát triển ứng dụng back-end,đặc biệt trên nền tảng JVM, thông qua các framework như Spring Boot Điềunày mang lại sự đồng bộ và tích hợp tốt giữa phía máy chủ và phía ngườidùng [1]
Cuối cùng, sự hỗ trợ của Kotlin Native cũng mở ra khả năng phát triểntrong nhiều lĩnh vực khác nhau như trò chơi đa nền tảng, ứng dụng IoT và cảứng dụng desktop đa nền tảng Điều này làm cho Kotlin trở thành một công
cụ mạnh mẽ và linh hoạt, phù hợp cho nhiều dự án và yêu cầu phát triển khácnhau [1]
1.3.4 Ưu điểm và nhược điểm
1.3.4.1 Ưu điểm
1 Tính an toàn (Safety): Kotlin cung cấp kiểm tra kiểu dữ liệu mạnh mẽ
và các cơ chế an toàn giúp ngăn ngừa nhiều lỗi thường gặp trong quá trìnhphát triển [1]
2 Tương thích mã nguồn Java: Kotlin tương thích hoàn toàn với mã
nguồn Java tồn tại, điều này giúp các dự án có thể chuyển đổi từ Java sangKotlin dễ dàng và tiếp tục sử dụng các thư viện và mã nguồn đã có [1]
3 Cú pháp gọn gàng (Concise Syntax): Kotlin có cú pháp ngắn gọn và
đơn giản hơn so với Java, giúp giảm thiểu cú pháp dư thừa và nâng cao sự đọc
và hiểu mã nguồn [1]
4 Hỗ trợ hướng đối tượng (Object-oriented): Kotlin là một ngôn ngữ
hướng đối tượng đầy đủ, hỗ trợ các tính năng như kế thừa, đa hình vàencapsulation [1]
Trang 245 Lập trình hàm (Functional programming): Kotlin hỗ trợ mạnh mẽ cho
các tính năng của lập trình hàm, bao gồm hàm cao cấp, lambda expressions vàimmutable data structures [1]
6 Hỗ trợ coroutines: Kotlin cung cấp hỗ trợ cho coroutines, giúp quản
lý tiến trình bất đồng bộ một cách hiệu quả [1]
7 IDE Support: Kotlin được tích hợp tốt với các môi trường phát triển
như IntelliJ IDEA, Android Studio và Eclipse, mang lại trải nghiệm phát triểnthuận lợi và mạnh mẽ [1]
8 Cộng đồng phát triển rộng lớn: Kotlin đã thu hút một cộng đồng phát
triển đông đảo và nhiệt tình, với nhiều tài nguyên, ví dụ và thư viện hữu ích
1.3.4.2 Nhược điểm
1 Học hỏi và chuyển đổi từ Java: Mặc dù Kotlin tương thích với Java,
nhưng việc học và chuyển đổi từ Java sang Kotlin có thể đòi hỏi thời gian vàcông sức, đặc biệt đối với những người không quen thuộc với cú pháp củaKotlin
2 Khoa học và tài liệu hạn chế: Mặc dù cộng đồng Kotlin đang phát
triển, nhưng vẫn còn ít tài liệu và hướng dẫn so với Java, đặc biệt đối với cácvấn đề phức tạp [1]
3 Tích hợp với các công cụ cũ hơn: Một số công cụ và thư viện có thể
cần thời gian để cập nhật và hỗ trợ tốt cho Kotlin [1]
1.4 Thư viện Room Database
1.4.1 Giới thiệu về thư viện Room Database
Room Database là một phần quan trọng của Android Jetpack, được thiết
kế để đơn giản hóa và làm cho việc làm việc với cơ sở dữ liệu SQLite trở nênthuận tiện trong phát triển ứng dụng Android Với những đặc điểm chính nhưEntity, DAO, và Database, Room mang lại một cách tiếp cận mạnh mẽ đểquản lý dữ liệu [5]
Entity, như một biểu diễn của một bảng trong cơ sở dữ liệu, cung cấp sự
ảo diệu cho các đối tượng trong ứng dụng Các DAO, với các phương thức
Trang 25của mình, giảm bớt độ phức tạp của việc tương tác với SQLite, cho phép thựchiện các thao tác cơ bản mà không cần phải viết mã SQL phức tạp Cùng với
đó, lớp Database giúp quản lý và tổ chức các DAO, tạo và duy trì cơ sở dữliệu một cách hiệu quả [5]
Điểm mạnh của Room không chỉ là ở cấu trúc của nó, mà còn là ở nhữnglợi ích mà nó mang lại Việc tự động tạo lược đồ cơ sở dữ liệu giúp giảm bớtkhó khăn trong việc tạo lược đồ thủ công Thêm vào đó, kiểm tra lỗi tại thờiđiểm biên dịch và tự động tạo truy vấn SQL từ các phương thức DAO giúpnâng cao chất lượng mã nguồn và giảm rủi ro lỗi [5]
Room Database không chỉ là một công cụ giúp tăng hiệu suất khi làmviệc với SQLite mà còn là một phương tiện mạnh mẽ để quản lý dữ liệu trongứng dụng Android Những tiện ích này khiến Room trở thành một lựa chọn lýtưởng cho nhà phát triển ứng dụng di động, giúp họ dễ dàng và hiệu quả hóaquá trình tương tác với cơ sở dữ liệu [5]
1.4.2 Các ứng dụng về thư viện Room Database
Thư viện Room Database thường được tích hợp vào nhiều ứng dụngAndroid để quản lý và tương tác với cơ sở dữ liệu SQLite Các ứng dụng cóthể tính tới sự linh hoạt và hiệu suất cao của Room Database trong nhiều ngữcảnh khác nhau Một số ví dụ cụ thể của việc sử dụng Room Database trongphát triển ứng dụng Android bao gồm ứng dụng ghi chú, ứng dụng quản lýnhiệm vụ, ứng dụng sổ địa chỉ, ứng dụng tin tức, ứng dụng chia sẻ hình ảnh,ứng dụng đồng bộ dữ liệu, và ứng dụng thống kê tài chính [5]
Trong ứng dụng ghi chú, Room có thể lưu trữ thông tin chi tiết về mỗighi chú, bao gồm tiêu đề, nội dung, thời gian tạo và các thuộc tính khác.Trong khi đó, ứng dụng quản lý nhiệm vụ có thể sử dụng Room để lưu trữthông tin về các nhiệm vụ, như tên nhiệm vụ, trạng thái, thời hạn và ưu tiên.Ngoài ra, Room có thể hỗ trợ ứng dụng sổ địa chỉ bằng cách lưu trữ chitiết về danh bạ, gồm tên, số điện thoại, địa chỉ và thông tin liên lạc khác
Trang 26Trong ứng dụng tin tức, Room có thể quản lý dữ liệu về các bài báo, danhmục tin tức và các thông tin khác liên quan đến nội dung tin tức [5]
Room cũng có ứng dụng trong việc lưu trữ thông tin về hình ảnh trongứng dụng chia sẻ hình ảnh, đồng thời hỗ trợ đồng bộ dữ liệu giữa thiết bị vàmáy chủ trong các ứng dụng đồng bộ dữ liệu Trong ứng dụng thống kê tàichính, Room có thể đóng vai trò quan trọng bằng cách lưu trữ thông tin về cácgiao dịch tài chính như số tiền, loại giao dịch và thời gian thực hiện [5]
Những ví dụ trên chỉ là một số ứng dụng cụ thể, và Room Database cóthể linh hoạt tích hợp vào nhiều loại ứng dụng khác nhau, tùy thuộc vào yêucầu cụ thể của dự án Với khả năng quản lý và tương tác hiệu quả với cơ sở
dữ liệu, Room giúp giảm gánh nặng cho nhà phát triển trong quá trình pháttriển ứng dụng Android [5]
1.4.3 Ưu điểm và nhược điểm
1.4.3.1 Ưu điểm
1 Tích hợp tốt với Android Jetpack: Room Database là một phần của
Android Jetpack, nên tích hợp tốt với các thành phần khác của Jetpack nhưLiveData, ViewModel, và Paging [5]
2 Thuận Tiện và Dễ Sử Dụng: Room cung cấp cú pháp đơn giản và dễ
đọc, giảm độ phức tạp của việc làm việc với SQLite [5]
3 Kiểm Soát Lược Đồ Tự Động: Room tự động tạo và quản lý lược đồ
cơ sở dữ liệu, giúp giảm công đoạn tạo lược đồ thủ công [5]
4 Compile-time Type Checking: Sử dụng annotation để kiểm tra lỗi tại
thời điểm biên dịch, giúp phát hiện lỗi sớm và cung cấp tính an toàn trongviệc tương tác với cơ sở dữ liệu [5]
5 Tự Động Tạo Truy Vấn SQL: Room tự động sinh các truy vấn SQL từ
các phương thức DAO, giảm độ phức tạp của việc viết mã SQL thủ công [5]
6 TypeConverters: Cho phép chuyển đổi giữa các kiểu dữ liệu không thể
lưu trực tiếp trong SQLite và kiểu dữ liệu có thể lưu trữ [5]
Trang 277 Hiệu Suất Cao: Room được tối ưu hóa để hoạt động hiệu quả với cơ
sở dữ liệu SQLite, giúp cải thiện hiệu suất của ứng dụng [5]
1.4.3.2 Nhược điểm
1 Khả Năng Mở Rộng Có Thể Bị Hạn Chế: Mặc dù Room giúp giảm độ
phức tạp, nhưng trong một số trường hợp, nếu ứng dụng phức tạp, sự linhhoạt của việc sử dụng mã SQL trực tiếp có thể bị giới hạn [5]
2 Khả Năng Tương Thích Ngược: Đôi khi, khi thực hiện các thay đổi
trong cấu trúc Entity, có thể phải xử lý các vấn đề tương thích ngược(backward compatibility) [5]
3 Yêu Cầu Phiên Bản Android: Room yêu cầu Android 2.2 (API 8) trở
lên, điều này có thể là một hạn chế nếu bạn đang phát triển ứng dụng cho cácphiên bản Android cũ hơn [5]
4 Khó Điều Chỉnh Cho Một Số Trường Hợp Đặc Biệt: Trong một số
trường hợp đặc biệt, việc điều chỉnh Room để đáp ứng yêu cầu cụ thể của ứngdụng có thể khó khăn hơn so với việc sử dụng các giải pháp thủ công [5]
Trang 28CHƯƠNG 2: THIẾT KẾ ỨNG DỤNG ĐẶT VÉ XEM PHIM
2.1 Mục đích yêu cầu
Mục đích yêu cầu kỹ thuật của hệ thống:
1 Tối ưu hóa Trải nghiệm Người Dùng:
Mục tiêu chính của hệ thống là cung cấp một trải nghiệm ngườidùng thuận tiện và thú vị trong quá trình đặt vé và xem phim
Đảm bảo giao diện người dùng được thiết kế một cách trực quan
và dễ sử dụng để tạo ra một trải nghiệm người dùng tốt nhất
2 Quản lý Hiệu suất và Bảo mật:
Đảm bảo hệ thống hoạt động hiệu quả
Thực hiện các biện pháp bảo mật để bảo vệ thông tin cá nhân củangười dùng và tránh gặp phải các vấn đề về an ninh
3 Quản lý và Thống kê Doanh Thu:
Hệ thống được xây dựng với mục tiêu cung cấp cho admin khảnăng theo dõi và thống kê doanh thu từng bộ phim
Các chức năng quản lý được tối ưu hóa để giúp admin dễ dàngkiểm tra thông tin đặt vé và doanh thu
4 Quản lý Danh Sách Phim:
Hỗ trợ các chức năng quản lý danh sách phim
5 Duy trì Hiệu suất Hệ thống:
Tính năng reset ghế theo ngày giúp duy trì hiệu suất của hệ thốngbằng cách chuẩn bị sẵn sàng cho các suất chiếu mới
Các công nghệ được sử dụng được tối ưu hóa để đảm bảo tính ổnđịnh và hiệu suất cao
6 Tích hợp và Sử dụng Room Database:
Mục đích chính của việc sử dụng Room Database là lưu trữ dữliệu người dùng và thông tin về phim một cách an toàn và hiệuquả
Trang 29 Sử dụng các tính năng thêm sửa xóa update cung cấp bởi RoomDatabase để đảm bảo tích hợp dễ dàng và hiệu quả.
7 Kiểm Thử và Đảm Bảo Chất Lượng:
Yêu cầu kiểm thử đầy đủ để đảm bảo mọi tính năng hoạt độngchính xác và không có lỗi
Đảm bảo rằng ứng dụng đáp ứng đúng đối với cả người dùng vàadmin
Mục đích chính của ứng dụng là tạo ra một nền tảng đặt vé xem phimhiệu quả, an toàn, và có trải nghiệm người dùng tốt
2.2 Phân tích hệ thống
Biểu đồ use case chính:
Trang 30Đăng ký
2.2.1 Use case “Đăng nhập”
Mô tả chi tiết:
Tên use case: đăng nhập
Mô tả vắn tắt: use case này cho phép khách hàng đăng nhập vào ứngdụng
Quản lý tài khoản
Xem danh sách phim theo mục
Đặt vé xem phim
Xem danh sách vé xem phim
Reset doanh thu và phim
Xem doanh thu từng bộ phim
Bảo trì hệ thống
Đổi mật khẩuXem chi tiết phimNạp tiền
Đăng nhập
Trang 31chuyển đến màn hình trang chủ của màn hình người quản lý hoặcmàn hình khách hàng.
Trang 32Hình 2 1: Use case đăng nhập
Trang 332.2.2 Use case “Đăng ký”
Tên use case: đăng ký
Mô tả vắn tắt: use case này cho phép khách hàng đăng ký tài khoản đểtruy cập vào ứng dụng vào ứng dụng
Luồng cơ bản:
Use case này bắt đầu khi người dùng ấn nút “login to myaccount” ở màn hình đăng nhập Hệ thống sẽ hiển thị màn hìnhđăng ký tài khoản lên màn hình
Người dùng nhập các thông tin để đăng ký bao gồm: tên, email,mật khẩu, xác nhận mật khẩu, số điện thoại và nhấn vào nút
“Create an account” Hệ thống thêm mới một tài khoản vào bảngTAI KHOAN và hiển thị thông báo đăng ký tài khoản thànhcông Di chuyển đến màn hình trang chủ
Use case kết thúc
Luồng rẽ nhánh:
Khi người dùng nhập sai định dạng email, mật khẩu đã định sẵn
Hệ thống sẽ hiển thị thông báo người dùng nhập sai định dạngemail hoặc mật khẩu
Trang 34Hình 2 2 : Use case đăng ký
Trang 352.2.3 Use case “Xem danh sách phim theo mục”
Tên use case: xem danh sách phim theo mục
Mô tả vắn tắt: use case này cho phép người dùng có thể xem danh sáchphim theo danh mục có sẵn
Luồng cơ bản:
Use case này bắt đầu khi người dùng kích vào danh mục hiển thịtrên màn hình trang chủ Hệ thống sẽ lấy danh sách phim theodanh mục từ bảng PHIM và hiển thị lên màn hình
Use case kết thúc
Trang 36Hình 2 3: Use case xem danh sách xem phim
Trang 372.2.4 Use case “Xem chi tiết phim”
Tên use case: Xem chi tiết phim
Mô tả vắn tắt: use case này cho phép người dùng xem thông tin cơ bảncủa một bộ phim
Luồng cơ bản:
Use case này bắt đầu khi người dùng kích vào một bộ phim bất kỳ
Hệ thống sẽ lấy thông tin từ bảng PHIM (tên phim, mô tả phim, ảnhPoster, giờ chiếu phim) Hiển thị lên màn hình
Use case kết thúc
Trang 38Hình 2 4: Use case xem chi tiết phim
Trang 392.2.5 Use case “Đặt vé xem phim”
Tên use case: Đặt vé xem phim
Mô tả vắn tắt: use case này cho phép người dùng đặt vé xem phim
Luồng cơ bản:
Use case này bắt đầu khi người dùng kích vào nút “reservation”một bộ phim bất kỳ Hệ thống sẽ điều hướng đến màn hình chọnghế xem phim Hiển thị lên màn hình
Người dùng chọn ít nhất một ghế trên màn hình và ấn “Buy” đểđặt vé Màn hình sẽ hiển thị thông báo đặt vé thành công
Use case kết thúc
Luồng rẽ nhánh:
Tại màn hình chọn ghế Yêu cầu người dùng chọn đầy đủ thôngtin Trường hợp chưa chọn, hệ thống hiển thị thông báo chưachọn đầy đủ thông tin
Số tiền trong ví tài khoản không đủ, khi thanh toán, hệ thốngthông báo không đủ tiền trong ví, thanh toán không thành công
Trang 40Hình 2 5: Use case đặt vé xem phim