HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN PHÁT TRIỂN ỨNG DỤNG CHO CÁC THIẾT BỊ DI ĐỘNG Đề tài 23: Ứng dụng tìm kiếm và đặt phòng khách sạn Giảng viên:
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO MÔN PHÁT TRIỂN ỨNG DỤNG CHO CÁC THIẾT BỊ DI ĐỘNG
Đề tài 23: Ứng dụng tìm kiếm và đặt phòng khách sạn Giảng viên: ThS Nguyễn Hoàng Anh
Nhóm báo cáo: 03
Thành viên nhóm:
Nguyễn Thu Thảo – B20DCCN655
Lê Thị Quỳnh Nhi – B20DCCN487Nguyễn Cẩm Ly – B20DCCN415Nguyễn Minh Ninh – B20DCCN463Thành viên thực hiện báo cáo :
Lê Thị Quỳnh Nhi – B20DCCN487
Hà Nội 2024
Trang 2Thành viên tham gia và đóng góp
- Bảng phân công công việc :
· Người dùng có thể quản lý tài khoản cá nhân và theo dõi
điểm thưởng từ việc sử dụng dịch vụ.
· Hệ thống tích điểm thưởng có thể được sử dụng để nhận ưu đãi và giảm giá trong các đặt phòng tiếp theo.
mãi, và tiện ích đi kèm
· Thông tin chi tiết giúp người dùng đưa ra quyết định dựa trên
nhu cầu cá nhân và ngân sách
· Hệ thống hiển thị danh sách thông báo giúp người dùng nhận
biết các hoạt động của bản thân
· Nhắc nhở về ngày check-in và check-out giúp đảm bảo lịch
trình chuyến đi suôn sẻ
Thảo
Trang 3Tích Hợp Bản Đồ và
Định Vị:
· Ứng dụng tích hợp bản đồ giúp người dùng xác định vị tríchính xác của khách sạn và xem xung quanh
· Định vị GPS hỗ trợ người dùng đến địa điểm một cách thuận
lợi
Thảo
- Đóng góp khác :
+ thiết kế cơ sở dữ liệu : Nguyễn Thu Thảo, Lê Thị Quỳnh Nhi
+ tạo database, deploy server : Nguyễn Thu Thảo
3
Trang 4MỤC LỤC
Chương I: Phần giới thiệu chung 5
1 Giới thiệu ứng dụng 5
2 Phân tích ứng dụng 5
3 Mục tiêu 6
Chương II: Thiết kế hệ thống 7
I Phân tích yêu cầu bài toán 7
1 Phát biểu bài toán 7
2 Mô tả ứng dụng ( mô tả chức năng riêng) 7
3 Kế hoạch thực hiện 8
II Thiết kế hệ thống 8
1 Kiến trúc tổng quan 8
2 Thiết kế chung cho toàn hệ thống 8
2.1 Thiết kế lớp thực thể 8
2.2 Thiết kế cơ sở dữ liệu 9
3 Thiết kế cho các chức năng.(Cá nhân) 9
3.1 Biểu đồ Usecase 9
3.2 Thiết kế biểu đồ lớp 12
3.3 Xây dựng biểu đồ tuần tự 13
3.3.1 Biểu đồ tuần tự chức năng tìm kiếm phòng 13
3.3.2 Biểu đồ tuần tự cho chức năng chỉnh sửa mật khẩu 13
3.3.3 Biểu đồ tuần tự cho chức năng chỉnh sửa Email 13
3.3.4 Biểu đồ tuần tự cho chức năng chỉnh sửa Số điện thoại 14
3.3.5 Biểu đồ tuần tự cho chức năng chỉnh sửa CCCD 14
3.3.6 Biểu đồ tuần tự cho chức năng Đổi điểm 15
3.3.7 Biểu đồ tuần tự cho chức năng Xem quà của tôi 15
3.3.8 Biểu đồ tuần tự cho chức năng Xem lịch sử điểm 16
3.4 Thiết kế giao diện 16
3.4.1 Giao diện tìm kiếm phòng 16
3.4.2 Giao diện quản lí thông tin cá nhân 16
3.4.3 Giao diện quản lí điểm thưởng 17
Chương III: Kết quả thử nghiệm/triển khai 19
1 Mô hình triển khai ứng dụng 19
2 Các bước triển khai ứng dụng 19
2.1 Frontend App Mobile với Android Studio Code 19
Trang 53.Các kết quả thực hiện được 21
3.1 Giao diện tìm kiếm 22
3.2 Giao diện quản lí thông tin cá nhân 24
3.3 Giao diện quản lí điểm thưởng 26
4 Kết luận 28
5 Tài liệu tham khảo 28
Chương I: Phần giới thiệu chung.
5
Trang 61 Giới thiệu ứng dụng.
- Thiết kế và phát triển ứng dụng mobile tìm kiếm và đặt phòng khách sạn linh hoạt, chophép quản lí tài khoản cá nhân, điểm thưởng, đánh giá , tích hợp map
2 Phân tích ứng dụng.
Phát triển một ứng dụng di động trên nền tảng Android cho phép người dùng:
- Tìm kiếm các khách sạn theo các tiêu chí như địa điểm, ngày nhận phòng, ngày trả phòng, số lượng khách, loại phòng, v.v
- Xem thông tin chi tiết của các khách sạn, bao gồm hình ảnh, giá cả, tiện nghi, đánh giácủa người dùng, vị trí trên bản đồ, v.v
- Đặt phòng khách sạn bằng cách cung cấp thông tin như tên, thông tin liên lạc, số lượngphòng, yêu cầu đặc biệt, v.v
- Xem lịch sử đặt phòng và quản lý các đặt phòng hiện tại
- Quản lí điểm thưởng và thông tin cá nhân
- Gửi thông báo đặt phòng, đổi điểm,
3 Mục tiêu.
- Thực hiện được tất cả các yêu cầu chức năng của bài tập
- Phân tích và thiết kế được bài toán yêu cầu của bài tập
- Vận dụng được các kiến thức đã học vào công việc
4 Bảng danh sách từ viết tắt
STT Tên viết tắt Tên đầy dủ
3 ValueSearch Giá trị tìm kiếm
7 ExchangeVoucher Quà đã đổi
Trang 79 Username Tên đăng nhập
Chương II: Thiết kế hệ thống
I Phân tích yêu cầu bài toán.
1 Phát biểu bài toán.
- Trong thời đại công nghệ ngày nay, việc sử dụng ứng dụng di động để đặtphòng khách sạn không chỉ mang lại sự thuận tiện cho người dùng mà còngiúp tối ưu hóa quy trình đặt phòng và quản lý khách sạn cho các doanhnghiệp trong ngành du lịch
- Với ứng dụng đặt phòng khách sạn của nhóm 3 sẽ có các chức năng cơ bảncủa người dùng (không bao gồm chức năng quản lý, chức năng quản lý sẽđược bổ sung sau nếu có thời gian)
2 Mô tả ứng dụng ( mô tả chức năng riêng)
2.2 Quản lí tài khoản cá nhân
2.2.1 Thông tin cá nhân
- Người dùng có thể xem thông tin cá nhân của mình, bao gồm: số điện thoại, email, CCCD
- Người dùng có thể chỉnh sửa các thông tin cá nhân: mật khẩu, số điện thoại, email, CCCD
2.2.2 Điểm thưởng
- Người dùng có thể xem số điểm thưởng hiện có và doanh thu trong tháng của mình
- Người dùng có thể đổi điểm lấy voucher của hệ thống
- Người dùng có thể xem tất cả voucher đã đổi: đã dùng và chưa dùng
7
Trang 8- Người dùng có thể xem lại lịch sử điểm : điểm cộng ( hóa đơn) và điểm trừ ( đổi voucher)
II Thiết kế hệ thống.
1 Kiến trúc tổng quan.
- Mô hình Client-Server và Giao tiếp thông qua API:
+ Ứng dụng sẽ tuân thủ mô hình client-server, trong đó frontend (client) giao tiếp với backend (server) thông qua các API RESTful
+ Frontend sẽ gửi yêu cầu đến backend thông qua các endpoint API, và backend sẽ xử
lý yêu cầu này và trả về kết quả tương ứng
+ Dữ liệu được truyền giữa frontend và backend thông qua giao thức HTTP, với định dạng dữ liệu thường là JSON hoặc XML
2 Thiết kế chung cho toàn hệ thống.
2.1 Thiết kế lớp thực thể.
Hình 2.1 : biểu đồ lớp thực thể
Trang 92.2 Thiết kế cơ sở dữ liệu
Trang 11- Đặc tả : Usecase cho phép người dùng xem, chỉnh sửa thông tin cá nhân; xem điểm thưởng, doanh số trong tháng; Đổi quà, xem quà của tôi, xem lịch sử điểm
Hình 3.4 usecase quản lí tài khoản cá nhân
- Phân rã :
+ module sửa mật khẩu :
Hình 3.5 : usecase Sửa mật khẩu
+ module sửa email(sửa số điện thoại và CCCD tương tự):
11
Trang 12Hình 3.6 : usecase sửa email
+ module đổi quản lí điểm thưởng
Hình 3.7 : usecase Quản lí điểm thưởng
3.2 Thiết kế biểu đồ lớp.
3.3 Xây dựng biểu đồ tuần tự.
Trang 133.3.1 Biểu đồ tuần tự chức năng tìm kiếm phòng
Hình 3.8 Biểu đồ tuần tự chức năng tìm kiếm phòng
3.3.2 Biểu đồ tuần tự cho chức năng chỉnh sửa mật khẩu.
Hình 3.9 Biểu đồ tuần tự chức năng chỉnh sửa mật khẩu
3.3.3 Biểu đồ tuần tự cho chức năng chỉnh sửa Email
13
Trang 14Hình 3.10 Biểu đồ tuần tự chức năng chỉnh sửa email
3.3.4 Biểu đồ tuần tự cho chức năng chỉnh sửa Số điện thoại
Hình 3.11 Biểu đồ tuần tự chức năng chỉnh sửa số điện thoại
3.3.5 Biểu đồ tuần tự cho chức năng chỉnh sửa CCCD
Trang 15Hình 3.12 Biểu đồ tuần tự chức năng chỉnh sửa CCCD
3.3.6 Biểu đồ tuần tự cho chức năng Đổi điểm
Hình 3.13 Biểu đồ tuần tự chức năng chỉnh đổi điểm
3.3.7 Biểu đồ tuần tự cho chức năng Xem quà của tôi
Hình 3.14 Biểu đồ tuần tự chức năng xem quà của tôi
15
Trang 163.3.8 Biểu đồ tuần tự cho chức năng Xem lịch sử điểm
Hình 3.15 Biểu đồ tuần tự chức năng xem lịch sử điểm
3.4 Thiết kế giao diện.
3.4.1 Giao diện tìm kiếm phòng
Hình 3.16, 3.17 Giao diện tìm kiếm phòng
3.4.2 Giao diện quản lí thông tin cá nhân.
Trang 17Hình 3.18, 3.19, 3.20 Giao diện quản lí thông tin cá nhân
3.4.3 Giao diện quản lí điểm thưởng.
Hình 3.21, 3.22 Giao diện quản lí điểm thưởng
17
Trang 18Hình 3.23, 324 Giao diện quản lí điểm thưởng
Trang 19Chương III: Kết quả thử nghiệm/triển khai
1 Mô hình triển khai ứng dụng.
- Công nghê sử dụng :Java
- Framework: Android SDK
- API : tự triển khai theo Framework Spring Boot
- Database : MySQL
2 Các bước triển khai ứng dụng.
2.1 Frontend App Mobile với Android Studio Code
- Bước 1: Tải Android Studio:
Truy cập trang web chính thức của Android Studio tại
https://developer.android.com/studio và tải xuống phiên bản phù hợp với hệ điều hành Windows
- Bước 2: Chạy Trình cài đặt:
Sau khi tải xuống, mở tệp cài đặt exe và chạy trình cài đặt
- Bước 3 : Tạo project và triển khai
- Bước 4 : Thêm các dependency, đặc biệt thêm Volley, Gson để hỗ trợ giao tiếp api, Firebase để tích hợp bản đồ và Picasso để gán ảnh từ google vào ứng dụng
- Bước 5 : Mở Android Studio: Khởi động Android Studio trên máy tính của bạn
- Bước 6 : Chọn "Start a new Android Studio project": Trong màn hình chào mừng, bạn
sẽ thấy một tùy chọn để bắt đầu một dự án mới Nhấp vào "Start a new Android Studioproject" để tiếp tục
Hình 2.1.1 Bắt đầu tạo project mới
- Bước 7 : Chọn Template: Tiếp theo, bạn sẽ chọn một template cho dự án của mình Chọn “Bottom Navigation View Activity” và nhấp vào "Next"
19
Trang 20Hình 2.1.2 Bắt đầu tạo project mới
- Bước 8 : Cài đặt dự án: Tại đây, bạn sẽ cung cấp một số thông tin cơ bản về dự án của mình như tên ứng dụng, gói ứng dụng (package name), nơi lưu trữ dự án trên máy tính Điền thông tin cần thiết và nhấp vào "Finish"
2.2 Backend App Mobile với Intelij
- Bước 1 :Cài đặt Java Development Kit (JDK):
a Đầu tiên, cài đặt JDK tại
https://www.oracle.com/java/technologies/downloads
b Thêm biến môi trường
Hình 2.2.1 Thêm biến môi trường của JDK
- Bước 2 :Tải và cài đặt IntelliJ IDEA:
Tải IntelliJ IDEA từ trang web chính thức của JetBrains và cài đặt
Sau khi cài đặt, mở IntelliJ IDEA
- Bước 3 : Tạo dự án Spring Boot:
Chọn "Create New Project" từ màn hình khởi đầu hoặc từ menu "File" > "New" >
"Project"
Trong cửa sổ "New Project", chọn "Spring Initializr"
Đặt tên cho dự án của bạn và chọn nơi lưu trữ
Trang 21Chọn phiên bản của Java bạn đã cài đặt.
Chọn phiên bản của Spring Boot
Chọn các dependencies mong muốn bao gồm trong dự án, chẳng hạn như Spring Web,Spring Data JPA (hỗ trợ kết nối với database), và Spring Security (hỗ trợ truy cập từ các api front-end mà không bị lỗi Cors)
Nhấn "Next", sau đó "Finish" để tạo dự án
- Bước 4: Bắt đầu làm việc:
IntelliJ IDEA sẽ tạo ra một cấu trúc dự án cơ bản cho bạn và tải xuống các thư viện cần thiết
Bây giờ bạn có thể bắt đầu viết mã cho ứng dụng Spring Boot của mình bằng cách tạo các @Controller, @Service và @Repository
Trang 223.1 Giao diện tìm kiếm
Hình 3.2: Giao diện tìm kiếm.
Trang 23Hình 3.3: Giao diện sắp xếp, phòng hợp lệ.
23
Trang 243.2 Giao diện quản lí thông tin cá nhân
Hình 3.4: Giao diện quản lí thông tin cá nhân.
Trang 25Hình 3.5: Giao diện sửa thông tin cá nhân
.
25
Trang 263.3 Giao diện quản lí điểm thưởng.
Hình 3.6: Giao diện đổi quà.
Trang 27Hình 3.7: Giao diện quà của tôi, lịch sử điểm.
27
Trang 28+ Giao diện còn chưa đẹp , linh hoạt; không xoay ngang được
+ Chức năng tìm kiếm chưa đầy đủ về tính năng lọc phòng
+ Chưa validation tất cả các trường dữ liệu
5 Tài liệu tham khảo.
- ChatGPT
- Youtube
- Bài giảng: https://www.youtube.com/@tincoder/playlists
- Tài liệu: app#0
https://developer.android.com/codelabs/build-your-first-android Tích hợp google map: https://www.youtube.com/watch?v=JzxjNNCYt_o
- Tài liệu Java Spring boot: https://spring.io/projects/spring-boot