Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CINEMAX — Module đặt vé xem phim

Ứng dụng Android cho phép người dùng duyệt phim, chọn rạp chiếu, chọn suất chiếu, chọn ghế và đặt vé. Toàn bộ hoạt động offline với dữ liệu lưu trữ cục bộ.


Giao diện

Trang chủ Đăng nhập Danh sách phim
Home Login Films
Trang chủ (đã đăng nhập) Chi tiết phim Chọn suất chiếu
Home Logged In Film Detail Showtime
Chọn ghế Danh sách rạp Phim tại rạp
Seat Cinemas Cinema Films
Vé đã đặt Chi tiết vé
Tickets Ticket Detail

1. Chức năng

1.1. Xác thực người dùng

Người dùng đăng nhập bằng tài khoản và mật khẩu. Sau khi đăng nhập thành công, thông tin phiên được lưu lại để duy trì trạng thái qua các lần mở app. Khi đăng xuất, phiên bị xóa và giao diện trở về trạng thái chưa đăng nhập. Có 2 tài khoản demo sẵn có: an, linh (mật khẩu: 123456).

1.2. Duyệt phim

Hiển thị danh sách 20 phim với poster, tên, thời lượng và mô tả ngắn. Nhấn vào phim để xem chi tiết đầy đủ bao gồm nội dung phim và danh sách diễn viên.

1.3. Danh sách rạp chiếu

Hiển thị 4 rạp chiếu tại TP.HCM. Mỗi rạp có danh sách phim đang chiếu cuộn ngang. Có thể xem toàn bộ phim tại một rạp cụ thể.

1.4. Chọn rạp và suất chiếu

Từ màn hình chi tiết phim, người dùng chọn rạp muốn xem, sau đó chọn ngày và giờ chiếu phù hợp. Mỗi suất chiếu thuộc một phòng chiếu cụ thể (Phòng 1, Phòng 2, IMAX, 4DX, v.v.).

1.5. Chọn ghế và đặt vé

Sơ đồ ghế hiển thị 40 ghế chia thành 3 loại với giá khác nhau:

  • Ghế thường (hàng A, B, C): 75.000đ
  • Ghế VIP (hàng D): 110.000đ
  • Ghế Couple (hàng E): 150.000đ

Ghế đã được người khác đặt hiển thị mờ và không thể chọn. Người dùng có thể chọn nhiều ghế cùng lúc. Danh sách ghế đã chọn hiển thị tên ghế, loại ghế, giá từng ghế và tổng tiền theo thời gian thực. Nhấn "Đặt vé" để xác nhận toàn bộ ghế đã chọn trong một lần.

1.6. Quản lý vé

Tất cả ghế trong cùng một lần đặt được gộp thành một vé duy nhất. Danh sách vé hiển thị tên phim, rạp chiếu, giờ chiếu, danh sách ghế và tổng tiền. Nhấn vào vé để xem chi tiết đầy đủ bao gồm phòng chiếu, từng ghế kèm loại và giá, thời điểm đặt.

1.7. Giao diện sáng/tối

Ứng dụng hỗ trợ cả Light Mode và Dark Mode. Người dùng có thể chuyển đổi bằng nút toggle trên màn hình trang chủ.


2. Công nghệ và thư viện

2.1. Ngôn ngữ và build

  • Kotlin
  • Gradle với Kotlin DSL
  • KSP (Kotlin Symbol Processing) — xử lý annotation cho Room

2.2. Kiến trúc

  • MVVM (Model-View-ViewModel)
  • Repository Pattern — tách biệt data layer khỏi UI
  • Single Activity, multi-Fragment

2.3. Lưu trữ dữ liệu

  • Room Database (SQLite) — toàn bộ dữ liệu lưu local
  • SharedPreferences — lưu trạng thái đăng nhập

2.4. UI

  • Material Design 3
  • View Binding
  • Navigation Component với Safe Args
  • RecyclerView, ConstraintLayout, LinearLayout
  • Glide — load ảnh từ URL và base64

2.5. Bất đồng bộ

  • Kotlin Coroutines
  • LiveData

3. Cấu trúc database

7 bảng với quan hệ như sau:

Users
Movies ──── TheaterMovieCrossRef ──── Theaters
Movies ──── Showtimes ──────────────── Theaters
Showtimes ── Seats
Users + Movies + Showtimes + Seats ──── Tickets

Bảng Tickets có thêm trường bookingRef để nhóm các ghế đặt cùng lúc thành một vé.


4. Cài đặt

Yêu cầu: Android Studio, JDK 17+, Android SDK API 24+.

  1. Clone repo
  2. Mở project trong Android Studio
  3. Sync Gradle
  4. Chạy trên emulator hoặc thiết bị thật (API 24+)
Username Password Tên hiển thị
an 123456 Nguyễn Văn An
linh 123456 Trần Mỹ Linh

5. Thông tin dự án

Mục Thông tin
Platform Android
Min SDK API 24 (Android 7.0)
Target SDK API 36
Ngôn ngữ Kotlin
Build system Gradle KTS + KSP

About

Android App Mô phỏng quy trình đặt phim online

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages