._ Vêu cầu của đề tài Ứng với vai trò người dùng trong ứng dụng có các chức năng sau: Đăng ký thành viên có kiểm tra đữ liệu đăng ký, Đăng nhập Xem chỉ tiết từng chuyền xe ứng với bộ lọ
Trang 1
TRUONG DAI HOC MO THANH PHO HO CHi MINH
KHOA CONG NGHE THONG TIN
ae
BAO CAO GIUA KY
DE TAI: UNG DUNG DAT VE XE KHACH
Môn học: Lập trình trên thiết bị di động
GVHD: Dwong Thai Bao
Lớp: DH20CS02
Sinh Viên Thực Hiện:
Thái Gia Vương: 2051010367
Dinh Tấn Huy: 2051010099
Dang Minh Trung: 1851010073
Thanh Phố Hồ Chí Minh, ngày 17 tháng 8 năm 2023
Trang 2
VOU CAU CUA ME nh .-.‹(däạjldäăặHB.HH 4
CÁC CÔNG NGHỆ ĐƯỢC SỬ DUNG TRONG UNG DUNG .cccccccsccssessssessestseseessesseeseeene 5
GiGi thidu vé room database cccccccccsccssssessssessssesssessssesssesssesssseessessseessesesseeesseeaseensesseaseasens 5 1.1 Tìm biếu về Room Database 50 2 c2 nh ưng HH xe 5 1.2 Cài đặt Room Database HH HH HH HH Hà HH HH HH ky 5 1.3 Cấu trúc của Room Database sọc ng re re 5 Giới thiệu mô hình ImVVim ¡1n TH HH HH HH như Hệ 8 2.1 Tìm hiểu về mô hình mVVIm 5: 22t2SStSEEềEEEtEEEEEEEEEEEEEEEErrkrrkkrkrerkrerrerrre 8 2.2 Cài đặt và cấu trúc mô hình mvvm 2: + ©2St2 Sz2EEt2ExrEEExrrkkrrrrrerrerrrrrrerree 8 Các công nghệ khác sử dụng trong ứng dụng đặt vé xe khách eee 11
So dO i4: NA gH.H 12 CHI TIẾT VỀ ỨNG DỤNG ĐẠT VÉ XE KHÁCH 55 55c225Sc2cxrecrkerkx re cv 13
Mô tả chức năng của Ứng dụng cà nàn HH HH HH Hà Hot 13 1.1 Mo ta chức năng của người dùng -ó- nhì HHh HH Hy 13 1.2 Mô tả chức năng của quản trị ViÊn nh HH HH ke, 19
Mô tả dữ liệu của Ứng dụng - SH HH HH Hàn HH Hà kh kế 23 2.1 Bảng thành viên - nà HH HH HH HT TH HH 23 2.2 Bảng quyền òọGọt n2 HH HH re 24 2.3, Bảng loại Xe HH HH HH Hà HH KH TH Hàn HH KH TH 24 2.4 Bảng chuyến xe 20222 tình t1 re 25 2.5 Bảng trạng thái Tà nh HH HH HH HH HH HH KHE 25 2.6 Bảng đặt vé HH HH HH nh HH HH KH TH Hàn 26 2.7 Bảng đánh giá Là Hình HH HH HH HH Ho ke Hết 27
x5 000/0 01577 11454, HH 27
C1) TT SN nh ố 6 ag ,A 27 Hạn chế của phần mềm - 5S 2St2ESt2E E2 22271.211.211 11C crrrrrrve 27 Phát triển ứng dụng trong tương lai - 5: 55c o2 2tr ng tre 28
IV )8000)09:/00.804./ 0 ẽ A H HHBHBH,,) , 28
Trang 3THU mỤc view trong mVVm cà TH HT HT Hà TH TH TH Hà HH TH TT ead 11
Trang 4I CHUONG 1: TONG QUAN
1 Giới thiệu đề tài
Trong tình hình kinh tế xã hội liên tục phát triển và sự hội nhập kinh tế quốc tế
ngày cảng mạnh, sự di chuyên và chuyên dịch cơ cầu kinh tế giữa các khu vực
trở thành hiện thực không thẻ tránh Mô hình cơ cầu lao động cũng trải qua những biến đổi mạnh mẽ, khiến cho việc đi chuyển chỗ ở và nơi làm việc trở nên thường xuyên đối với rất nhiều người Từ sự thay đôi này, nhu cầu về việc
di chuyên và đi lại ngày càng gia tăng Đồng thời, với sự phát triển của kinh tế, nhu cầu trong việc du lịch, thăm viếng người thân ở xa cũng tăng cao
Tuy nhiên, trái ngược với sự phát triển của môi trường kinh doanh hiện đại, đa
số các công ty vận tải hành khách vẫn đang áp dụng các phương thức quản lý và bán vé theo cách truyền thống Điều này dẫn đến sự cản trở trong quá trình quản
lý của hãng vận tải và gây khó khăn cho khách hàng, đặc biệt là trong việc mua
vé xe trong các kì nghỉ và địp lễ
Trong bối cảnh của sự phát triển đột phá của công nghệ thông tin và sự phô biến của Internet trong mọi ngóc ngách cuộc sống, việc xây dựng một Hệ thống quản
lý và đặt vé xe khách trực tuyến đã trở thành một giải pháp phù hợp và cần thiết
Đặc biệt, với sự bận rộn của nhiều người trong việc quản lý thời gian, khả năng
mua vé xe chỉ với vài cú nhấp chuột trên mạng mang ý nghĩa quan trọng
Trang 5Chính từ những tình hình và yếu tố trên, nhóm chúng tôi đã quyết định tập trung
vào đề tài "ỨNG DỤNG ĐẶT VÉ XE KHÁCH Ứng dụng này dự kiến sẽ giúp
giải quyết một phần những khó khăn mà các Công ty vận tái và khách hàng đang đối mặt
._ Vêu cầu của đề tài
Ứng với vai trò người dùng trong ứng dụng có các chức năng sau:
Đăng ký thành viên (có kiểm tra đữ liệu đăng ký), Đăng nhập
Xem chỉ tiết từng chuyền xe ứng với bộ lọc địa điểm đi, địa điểm đến,
loại xe, ngày đi, giờ đi
Tìm kiếm chuyến xe
Đặt vé cho phép nhập ngày đi, ngày về với số lượng vé còn lại
Xem thống kê được số lượng vé đặt trong giỏ hàng
Xem lịch sử vé đã đặt
Hủy vé đã đặt (trong thời gian cho phép) Đánh giá sản phẩm (có lưu vào CSDL)
Ứng với vai trò quản lý trong ứng dụng có các chức năng như sau:
Quản lý user: thêm, xóa, sửa, chuyên vai tro
Quan lý loại xe: thêm, xóa, sửa loại xe
Quản lý chuyền xe: thêm, xóa, sửa từng loại xe, chuyền xe ứng với loại
danh mục địa điểm, ngày di, giờ di
Quản lý vé đặt: thống kê theo từng user đặt, ngày đặt, tháng đặt, thông kê
số vé đã đặt theo từng chuyến xe
Một số chức năng nâng cao khác:
Trang 6© Kha nang dat vé khứ hỏi
® - Chức năng thanh toán đơn hàng (đưa vao cac app/ service online)
e - Hiển thị được sản phâm bán chạy, sản phâm mới Hiền thi rating đánh giá từng sản phẩm
e - Giao diện thân thiện, đễ sử dụng
I CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG TRONG ỨNG DỤNG
1 Giới thiệu về room database
1.1 Tìm biểu về Room Database
Room Database (Room Persistence Library) là một thành phân quan trọng thuộc Android Architecture Components, được thiết kế để đơn giản hóa việc tương tác với đối tượng SQLiteDatabase và cung cấp cách tiếp cận tiện lợi hơn Thay vì phải xử lý nhiều câu truy vấn phức tạp, Room cho phép sử dung cac chu thich (annotation) san co dé xác định câu trúc đữ liệu và tự động sinh ra các câu truy vẫn tương ứng Điều này giúp giảm thiểu công việc của lập trình viên và đảm bảo tính chính xác của các truy vấn ngay tại thời điểm biên địch mã nguồn
1.2 Cai dat Room Database
Đầu tiên thêm thư viện room database vào ứng dụng android bằng cách thêm câu lệnh này vào trong tệp tin build.gradle nhu sau:
Hình 1: Cài đặt room database
1.3 Cau tric cia Room Database
SQLite Database trong Room
Trang 7SQLite Database chinh la trai tim cua Room, nơi mà toàn bộ dữ liệu được lưu trữ Các bảng và dữ liệu tương ứng với cac Entity trong Room sé dugc cau trúc và quản lý bởi SQLite Database File này thường được lưu trữ trong
thiết bị và được quản lý bởi hệ thông quản lý cơ sở đữ liệu SQLite
Hình 2: Salite trong room database DAO (Data Access Object)
DAO trong Room chứa những ánh xạ để dàng hơn tới các hàm CRUD
(Create, Read, Update, Delete) trong SQLite Trước đây, việc viết các câu truy vấn SQLite đòi hỏi sự cân thận và kiến thức chính xác, nhưng với DAO, việc này trở nên đơn giản hơn đáng kể Bằng cách gọi các phương thức trong
DAO, Room sẽ tự động thực hiện các truy vấn và thao tác đữ liệu cho bạn
Hình 3: Cââu trúc thứ mc DAO
Entity trong Room
Entity là những đối tượng nhỏ, tương ứng với các bảng trong cơ sở đữ liệu
Ví dụ, bạn có thê có Entity cho bảng người dùng (user), bảng sự kiện
Trang 8(event), và nhiều bảng khác Các thuộc tính của Entity được định nghĩa bằng cách sử dụng các chú thích (annotations), giúp việc quản lý cầu trúc đữ liệu trở nên ngăn gọn và để dàng
Hình 4: Cââu trúc thƯ mỤc entity Room Database
Room Database là một lớp abstract layer nằm phía ngoài cùng, giúp quản lý
toàn bộ SQLte Database và cung cấp cách tiếp cận tiện lợi hơn đến cơ sở dữ hiéu SQLite Room str dung DAO đề thực hiện các truy vấn và thao tác dữ liệu Việc gọi các phương thức trong DAO giúp Room tự động thực hiện
việc truy vẫn và quản lý dữ liệu, giúp giảm thiêu sự phức tạp của việc tương
tác trực tiếp voi SQLite
Trang 9View (giao diện người dùng), tạo điều kiện thuận lợi cho việc phát triển và
bảo trì ứng dụng
Mô hình mvvm được tô chức và cài đặt như sau:
Tích hợp giữa các thành phân trong MVVM thực hiện theo các cơ chế đặc trưng
Model: Chứa dữ liệu và logic liên quan Model không biết gì về giao diện người dùng hoặc VIiewModel
Trang 10
ViewModel: Là một tầng trung gian giữa Model và View ViewModel chứa
mã thực thi cho các hoạt động giao diện và đồng thời cũng là nơi truyền dữ liệu từ Model tới View
Trang 11
Hinh 7: Thuf muc viewmodel trong mvvm
View: Dai điện cho giao điện người dùng, hiện thị dữ liệu và tương tác với
người dùng View chỉ biết về ViewModel, không biết về Model
10
Trang 12
Hình 8: ThƯ mỤc view trong mvvm
Mô hình MVVM tập trung vào sự tách biệt các thành phân, giúp tối ưu hóa
việc phát triển độc lập và kiểm thử Đồng thời, việc sử dụng Command dé
kết nối các hành động giữa ViewModel và View tạo ra sự linh hoạt và mở rộng trong quản lý sự kiện và tương tác người dùng
3 Các công nghệ khác sử dụng trong ứng dụng đặt vé xe khách
© Data Binding: là một kỹ thuật cho phép liên kết dữ liệu giữa thành phần
giao điện người dùng và đữ liệu của ứng dụng một cách tự động Điều
11
Trang 13này giúp tạo ra sự tương tác mạnh mẽ giữa các thành phần UI và đữ liệu,
giúp giảm thiểu việc viết mã lặp đi lặp lại và làm cho mã nguồn dé doc
va dé bao tri hon
© Firebase: Sử dụng Storage trong ñrebase đề lưu trữ hình ảnh
© Glide: la thư viện dùng để lay url hinh anh tir fire base hién thị ra ứng dung
© Recycle view: là một thành phần quan trọng trong Android, được sử dụng
để hiển thị đanh sách dữ liệu có thê cuộn một cách hiệu quả trên giao
diện người đùng Nó được thiết kế để giúp quản lý và hiển thị danh sách
dữ liệu lớn một cách tối ưu, đồng thời cung cấp khả năng tái sử dụng các phần tử giao điện đề tối ưu hóa hiệu suất
4 Sơ đồ cơ sở dữ liệu
1 Mô tá chức năng của ứng dung
Hình 9:S_ @fôô cơ sở dữ liệu
12
Trang 141.1 Mô tá chức năng của người dùng
1.1.a Đăng ký thành viên (Có kiểm tra dữ liệu đăng ký)
Nếu người dùng bỏ trồng các ô bắt buộc nhập thì không được phép đăng
ký
Tên đăng nhập người dùng nhập dữ liệu không dấu và không có ký tự số,
nếu vi phạm sẽ không được đăng ký
Email phải nhập đúng định dạng là username(@domain.eom, Nếu vi phạm sẽ không được phép đăng ký
Số điện thoại chỉ được nhập số
Mật khẩu và Nhập lại mật khẩu phải giống nhau mới được phép đăng ký
Bắt buộc phải tích chọn chấp nhận điều khoản
Sau khi đảm bảo đủ các điều kiện trên thì người dùng có thể đăng ký thành công với vai trò là một khách hàng Dưới đây là giao diện đăng ký:
Trang 15chỉ tiết từng chuyến xe ứng với bộ lọc địa điểm đi, địa điểm đến, loại
xe, ngày đi, giờ đi và tìm kiếm chuyến xe
Người dùng sẽ được cung cấp bộ lọc
Từng bộ lọc được cung cấp trong đó sẽ là những dữ liệu đã có trong database Người dùng nhấp chọn ứng với nhu cầu sau đó nhận nút Lọc
14
Hình 12: Xem chỉ tiêâtt nữ chuyêân xe tigv 6b G Odddi &di,dddi ếi đêân, loại xe, ngày đi,
gi đ® và tìm kiêâm chuyêân xe
Trang 16thì chuyến xe với điều kiện phù hợp sẽ hiện ra Nếu không có chuyền xe phù hợp sẽ hiện ra thông báo
Không tìm thấy chuyến xe
Địa điểm đến: Bến xe Gia Nghĩa v
1.1.d Đặt vé với số lượng vé còn lại
Khi người dùng xem chi tiết chuyên xe, sẽ hiện thị ra sô vé còn lại Người dùng chỉ được đặt vé trong phạm vi của số vé còn lại Sau khi người dùng chọn ngày đi hoặc ngày về (nếu có) và chọn số lượng vé thì
sẽ nhân đặt vé đề tiến hành hiển thị thong tin chỉ tiết của vé đó Nếu
15
Hình 13: ChỨc năng đặt vé
Trang 17người dùng đồng ý thì nhắn xác nhận và đợi quan tri viên duyệt và liên
Thông tin khách hang
Th 2, 21 thg 8 Thông th lượt đi
Tên chuyến xe: TP.Hồ Chí Minh -
TPNha Trang
Địa điểm đến: Bến xe Nha Trang
Ngày đi: 19/8/2023
Số lượng vé: 2 Tổng tiền: 1,000,000 VND
Thông tin lượt về Tên chuyến xe: TP.Hồ Chí Minh -
TP.Nha Tran
Địa điểm đi: Bến xe Nha Trang Địa điểm đến: Bến xe Miền Tây Ngày đi: 19/8/2023 Giờ bắt đâu: 12h00
Trang 18duyệt bởi admin Lịch sử
Hình 14: ChỨc năng xem lịch sử đặt vé
1.1.f Hủy vé đã đặt
Trong thời gian 15 phút nếu người dùng không có nhu cầu đi xe nữa thì
có thể hủy vé trong lịch sử vé đặt Nếu quá 15 phút thì phải liên hệ lại
hủy vé Chỉ Hôn hay mm ⁄ chu ee
Trang 19Khi xem chi tiết của từng chuyến xe người dùng có thể thêm đánh giá cho chuyến xe đó Với từng lượt đánh giá sẽ được lưu lại và hiện thị lên trang chi tiết chuyên xe đó luôn Vậy nên người dùng cũng có thê tham khảo nhiều ý kiến của những người dùng trước đó rồi mới quyết định được là có đi chuyến xe đó không
Số lượng sao đánh giá của chuyến xe sẽ được tính trung bình tất cả của từng người dùng đã đánh giá chuyến xe đó
TP.Hồ Chí Minh - TP.Nha Trang TP.Hồ Chí Minh - TP.Nha Trang
Hinh 16: Ch ứnăng đánh giú chuyêân xe
1.2 Mô tá chức năng của quản trị viên
1.2.a Quán lý thành viên
Quản trị viên có thể thêm, sửa, xóa, xem chỉ tiết và thêm bắt kỳ thành
viên nào Quản trị viên đang đăng nhập thì không thê xóa chính bản thân của họ Và nhân viên không thể xóa bất cứ thành viên nảo
18
Trang 21Địa điếm xuất ,
thúc g Dia dién
Thời gian Thời gian đến (dự tính)
Hinh 18: Ch @ndng qu & ly chuyédn xe
Quản trị viên có thê thêm, sửa, xóa, xem chi tiết và thêm loại xe
20
Trang 22Không thê xóa loại xe có chuyên xe đã chạy loại xe đó
lý viên
có thê
EP Se ee lượng
Hình 19: Chức năng quần lý loại xe vẻ đặt
theo chuyên xe Từ đó có thê nhân vào xem chi tiết vé xe và duyệt vé xe