Chương 1: Giới thiệu Chương này giới thiệu về bối cảnh và lý do lựa chọn đề tài, nêu rõ mục tiêu nghiên cứu và phạm vi của khóa luận. Ngoài ra, chương cũng trình bày về phương pháp nghiên cứu được sử dụng và cung cấp một tóm tắt về cấu trúc của khóa luận. Chương 2: Phân tích và thiết kế ứng dụng Chương này tập trung vào việc phân tích yêu cầu chức năng và phi chức năng của ứng dụng thương mại điện tử và ứng dụng đặt phòng. Nghiên cứu sẽ xác định các tính năng cần thiết và thiết kế giao diện người dùng hấp dẫn và thân thiện và các thuật toán sử dụng trong thiết kế.
Ngoài ra, chương cũng bao gồm thiết kế cơ sở dữ liệu cho ứng dụng. Chương 3: Triển khai và đánh giá ứng dụng Chương cuối cùng tập trung vào việc triển khai ứng dụng thương mại điện tử và ứng dụng đặt phòng trên nền tảng Flutter. Nghiên cứu sẽ mô tả quá trình triển khai và đánh giá hiệu suất, khả năng sử dụng và bảo mật của ứng dụng. Chương này cũng đưa ra kết luận về nghiên cứu và đề xuất các hướng phát triển tiềm năng cho tương lai.
Mỗi chương sẽ được chia thành các phần nhỏ để trình bày chi tiết các khía cạnh cụ thể của nghiên cứu. Ngoài ra, khóa luận cũng sẽ bao gồm một phần tổng kết cuối cùng để tóm tắt lại các kết quả chính và đưa ra những nhận định cuối cùng về nghiên cứu. 11 CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 2. Thiết kế giao diện người dùng Thiết kế giao diện người dùng đóng vai trò quan trọng trong việc tạo ra một trải nghiệm người dùng thú vị và thu hút trên cả ứng dụng web và di động.
Dưới đây là một số nguyên tắc và chiến lược thiết kế mà tôi đã áp dụng trong quá trình phát triển ứng dụng booking hotel trên nền tảng Flutter: Giao diện thân thiện và dễ sử dụng: Tạo ra một giao diện người dùng thân thiện và dễ sử dụng, đảm bảo rằng người dùng có thể tìm kiếm và đặt phòng một cách dễ dàng và thuận tiện. Thiết kế đồng nhất trên mọi nền tảng: Sử dụng các thành phần thiết kế đồng nhất như các biểu tượng, màu sắc và phông chữ để tạo ra một trải nghiệm người dùng nhất quán trên cả ứng dụng web và di động. Giao diện người dùng sử dụng web và trên android 12 Tối ưu hóa trải nghiệm di động: Đặc biệt chú trọng vào việc tối ưu hóa giao diện trên các thiết bị di động, bao gồm việc sắp xếp và tối ưu hóa kích thước các thành phần để phù hợp với kích thước màn hình nhỏ. Giao diện màn hình chính trên android Thiết kế tương tác hấp dẫn: Sử dụng các hiệu ứng tương tác như animation và transition để tạo ra một trải nghiệm người dùng mượt mà và hấp dẫn.
Tối ưu hóa quy trình đặt phòng: Thiết kế quy trình đặt phòng sao cho đơn giản và tiện lợi, giúp người dùng dễ dàng lựa chọn phòng và hoàn thành quy trình đặt phòng một cách nhanh chóng. Mẫu đặt phòng trên web Tích hợp hình ảnh và video chất lượng cao: Sử dụng hình ảnh chất lượng cao để hiển thị thông tin về các khách sạn và phòng, giúp người dùng có cái nhìn rõ ràng và chân thực về các lựa chọn của họ. Màn hình tìm kiếm đặt phòng trên web và android 14 Tối ưu hóa cho tính năng tìm kiếm: Thiết kế tính năng tìm kiếm sao cho linh hoạt và mạnh mẽ, cho phép người dùng lọc và tìm kiếm các khách sạn theo nhiều tiêu chí khác nhau như vị trí, giá cả và tiện nghi. Thông qua việc áp dụng các nguyên tắc và chiến lược thiết kế này, đã tạo ra một giao diện người dùng thú vị, thu hút và dễ sử dụng trên cả ứng dụng web và di động, giúp tạo ra một trải nghiệm người dùng tốt nhất cho ứng dụng booking hotel.
Thiết kế cơ sở dữ liệu Đề tài đã chọn sử dụng MongoDB [11] làm cơ sở dữ liệu cho ứng dụng của tôi. MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ linh hoạt và mạnh mẽ. Nó cho phép tôi lưu trữ và truy xuất dữ liệu một cách dễ dàng, mở rộng hệ thống và hỗ trợ các tính năng như truy vấn linh hoạt và đánh chỉ mục nhanh. Việc sử dụng MongoDB giúp tôi xây dựng một hệ thống lưu trữ dữ liệu hiệu quả và linh hoạt cho ứng dụng.1 Mô tả các bảng và trường dữ liệu Thiết kế cơ sở dữ liệu là một phần quan trọng trong quá trình xây dựng ứng dụng, đóng vai trò quan trọng trong việc lưu trữ, quản lý và truy xuất thông tin một cách hiệu quả và đáng tin cậy.
Trong phần này, giới thiệu và mô tả các bảng quan trọng trong cơ sở dữ liệu của chúng ta. Mỗi bảng đại diện cho một thực thể trong hệ thống và chứa các trường dữ liệu để lưu trữ thông tin liên quan. Các bảng này được thiết kế một cách cẩn thận và có mục đích để đáp ứng yêu cầu và tính năng của ứng dụng. Các bảng quan trọng bao gồm "user", "danh sách phòng", "danh sách đặt phòng", "danh sách đánh giá".
Từ các bảng trọng tâm để dung trong ứng dụng thì sơ đồ thiết kế cơ sở dữ liệu được hình thành 15 Hình 2. Sơ đồ thiết kế cơ sở dữ liệu các bảng quan trọng trong ứng dụng Bảng "user": chứa thông tin về người dùng trong hệ thống của bạn. Đây là nơi lưu trữ các thông tin cần thiết như tên người dùng, địa chỉ email, mật khẩu và vai trò của người dùng. Bảng này giúp xác định và quản lý thông tin cá nhân của người dùng, cho phép họ đăng nhập, thực hiện các hoạt động và tương tác với hệ thống.Gồm các trường: - Trường "_id": Mã định danh duy nhất cho mỗi người dùng.
- Trường "name": Tên người dùng. - Trường "email": Địa chỉ email của người dùng. - Trường "phone": Số điện thoại của người dùng. - Trường "password": Mật khẩu của người dùng.
- Trường "sex": Giới tính của người dùng. - Trường "birthday": Sinh nhật của người dùng. - Trường "status": Trạng thái tài khoản người dùng. - Trường "type": Loại tài khoản người dùng.
- Trường "Role": Vai trò của người dùng trong hệ thống. - Trường "create_at": Ngày tạo tài khoản của người dùng. Bảng "danh sách phòng"(“room”): chứa thông tin về các phòng có sẵn trong hệ thống. Các thông tin như tên phòng, mô tả, giá phòng và tình trạng hiện tại của phòng 16 được lưu trữ trong bảng này.
Bảng này giúp người dùng xem và tìm kiếm các phòng có sẵn để đặt. - Trường "_id": Mã định danh duy nhất cho mỗi phòng. - Trường "name": Tên phòng. - Trường " room_code ": Mã phòng.
- Trường "avatar": Ảnh đại diện của phòng. - Trường " status ": Trạng thái của phòng. - Trường " floors ": Số tầng của phòng. - Trường " price ": Giá của phòng.
- Trường " size ": Kích thước phòng. - Trường " bed ": Số giường ngủ của phòng. - Trường " room_content ": Giới thiệu về phòng. - Trường " category_id": Mã định danh hạng của phòng.
- Trường " albums ": Ảnh chụp của phòng. - Trường " created_at ": Ngày tạo tài khoản của phòng. - Trường " total_star ": Số sao đánh giá của phòng. - Trường " total_vote ": Số lượng đánh giá của phòng.
Bảng "danh sách đặt phòng"(“bookings”): lưu trữ thông tin về các đặt phòng được thực hiện bởi người dùng. Bảng này chứa các thông tin như người dùng liên quan đến đặt phòng, phòng liên quan đến đặt phòng, ngày đặt, ngày dự kiến đến, ngày dự kiến đi và số người ở trong phòng. Bảng này giúp ghi lại lịch sử đặt phòng và thông tin chi tiết về các đặt phòng. - Trường "_id": Mã định danh duy nhất cho lệnh đặt phòng.
- Trường " user_id ": Mã người đặt phòng. - Trường " room_id ": Mã phòng. - Trường " discount_id ": Mã mã giảm giá đặt phòng nếu có. - Trường " discount ": Số lượng mã giảm giá.
- Trường " status ": Trạng thái của lệnh đặt phòng. - Trường " status_payment ": Trạng thái thanh toán. - Trường " price ": Giá phòng. - Trường " total_money ": Số tiền phải thanh toán.
- Trường " amount_of_people ": Số lượng người. - Trường " payment_type ": Loại hình thanh toán. - Trường " note ": Ghi chú của khách hàng khi đặt phòng. - Trường " check_in ": Ngày nhận phòng.
- Trường " check_out ": Ngày trả phòng. - Trường " customer_name ": Tên khách hàng. - Trường " customer_email ": Email. - Trường " customer_phone ": Số điện thoại.
- Trường " room ": Số phòng. - Trường " created_at ": Thời gian đặt phòng. Bảng "danh sách đánh giá"(“vote”): chứa thông tin về các đánh giá được người dùng gửi về các phòng. Các thông tin như người dùng liên quan đến đánh giá, phòng liên 17 quan đến đánh giá, nội dung đánh giá và điểm đánh giá được lưu trữ trong bảng này.
Bảng này giúp người dùng chia sẻ trải nghiệm của họ và cung cấp thông tin đánh giá cho người dùng khác. - Trường "_id": Mã định danh duy nhất cho lượt đánh giá. - Trường " vote_content ": Đánh giá. - Trường " vote_number ": Lượt đánh giá sao.
- Trường " user_id ": Mã khách hàng đánh giá. - Trường " room_id ": Mã phòng đánh giá. - Trường " created_at ": Ngày khởi tạo đánh giá. Các thuật toán sử dụng Các thuật toán đóng vai trò quan trọng trong việc xử lý dữ liệu, tìm kiếm, sắp xếp, tối ưu hóa và giải quyết các vấn đề khác trong ứng dụng của chúng ta.
Chúng ta sẽ giới thiệu các thuật toán phổ biến và phù hợp với yêu cầu và tính năng của đề tài. Mỗi thuật toán sẽ được mô tả về cách hoạt động, ứng dụng và hiệu suất. Chúng ta cũng sẽ xem xét các thuật toán có thể được áp dụng trong các khía cạnh cụ thể của nghiên cứu. Ví dụ: trong đề tài sử dụng thuật toán tìm kiếm để tìm kiếm thông tin trong cơ sở dữ liệu, thuật toán sắp xếp để sắp xếp danh sách sản phẩm hoặc thuật tìm đường đi để tìm ra giải pháp tối ưu cho vấn đề tìm đường đi giữa các vị trí phòng.
Các thuật toán này đóng vai trò quan trọng trong việc xử lý dữ liệu và đưa ra quyết định thông minh. Thuật toán tìm kiếm nhị phân(“Binary Search”) Binary Search tìm kiếm một phần tử cụ thể bằng cách so sánh phần tử tại vị trí giữa nhất của tập dữ liệu. Nếu tìm thấy kết nối thì chỉ mục của phần tử được trả về.