Bối cảnh và vấn đề nghiên cứu
Đề tài "Thiết kế phần mềm đặt vé xem phim" (tên ứng dụng: MOVIE APP) được nhóm tác giả gồm Hoàng Đức Đạt, Trần Anh Tú, Trần Văn Hiếu, Tạ Thủy Tiên và Đỗ Quang Tiến thực hiện dưới sự hướng dẫn của Thạc sĩ Phạm Thị Quỳnh Trang tại Bộ môn Điện tử Máy tính, Khoa Công nghệ Thông tin/Điện tử, Trường Đại học Công nghiệp Hà Nội (tháng 12/2023). Đồ án thuộc chuyên ngành Công nghệ Kỹ thuật Máy tính, tập trung vào việc nghiên cứu, phân tích và xây dựng ứng dụng di động trên hệ điều hành Android.
Bối cảnh thực tiễn và lý do chọn đề tài:
Sự bùng nổ của công nghệ di động và quá trình chuyển đổi số trong ngành dịch vụ giải trí đã làm thay đổi hành vi tiêu dùng của khán giả điện ảnh. Phương thức mua vé truyền thống tại quầy bộc lộ hạn chế về thời gian chờ đợi và tính linh hoạt. Nhóm tác giả căn cứ vào các số liệu thống kê thực tế để chứng minh tính cấp thiết:
- Theo số liệu của Hiệp hội Điện ảnh Hoa Kỳ (MPAA) năm 2022, doanh thu phòng vé trực tuyến tại thị trường Mỹ đạt 13,4 tỷ USD, chiếm tỷ trọng 42,3% tổng doanh thu phòng vé toàn quốc.
- Tại thị trường Việt Nam, doanh thu từ các nền tảng bán vé xem phim trực tuyến ghi nhận tốc độ tăng trưởng trung bình đạt 25%/năm.
Xu hướng trực tuyến hóa đem lại khả năng tra cứu thông tin phim, so sánh giá vé, chọn chỗ ngồi chủ động và thanh toán không dùng tiền mặt. Nhóm nghiên cứu lựa chọn đề tài nhằm xây dựng một phần mềm di động mô phỏng đầy đủ quy trình thương mại điện tử trong dịch vụ rạp chiếu phim, đồng thời nghiên cứu tác động của chuyển đổi số đối với hoạt động vận hành của doanh nghiệp giải trí.
Mục tiêu và nhiệm vụ nghiên cứu:
Nghiên cứu đặt ra các mục tiêu kỹ thuật và khảo sát cụ thể được cụ thể hóa thành 7 nhiệm vụ kỹ thuật:
- Tối ưu hóa trải nghiệm người dùng: Xây dựng giao diện trực quan, tinh gọn thao tác đặt vé, chọn ghế và tra cứu lịch chiếu.
- Quản lý hiệu suất và bảo mật: Đảm bảo tính ổn định của ứng dụng, bảo vệ an toàn thông tin định danh và tài khoản cá nhân.
- Quản lý và thống kê doanh thu: Cung cấp công cụ cho người quản trị (Admin) theo dõi, tổng hợp và báo cáo doanh thu theo từng đầu phim.
- Quản lý danh mục phim: Thiết lập các chức năng thêm, sửa, phân loại và cập nhật trạng thái hiển thị phim.
- Duy trì hiệu suất hệ thống: Tích hợp cơ chế đặt lại (reset) trạng thái ghế theo ngày và reset doanh thu theo tháng nhằm phục vụ các chu kỳ chiếu mới.
- Tích hợp cơ sở dữ liệu Room Database: Ứng dụng kỹ thuật lưu trữ dữ liệu cục bộ SQLite thông qua thư viện Room, xử lý các thao tác thêm, đọc, sửa, xóa (CRUD).
- Kiểm thử và đánh giá chất lượng: Thiết lập hệ thống test case chức năng toàn diện cho cả hai vai trò Người dùng (User) và Quản trị viên (Admin).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình nghiệp vụ bán vé xem phim trực tuyến; trải nghiệm của khách hàng sử dụng dịch vụ đặt vé; công cụ quản trị dữ liệu của đơn vị vận hành rạp chiếu.
- Phạm vi không gian: Khảo sát các hệ thống ứng dụng đặt vé hiện hữu tại thị trường Việt Nam (CGV Cinemas, Lotte Cinema VN, Galaxy Cinema, BHD Star Cineplex, Beta Cinemas) và các mô hình quốc tế (Fandango tại Mỹ, BookMyShow tại Ấn Độ, Cineplex tại Canada). Triển khai thử nghiệm ứng dụng MOVIE APP trên môi trường thiết bị di động Android.
- Phạm vi thời gian: Thu thập số liệu thống kê thị trường năm 2022; toàn bộ quá trình thiết kế, lập trình và kiểm thử hoàn thành vào tháng 12 năm 2023.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp phương pháp nghiên cứu phân tích tổng hợp tài liệu kỹ thuật, khảo sát so sánh sản phẩm thực tế, mô hình hóa hệ thống theo chuẩn UML và thực nghiệm kiểm thử phần mềm.
1. Khảo sát các hệ thống ứng dụng đặt vé xem phim
Nhóm tác giả tiến hành khảo sát và tổng hợp ưu, nhược điểm của các ứng dụng đặt vé xem phim phổ biến trên thị trường:
| Ứng dụng |
Ưu điểm ghi nhận trong văn bản |
Nhược điểm ghi nhận trong văn bản |
| Galaxy Cinema |
Đặt chỗ, thanh toán trực tuyến; cập nhật ưu đãi nhanh; quản lý lịch sử giao dịch; tích hợp vé điện tử bằng QR Code. |
Giới hạn tra cứu và hiển thị lịch chiếu trong cụm rạp Galaxy, không so sánh được với rạp khác. |
| Lotte Cinema VN |
Cập nhật tin tức qua thông báo; hiển thị cụm rạp gần nhất; hỗ trợ chính sách giá cho học sinh, sinh viên. |
Chỉ tra cứu được lịch chiếu và giá vé trong hệ thống Lotte. |
| BHD Star Cineplex |
Quản lý điểm thưởng tích lũy; hỗ trợ đặt trước đồ ăn thức uống với chiết khấu tới 20%; tìm rạp gần vị trí người dùng. |
Không hỗ trợ tra cứu chéo lịch chiếu và giá giữa các đơn vị rạp khác ngoài BHD. |
| Beta Cinemas |
Đặt vé nhanh; cập nhật phim bom tấn và suất chiếu đặc biệt; hỗ trợ thanh toán qua cổng thẻ ATM/Visa nội địa và quốc tế. |
Dữ liệu đóng khung trong phạm vi chuỗi rạp Beta. |
| CGV Cinemas |
Hệ thống phim cập nhật liên tục; tích hợp tài khoản thành viên, điểm thưởng, voucher và khuyến mãi đa dạng. |
Người dùng không thể đối chiếu, so sánh giá vé với các hệ thống rạp cạnh tranh. |
| Fandango (Mỹ/Quốc tế) |
Độ phủ rộng tại Mỹ và quốc tế; cung cấp đầy đủ thông tin lịch chiếu, giá vé chi tiết. |
Phụ thuộc vị trí địa lý; khả năng cập nhật dữ liệu lịch chiếu đôi khi bị trễ. |
| BookMyShow (Ấn Độ) |
Phổ biến tại thị trường Nam Á; hỗ trợ bán vé đa dạng sự kiện giải trí (kịch, âm nhạc, phim ảnh). |
Giao diện chưa tối ưu cho người dùng quốc tế; tính năng tương tác và đánh giá phim còn hạn chế. |
| Cineplex (Canada) |
Phục vụ chuyên sâu thị trường Canada; cung cấp chi tiết sự kiện và phim chiếu rạp. |
Dịch vụ ngoài mảng điện ảnh còn hạn chế. |
2. Nền tảng công nghệ và công cụ phát triển
- Môi trường phát triển tích hợp (IDE) Android Studio: Đóng vai trò môi trường xây dựng ứng dụng Android chính. Ứng dụng khai thác các thành phần kiến trúc Android gồm Activity, Fragment, Intent, AndroidManifest.xml và layout XML. Hệ thống tận dụng công cụ quản lý thư viện Gradle, máy ảo Android Emulator để kiểm thử đa thiết bị, cùng bộ công cụ giám sát tài nguyên Android Profiler (CPU Profiler, Memory Profiler, Network Profiler) nhằm kiểm soát hiệu năng.
- Ngôn ngữ lập trình Kotlin: Ngôn ngữ phát triển chính do JetBrains phát triển và được Google công nhận là ngôn ngữ ưu tiên hàng đầu cho Android. Đặc tính kỹ thuật được khai thác bao gồm: tính an toàn kiểu dữ liệu (Type Safety, hạn chế NullPointerException), cú pháp ngắn gọn, khả năng tương thích 100% với mã Java, kết hợp lập trình hướng đối tượng (OOP) và lập trình hàm (Functional Programming), cùng cơ chế Coroutines xử lý đa luồng và tác vụ bất đồng bộ.
- Thư viện Room Database: Thành phần quản lý dữ liệu thuộc bộ kiến trúc Android Jetpack, đóng vai trò lớp trừu tượng hóa trên nền tảng SQLite. Cấu trúc Room gồm 3 thành phần cốt lõi:
- Entity: Đại diện cho bảng cơ sở dữ liệu (ví dụ: bảng tài khoản, bảng danh sách phim).
- DAO (Data Access Object): Định nghĩa các hàm giao tiếp dữ liệu thông qua truy vấn SQL được kiểm tra lỗi ngay tại thời điểm biên dịch (Compile-time Type Checking).
- Database: Lớp quản trị kết nối, khởi tạo và duy trì phiên bản cơ sở dữ liệu. Room hỗ trợ bộ chuyển đổi kiểu TypeConverters, yêu cầu nền tảng Android tối thiểu từ phiên bản 2.2 (API cấp 8) trở lên.
Thiết kế và triển khai hệ thống
Hệ thống MOVIE APP được thiết kế theo mô hình phân quyền rõ rệt giữa hai tác nhân: Người dùng thông thường (User) và Quản trị viên (Admin).
1. Phân tích chức năng và Use Case hệ thống
Căn cứ theo biểu đồ Use Case tổng quát và các đặc tả chi tiết trong đồ án, hệ thống gồm 12 ca sử dụng chính:
| STT |
Tên Use Case |
Tác nhân chính |
Mô tả luồng nghiệp vụ cơ bản |
Luồng rẽ nhánh / Xử lý ngoại lệ |
| 1 |
Đăng nhập |
User, Admin |
Nhập email, mật khẩu, chọn quyền ("user" hoặc "admin"). Hệ thống đối chiếu bảng TAI KHOAN và điều hướng tới giao diện tương ứng. |
Báo lỗi nếu sai định dạng thông tin, sai tài khoản/mật khẩu, hoặc chưa chọn quyền truy cập. |
| 2 |
Đăng ký |
User |
Nhập họ tên, email, mật khẩu, xác nhận mật khẩu, số điện thoại; lưu tài khoản mới vào bảng TAI KHOAN. |
Báo lỗi nếu định dạng email hoặc mật khẩu không thỏa mãn điều kiện quy chuẩn. |
| 3 |
Xem danh sách phim theo mục |
User |
Chọn danh mục tại màn hình chính, hệ thống đọc dữ liệu từ bảng PHIM và xuất danh sách tương ứng. |
Hiển thị thông báo trạng thái nếu danh mục rỗng. |
| 4 |
Xem chi tiết phim |
User |
Nhấp chọn một bộ phim để xem tên phim, mô tả nội dung, poster, thời lượng và giờ chiếu. |
Không phát sinh luồng phụ khi dữ liệu phim tồn tại. |
| 5 |
Đặt vé xem phim |
User |
Nhấn "reservation", chuyển tới sơ đồ chọn ghế, chọn tối thiểu 1 ghế, nhấn "Buy" để xác nhận giao dịch. |
Báo lỗi khi chưa chọn ghế; báo giao dịch thất bại nếu số dư ví cá nhân không đủ thanh toán. |
| 6 |
Xem danh sách vé đã đặt |
User |
Nhấp biểu tượng danh sách vé tại trang chủ để hiển thị vé đã mua; hỗ trợ thao tác hủy vé. |
Hiển thị thông báo "No data" nếu cơ sở dữ liệu không có thông tin vé đã mua. |
| 7 |
Nạp tiền |
User |
Chọn biểu tượng ví, nhập số tiền cần nạp và ấn xác nhận giao dịch nạp điểm vào tài khoản. |
Báo lỗi nếu để trống ô số tiền hoặc nhập số tiền thấp hơn hạn mức tối thiểu cho phép. |
| 8 |
Quản lý tài khoản |
Admin |
Đăng nhập quyền Admin, truy cập mục "USER", hệ thống đọc và hiển thị danh sách từ bảng TAI KHOAN. |
Hiển thị thông báo "No data" nếu bảng tài khoản không có bản ghi nào. |
| 9 |
Bảo trì hệ thống |
Admin |
Admin thực hiện xóa tài khoản người dùng khỏi hệ thống thông qua biểu tượng thao tác trên danh sách. |
Ràng buộc bảo vệ: Hệ thống từ chối xóa tài khoản nếu số dư ví của tài khoản đó vẫn còn tiền. |
| 10 |
Xem doanh thu từng bộ phim |
Admin |
Truy cập mục "REVENUE" tại trang quản trị, hệ thống đọc bảng PHIM và tổng hợp doanh thu theo từng phim. |
Hiển thị giá trị 0 nếu phim chưa phát sinh vé bán. |
| 11 |
Reset doanh thu và phim |
Admin |
Thực hiện đặt lại số liệu doanh thu và danh sách phim theo chu kỳ định kỳ (ngày/tháng). |
Làm mới toàn bộ trạng thái ghế và doanh thu về mặc định. |
| 12 |
Đổi mật khẩu |
User, Admin |
Nhập mật khẩu hiện tại, nhập mật khẩu mới và xác thực thay đổi vào cơ sở dữ liệu. |
Báo lỗi nếu mật khẩu cũ không đúng hoặc mật khẩu mới trùng mật khẩu cũ/sai định dạng. |
2. Thiết kế cơ sở dữ liệu và lưu đồ thuật toán
- Cơ sở dữ liệu: Sử dụng Room Database trên SQLite với các thực thể cốt lõi bao gồm bảng
TAI KHOAN (lưu trữ định danh người dùng, họ tên, email, mật khẩu mã hóa, số điện thoại, số dư ví, quyền hệ thống) và bảng PHIM (lưu mã phim, tên phim, mô tả tóm tắt, đường dẫn hình ảnh Poster, khung giờ chiếu, danh sách ghế ngồi và trạng thái đặt chỗ).
- Thiết kế luồng xử lý: Đồ án thiết lập hệ thống lưu đồ thuật toán chi tiết cho từng màn hình: màn hình Login (Hình 2.25), Register (Hình 2.26), Resetpassword (Hình 2.27), HomePage (Hình 2.28), Main user (Hình 2.29), ContentMovie (Hình 2.30, 2.31), BuyTicket (Hình 2.32), Admin (Hình 2.33), ManagementUser (Hình 2.34), Revenue (Hình 2.35) và SeatManagementFromUser (Hình 2.36).
Nội dung chính theo từng chương
Bố cục khóa luận được cấu trúc thành ba chương nội dung chuyên môn phản ánh toàn diện chu trình phát triển phần mềm:
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Nội dung chương 1 tập trung khảo sát tổng quan thị trường ứng dụng đặt vé xem phim trong nước và quốc tế, đồng thời làm rõ cơ sở công nghệ lựa chọn:
- Phân tích ứng dụng hiện hành: Đánh giá chi tiết ưu điểm và hạn chế của 5 hệ thống rạp tại Việt Nam (Galaxy, Lotte, BHD, Beta, CGV) và 3 hệ thống quốc tế (Fandango, BookMyShow, Cineplex). Điểm nghẽn phổ biến nhất của các ứng dụng trong nước là tính khép kín—người dùng không thể tra cứu hoặc so sánh giá vé chéo giữa các hệ thống rạp chiếu phim với nhau.
- Đánh giá công cụ Android Studio: Phân tích cấu trúc IDE, hệ thống xây dựng Gradle, cơ chế mô phỏng Android Emulator, các công cụ kiểm soát hiệu năng Android Profiler (CPU, Memory, Network Profiler) và tích hợp quản lý mã nguồn Git. Đồ án chỉ rõ nhược điểm tiêu tốn tài nguyên phần cứng lớn của Android Studio khi vận hành máy ảo.
- Ngôn ngữ Kotlin: Trình bày kiến trúc đa nền tảng (JVM, Android, JS, Native), khả năng tích hợp hai chiều với Java, cú pháp tinh gọn và cơ chế Coroutines xử lý luồng bất đồng bộ.
- Thư viện Room Database: Khái quát hóa vai trò của Room trong Android Jetpack, mô hình hóa cấu trúc Entity – DAO – Database, cơ chế xác thực truy vấn tại thời điểm biên dịch, cùng hạn chế yêu cầu phiên bản hệ điều hành từ API 8 (Android 2.2) trở lên.
CHƯƠNG 2: THIẾT KẾ ỨNG DỤNG ĐẶT VÉ XEM PHIM
Chương 2 mô tả chi tiết quá trình hiện thực hóa yêu cầu kỹ thuật thành các mô hình phân tích và thiết kế:
- Xác định mục đích yêu cầu kỹ thuật: Thiết lập 7 nhóm yêu cầu gồm trải nghiệm người dùng, quản lý hiệu suất - bảo mật, quản trị - thống kê doanh thu, quản lý danh sách phim, duy trì hiệu suất bằng cơ chế reset ghế, chuẩn hóa thao tác Room Database và kiểm thử phần mềm.
- Phân tích Use Case: Xây dựng sơ đồ Use Case tổng quát và đặc tả chi tiết 12 ca sử dụng cụ thể của User và Admin. Mỗi ca sử dụng đều phân tách rõ luồng cơ bản (Basic Flow) và các luồng rẽ nhánh (Alternative Flows) để xử lý các ngoại lệ nghiệp vụ (nhập sai định dạng, tài khoản không đủ số dư, tài khoản còn tiền không được phép xóa).
- Thiết kế cơ sở dữ liệu và giao diện: Xây dựng sơ đồ bảng cơ sở dữ liệu (Hình 2.13). Thiết kế bản vẽ wireframe cho các màn hình: đăng ký (Hình 2.14), đăng nhập (Hình 2.15), đổi mật khẩu (Hình 2.16), trang chủ (Hình 2.17), chi tiết phim (Hình 2.18), chọn ghế đặt vé (Hình 2.19), nạp tiền và vé đã đặt (Hình 2.20), giao diện Admin (Hình 2.21), doanh thu phim (Hình 2.22), quản lý ghế người dùng đã đặt (Hình 2.23) và quản lý tài khoản người dùng (Hình 2.24). Đi kèm là 12 sơ đồ lưu đồ thuật toán điều hướng logic.
CHƯƠNG 3: KẾT QUẢ THỰC HIỆN
Chương 3 trình bày các sản phẩm giao diện đã lập trình hoàn thiện và kết quả kiểm thử chức năng:
- Hiện thực hóa giao diện người dùng: Gồm màn hình đăng ký tài khoản (Hình 3.1), đăng nhập (Hình 3.2), chọn danh mục phim (Hình 3.3), giới thiệu chi tiết phim (Hình 3.4), sơ đồ chọn ghế (Hình 3.5), thông tin tài khoản cá nhân (Hình 3.6), nạp tiền vào ví (Hình 3.7) và đặt lại mật khẩu (Hình 3.8, 3.9).
- Hiện thực hóa giao diện quản trị viên: Màn hình chính của Admin sau đăng nhập (Hình 3.10), quản lý doanh thu theo phim (Hình 3.11), quản lý danh sách ghế người dùng đã đặt (Hình 3.12) và quản lý danh sách tài khoản người dùng đăng ký (Hình 3.13).
- Kiểm thử sản phẩm: Xây dựng kế hoạch test case, điều kiện kiểm thử và ghi nhận kết quả thực hiện kiểm thử thực tế qua 8 bảng kiểm định chức năng.
Kết quả và đóng góp
1. Kết quả kỹ thuật đạt được
Đồ án đã thiết kế và triển khai hoàn chỉnh ứng dụng di động MOVIE APP trên môi trường Android, đáp ứng đầy đủ các mục tiêu chức năng đặt ra trong tài liệu phân tích. Các kết quả cụ thể bao gồm:
- Xây dựng thành công cơ sở dữ liệu Room Database cục bộ, đảm bảo tính toàn vẹn dữ liệu cho các thực thể người dùng, danh mục phim, ghế ngồi và giao dịch vé.
- Thiết lập hoàn chỉnh cơ chế phân quyền: Phân hệ người dùng hỗ trợ tìm kiếm phim, xem lịch chiếu, chọn ghế trực quan, thanh toán trừ tiền ví nội bộ, hủy vé và nạp tiền; Phân hệ quản trị hỗ trợ giám sát tài khoản, theo dõi doanh thu theo từng đầu phim và thiết lập lại dữ liệu ghế theo ngày/tháng.
- Hệ thống kiểm thử hộp đen chức năng được triển khai qua 8 bảng test case chuyên biệt:
- Bảng 3.1: Kế hoạch và kết quả test case chức năng đăng ký tài khoản.
- Bảng 3.2: Kế hoạch và kết quả test case chức năng đăng nhập.
- Bảng 3.3: Kế hoạch và kết quả test case chức năng mua vé xem phim.
- Bảng 3.4: Kế hoạch và kết quả test case chức năng xóa người dùng (Management User).
- Bảng 3.5: Kế hoạch và kết quả test case chức năng nạp tiền.
- Bảng 3.6: Kế hoạch và kết quả test case tính năng đổi mật khẩu.
- Bảng 3.7: Kế hoạch và kết quả test case chức năng Reset ghế theo ngày.
- Bảng 3.8: Kế hoạch và kết quả test case chức năng Reset ghế theo ngày/tháng.
2. Đóng góp của đề tài
- Đóng góp về mặt khảo sát: Tổng hợp có hệ thống các ưu điểm và hạn chế kỹ thuật của 8 ứng dụng đặt vé thực tế trong nước và quốc tế, làm rõ thực trạng thiếu tính năng liên kết thông tin giữa các cụm rạp tại thị trường Việt Nam.
- Đóng góp về mặt giải pháp kỹ thuật: Xây dựng mô hình ứng dụng mẫu kết hợp giữa ngôn ngữ lập trình Kotlin hiện đại và thư viện Room Database thuộc Android Jetpack. Đồ án đưa ra giải pháp xử lý nghiệp vụ chặt chẽ, điển hình là quy tắc an toàn tài chính trong quản lý tài khoản: Quản trị viên không thể xóa tài khoản của người dùng nếu tài khoản đó vẫn còn số dư trong ví.
Hạn chế và hướng nghiên cứu tiếp
Căn cứ vào phạm vi kỹ thuật và những nội dung nhóm tác giả đã trình bày trong văn bản:
Hạn chế kỹ thuật:
- Mô hình lưu trữ dữ liệu cục bộ: Ứng dụng triển khai cơ sở dữ liệu SQLite thông qua Room Database trực tiếp trên bộ nhớ thiết bị di động, chưa xây dựng hệ thống máy chủ phụ trợ (Back-end Server) tập trung qua kiến trúc RESTful API. Do đó, dữ liệu đặt vé, trạng thái ghế và doanh thu chưa thể đồng bộ theo thời gian thực (real-time) giữa nhiều thiết bị người dùng khác nhau.
- Cổng thanh toán thực tế: Tính năng thanh toán và nạp tiền mới dừng lại ở mô hình giả lập trừ tiền trong ví ảo nội bộ của ứng dụng, chưa tích hợp cổng thanh toán trực tuyến của các ngân hàng thương mại hoặc ví điện tử trung gian ngoài đời thực qua mã QR Code hay API thanh toán.
- Phụ thuộc môi trường phần cứng: Quá trình phát triển và kiểm thử trên môi trường giả lập Android Emulator tiêu tốn dung lượng tài nguyên hệ thống (RAM, CPU) lớn, gây khó khăn cho việc triển khai trên các cấu hình máy tính thấp.
Hướng phát triển tiếp theo:
- Nâng cấp hệ thống cơ sở dữ liệu từ Room Database cục bộ sang hệ thống cơ sở dữ liệu đám mây (Cloud Database) hoặc xây dựng dịch vụ Back-end phân tán (sử dụng framework như Spring Boot trên nền tảng JVM như đã khảo sát trong cơ sở lý thuyết) để đồng bộ hóa dữ liệu trực tuyến.
- Kết nối các giao diện lập trình ứng dụng (API) của các cổng thanh toán điện tử thực tế và dịch vụ gửi tin nhắn SMS/thông báo xác nhận mã vé QR Code theo tiêu chuẩn các rạp chiếu phim thương mại.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị chuyên môn dành cho sinh viên ngành Công nghệ Kỹ thuật Máy tính, Kỹ thuật Phần mềm và Công nghệ Thông tin đang thực hiện đồ án chuyên ngành hoặc khóa luận tốt nghiệp về phát triển ứng dụng di động Android:
- Phần đáng tham khảo về phân tích hệ thống: Cung cấp phương pháp xây dựng biểu đồ Use Case, lưu đồ thuật toán màn hình chi tiết và đặc tả nghiệp vụ phân quyền hai cấp (User - Admin) với các luồng rẽ nhánh chặt chẽ.
- Phần đáng tham khảo về công nghệ: Cung cấp tài liệu tổng quan và hướng tiếp cận cấu trúc thư viện Room Database (Entity, DAO, Database) kết hợp ngôn ngữ Kotlin trên môi trường Android Studio.
- Phần đáng tham khảo về bảo đảm chất lượng: Cung cấp mẫu lập kế hoạch, xác định điều kiện tiền đề và lập bảng kịch bản kiểm thử (Test Case) cho các chức năng thương mại điện tử cơ bản.
Câu hỏi thường gặp
1. Ứng dụng MOVIE APP được phát triển dựa trên nền tảng công nghệ và ngôn ngữ nào?
Ứng dụng được xây dựng trên môi trường phát triển tích hợp Android Studio, sử dụng ngôn ngữ lập trình Kotlin và quản lý lưu trữ dữ liệu cục bộ thông qua thư viện Room Database (thuộc Android Jetpack) tương tác với cơ sở dữ liệu SQLite.
2. Hệ thống phân chia vai trò người dùng như thế nào và các chức năng tương ứng của từng vai trò là gì?
Hệ thống phân chia thành hai tác nhân:
- Người dùng (User): Đăng ký, đăng nhập, đổi mật khẩu, xem danh mục phim, xem chi tiết phim, chọn ghế đặt vé, nạp tiền vào ví, xem và hủy danh sách vé đã đặt.
- Người quản trị (Admin): Đăng nhập quản trị, xem danh sách tài khoản người dùng, xóa người dùng, xem doanh thu chi tiết theo từng bộ phim, quản lý ghế đã đặt và thực hiện đặt lại (reset) doanh thu/ghế theo chu kỳ ngày hoặc tháng.
3. Nghiệp vụ hệ thống xử lý thế nào khi người dùng đặt vé hoặc khi Admin thực hiện xóa tài khoản?
Trong use case "Đặt vé xem phim", hệ thống yêu cầu chọn tối thiểu một ghế; nếu số dư trong ví không đủ để thanh toán giá trị vé, hệ thống sẽ cảnh báo không đủ tiền và hủy giao dịch. Trong use case "Bảo trì hệ thống", khi Admin thực hiện lệnh xóa tài khoản người dùng, hệ thống sẽ kiểm tra số dư ví; nếu tài khoản vẫn còn tiền, hệ thống sẽ chặn thao tác và từ chối xóa tài khoản.
4. Room Database có cấu trúc gồm những thành phần nào và yêu cầu hệ điều hành ra sao?
Room Database cấu thành từ 3 thành phần chính: Entity (định nghĩa bảng dữ liệu), DAO (Data Access Object - định nghĩa phương thức truy vấn và tương tác dữ liệu có kiểm tra kiểu tại thời điểm biên dịch) và Database (lớp quản lý cơ sở dữ liệu). Room Database yêu cầu nền tảng Android tối thiểu từ phiên bản 2.2 (API 8) trở lên.
5. Công tác kiểm thử phần mềm trong đồ án được tiến hành trên những chức năng nào?
Quá trình kiểm thử sản phẩm được thực hiện qua 8 bảng kịch bản test case chức năng gồm: Đăng ký tài khoản (Bảng 3.1), Đăng nhập (Bảng 3.2), Mua vé xem phim (Bảng 3.3), Xóa người dùng (Bảng 3.4), Nạp tiền (Bảng 3.5), Đổi mật khẩu (Bảng 3.6), Reset ghế theo ngày (Bảng 3.7) và Reset dữ liệu định kỳ (Bảng 3.8).
Kết luận
Đồ án chuyên ngành "Thiết kế phần mềm đặt vé xem phim" của nhóm sinh viên Trường Đại học Công nghiệp Hà Nội đã giải quyết trọn vẹn bài toán xây dựng ứng dụng thương mại dịch vụ di động MOVIE APP trên hệ điều hành Android. Bằng việc kết hợp ngôn ngữ lập trình Kotlin, môi trường Android Studio và thư viện Room Database, nhóm tác giả đã hiện thực hóa 12 ca sử dụng thực tế phục vụ hai nhóm đối tượng người dùng và quản trị viên. Kết quả đồ án được xác thực qua hệ thống giao diện trực quan và 8 bộ kịch bản kiểm thử chức năng hoàn chỉnh, đóng vai trò là tài liệu tham khảo kỹ thuật hữu ích cho các nghiên cứu phát triển ứng dụng di động kế tiếp.