Tính cấp thiết của đề tài
Trong thời đại công nghệ thông tin phát triển mạnh mẽ, thiết bị di động và Internet đã trở thành công cụ thiết yếu trong đời sống hàng ngày, từ mua sắm đến giải trí Sự bận rộn của con người yêu cầu các dịch vụ trực tuyến và giao hàng tận nơi ra đời, giúp tiết kiệm thời gian và công sức Tuy nhiên, việc tìm kiếm các mặt hàng thiết yếu như gạo trên các trang bán hàng trực tuyến vẫn gặp nhiều khó khăn do sự hạn chế về chủng loại, giá cả và chất lượng Nhận thấy vấn đề này, nhóm chúng tôi quyết định phát triển một ứng dụng di động trên nền tảng Android, nhằm cung cấp nhiều lựa chọn cho người dùng về các mặt hàng thiết yếu trong cuộc sống hàng ngày của người dân Việt Nam.
Mục đích của đề tài
Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK
Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ
Xây dựng ứng dụng bán gạo trên nền tảng Andriod áp dụng SDK và Firebase
Cách tiếp cận và phương pháp nghiên cứu
Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK
Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ
Phạm vi nghiên cứu: Với bài luận văn này, nhóm em sẽ tập trung tìm hiểu và thực hiện các nội dung sau:
Tìm hiểu các nội dung, kiến thức về SDK và Firebase
Nhóm sẽ áp dụng kiến thức đã nghiên cứu, đặc biệt là công nghệ Firebase, để phát triển ứng dụng bán gạo trên nền tảng Android.
Kết quả dự kiến đạt được
Hiểu rõ kiến thức về SDK: định nghĩa SDK và phân biệt SDK
Hiểu rõ kiến thức về Firebase: định nghĩa Firebase và dịch vụ Firebase cung cấp cho nhà phát triển
Xây dựng thành công ứng dụng bán gạo trên nền tảng Android
CƠ SỞ LÝ THUYẾT
SDK
SDK – Software Development Kit là một tập hợp công cụ hỗ trợ cho việc phát triển phần mềm thông qua một nền tảng nào đó
Hầu hết các nhà phát triển ứng dụng cần sử dụng SDK để tích hợp các tính năng nâng cao như hiển thị quảng cáo và thông báo đẩy Cụ thể, lập trình Android yêu cầu SDK cho Java, trong khi ứng dụng iOS cần SDK cho Swift, và lập trình ứng dụng Windows yêu cầu NET Framework SDK đi kèm với NET.
SDK có thể bao gồm các API dưới dạng thư viện để giao tiếp với ngôn ngữ lập trình hoặc để kết nối với hệ thống phần cứng phức tạp trong môi trường nhúng Các công cụ phổ biến trong SDK thường là tiện ích gỡ lỗi phần mềm, thường được tích hợp trong môi trường phát triển tích hợp (IDE) Ngoài ra, SDK còn đi kèm với các mẫu mã (sample code) và tài liệu kỹ thuật (documentation) để hỗ trợ người dùng hiểu rõ hơn về các tài liệu tham khảo chính.
Android SDK: bộ công cụ phát triển ứng dụng trên nền tảng Android
Windows SDK: bộ công cụ phát triển ứng dụng chạy trên nền tảng Windows
Java SDK, hay còn gọi là JDK, là một phiên bản mở rộng của SDK, cụ thể là bộ công cụ dành riêng cho ngôn ngữ lập trình Java JDK cung cấp các công cụ cần thiết để xây dựng và phát triển các ứng dụng, applets và components bằng Java, không hỗ trợ các ngôn ngữ lập trình khác.
SDK mang lại nhiều tính năng hữu ích cho ứng dụng, giúp cải thiện trải nghiệm người dùng Chẳng hạn, nó cho phép xác định vị trí chính xác, tích hợp nhanh chóng và dễ dàng, đảm bảo độ chính xác của dữ liệu, đồng thời hỗ trợ việc triển khai, nâng cấp và loại bỏ các tính năng không còn cần thiết.
FIREBASE
1.2.1 Firebase là gì? Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Dịch vụ Firebase có thể được chia thành hai nhóm:
Phát triển và thử nghiệm ứng dụng của bạn: Realtime Database, Auth, Test Lab, Crashlytics, Cloud Functions, Firestore, Cloud Storage, Performance Monitoring, Crash Reporting, Hosting
Phát triển và thu hút đối tượng của bạn: Firebase Analytics, Invites, Cloud Messaging, Predictions, AdMob, Dynamic Links, Adwords, Remote Config, App Indexing
1.2.2.1 Lịch sử ra đời của Firebase
Firebase, trước đây là Evolve, được thành lập vào năm 2011 bởi Andrew Lee và James Tamplin Ban đầu, Evolve chỉ cung cấp cơ sở dữ liệu cho các ứng dụng chat, nhưng họ nhanh chóng nhận ra rằng khách hàng sử dụng sản phẩm của họ để lưu trữ thông tin khác, như tiến trình game Nhận thấy tiềm năng này, Lee và Tamplin đã tách mảng realtime ra và thành lập Firebase vào tháng 4 năm 2012 Đến tháng 10 năm 2014, Firebase chính thức gia nhập Google.
Cả Google và Firebase đều đang phát triển mạnh mẽ, với Firebase mở rộng nhanh chóng các dịch vụ của mình Google tận dụng đội ngũ nhân lực chất lượng cao và cơ sở hạ tầng hiệu quả từ Firebase mà không cần phải xây dựng lại từ đầu Hiện tại, Google đã chuyển giao quản lý các dịch vụ nền tảng hỗ trợ lập trình viên bên ngoài cho Firebase, bao gồm Cloud Messaging, AdMob và Analytics.
Firebase, theo định hướng của Google, hiện đã chính thức hỗ trợ các nền tảng Android, iOS và Web Thực tế, macOS cũng được hỗ trợ do chia sẻ nhiều mã nguồn với iOS, tuy nhiên, Google vẫn chưa công bố chính thức về điều này.
Firebase là một lựa chọn phổ biến cho các ứng dụng web trên desktop, nhưng tài liệu chính thức về Firebase cho macOS còn hạn chế Điều này dẫn đến việc các thư viện dành cho macOS có thể thiếu tính năng và không ổn định.
1.2.2.2 Dữ liệu thời gian thực – Firebase Realtime Database
Khi bạn đăng ký tài khoản trên Firebase và tạo một ứng dụng, bạn sẽ có ngay một cơ sở dữ liệu thời gian thực Dữ liệu được cung cấp dưới dạng JSON và tự động đồng bộ hóa đến mọi kết nối client Đối với các ứng dụng đa nền tảng, tất cả các client sẽ chia sẻ cùng một cơ sở dữ liệu và luôn nhận được các cập nhật dữ liệu mới nhất một cách tự động.
Hình 1.1 Cấu trúc dữ liệu của firebase
Tất cả dữ liệu được truyền qua kết nối an toàn SSL với chứng nhận 2048-bit Dữ liệu luôn được lưu trữ cục bộ và tự động cập nhật lên server Firebase khi có sự thay đổi Nếu dữ liệu cục bộ cũ hơn so với server, nó cũng sẽ được tự động cập nhật, đảm bảo rằng dữ liệu luôn mới nhất Trong trường hợp mất kết nối mạng, dữ liệu cục bộ sẽ được sử dụng thay thế.
1.2.2.3 Xác thực người dùng - Firebase Authentication
Using Firebase Authentication simplifies the creation of a secure authentication system while enhancing the sign-in and onboarding experience for end users.
Authentication được tạo bởi cùng một người trong Google Sign-in, Smart Lock, và Chrome Password Manager
Firebase cung cấp tính năng xác thực người dùng qua nhiều nền tảng như Email, Facebook, Twitter, GitHub, Google và cả xác thực nặc danh, giúp đơn giản hóa quy trình xác thực người dùng cho các ứng dụng của bạn.
Firebase Storage là dịch vụ lý tưởng cho việc lưu trữ và quản lý nội dung do người dùng ứng dụng tạo ra, bao gồm hình ảnh, video và các loại tệp dữ liệu khác.
Firebase Storage cung cấp API an toàn cho việc tải lên và tải xuống tệp từ ứng dụng của bạn mà không cần lo lắng về chất lượng kết nối mạng Được phát triển trên nền tảng Google Cloud Platform, Firebase Storage mang lại nhiều lợi ích vượt trội Hệ thống tệp và thư mục của Firebase Storage được thiết kế đơn giản, giúp bạn dễ dàng quản lý dữ liệu.
Firebase Cloud Messaging (FCM) là dịch vụ miễn phí giúp kết nối hiệu quả giữa máy chủ và thiết bị, cho phép gửi và nhận tin nhắn cũng như thông báo trên các nền tảng iOS, Android và web, đồng thời tiết kiệm pin.
Bạn có thể gửi tin nhắn thông báo (giới hạn 2KB) và tin nhắn dữ liệu (giới hạn 4KB)
Sử dụng FCM, bạn có thể dễ dàng nhắm mục tiêu các thông điệp bằng cách áp dụng các phân đoạn đã được xác định trước hoặc tự tạo phân đoạn dựa trên nhân khẩu học và hành vi Bên cạnh đó, bạn còn có khả năng gửi tin nhắn đến một nhóm thiết bị đã đăng ký theo các chủ đề cụ thể.
FCM cho phép gửi tin nhắn ngay lập tức hoặc theo lịch trình trong múi giờ địa phương của người dùng, cùng với khả năng tùy chỉnh dữ liệu ứng dụng như mức độ ưu tiên, âm thanh và ngày hết hạn Một trong những điểm nổi bật của FCM là không yêu cầu mã hóa phức tạp Hệ thống này được tích hợp hoàn toàn với Firebase Analytics, cung cấp thông tin chi tiết về sự tương tác và theo dõi chuyển đổi hiệu quả.
Bạn có thể áp dụng A/B testing để kiểm tra các phiên bản khác nhau của thông báo và chọn phiên bản hiệu quả nhất cho mục tiêu đã đề ra.
KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
KHẢO SÁT HIỆN TRẠNG
Hình 2.1 Giao diện app Gạo Ngon
Xem danh sách loại sản phẩm
Xem danh sách sản phẩm theo loại
Xem chi tiết sản phẩm
Thêm sản phẩm vào giỏ hàng
Xem lịch sử đặt hàng
Gọi điện, gửi email, truy cập website nhà cung cấp
Sửa thông tin tài khoản
Giao diện đơn giản, sáng tạo
Đảm bảo các chức năng cơ bản của ứng dụng đặt hàng
Thiếu chức năng tìm kiếm sản phẩm
Ứng dụng tải chậm, thường lỗi không hiển thị thông tin
2.1.2 Gạo Bách Khoa Duy Nhất
Hình 2.2 Giao diện app Gạo Bách Khoa Duy Nhất
Xem danh sách sản phẩm
Xem chi tiết sản phẩm
Thêm sản phẩm vào giỏ hàng
Tìm kiếm sản phẩm theo tên
Chat với nhà cung cấp
Giới thiệu thông tin liên hệ công ty
Sửa thông tin tài khoản
Xem danh sách đơn hàng
Xem danh sách chi nhánh
Đảm bảo đầy đủ chức năng cơ bản của ứng dụng đặt hàng
Giao diện chưa tối ưu, nhiều màn hình màu chữ khó nhìn
Ứng dụng tải chậm, lỗi đường dẫn
Nhiều chức năng chưa hoàn thiện và không sử dụng được, nhiều chức năng chưa có dữ liệu
Qua khảo sát các ứng dụng đặt gạo, chúng tôi đã xác định những chức năng thiết yếu cần có Đồng thời, việc phân tích ưu điểm và hạn chế của các ứng dụng này cũng cung cấp những lưu ý quan trọng, giúp cải thiện và hoàn thiện ứng dụng của chúng tôi.
XÁC ĐỊNH YÊU CẦU
2.2.1 Nhận diện tác nhân và các chức năng trong sơ đồ use case
Bảng 2.1 Nhận diện tác nhân và các chứ c năng trong sơ đồ use case
Người dùng - Đăng ký tài khoản
- Đăng nhập/Đăng xuất (với tài khoản đã đăng ký)
- Xem loại sản phẩm, sản phẩm
- Thêm đánh giá và bình luận sản phẩm
- Xem danh sách đánh giá và bình luận sản phẩm
- Thêm, xóa sản phẩm trong giỏ hàng
- Nhắn tin với cửa hàng
- Gọi điện đến cửa hàng
Người quản lý - Thêm, xóa, sửa Banner
- Thêm, xóa, sửa sản phẩm
- Thêm, xóa, sửa loại sản phẩm
- Xem, xóa, sửa đơn hàng
- Đăng nhập/Đăng xuất (với tài khoản mặc định)
Mô tả Đăng nhập vào ứng dụng
Khách hàng và chủ cửa hàng cần hiểu rõ các tác nhân kích hoạt ứng dụng Để kích hoạt, ứng dụng phải không đang trong phiên làm việc, và tài khoản đăng nhập phải được đăng ký với hệ thống.
Luồng sự kiện chính 1 Mở ứng dụng
2 Chọn chức năng đăng nhập
3 Nhập số điện thoại và mật khẩu
5 Hệ thống kiểm tra thông tin
Nếu thông tin đúng: Chuyển đến bước 6
Nếu số điện thoại sai: Hiển thị thông báo “Tài khoản không tồn tại” Quay lại bước 3
Nếu mật khẩu sai: Hiển thị thông báo “Sai mật khẩu” Quay lại bước 3
6 Hiển thị màn hình chính của ứng dụng với thông tin của tài khoản đăng nhập
Biến thể Số điện thoại hoặc mật khẩu để trống: Vô hiệu hóa nút Đăng nhập
Số điện thoại không phải 10 số hoặc mật khẩu ít hơn 6 kí tự: Vô hiệu hóa nút Đăng nhập
Bảng 2.3 Usecase đăng xu ất
Mô tả Đăng xuất khỏi phiên làm việc
Tác nhân kích hoạt Khách hàng, chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Nhấp chọn Menu
3 Thoát khỏi phiên làm việc, trở lại màn hình chờ của ứng dụng
Mô tả Đăng ký tài khoản mới
Tác nhân kích hoạt Khách hàng Điều kiện kích hoạt Ứng dụng đang không trong phiên làm việc Tài khoản chưa đăng ký với hệ thống
Luồng sự kiện chính 1 Mở ứng dụng
2 Chọn chức năng đăng ký
3 Nhập họ tên, số điện thoại và mật khẩu
5 Hệ thống kiểm tra thông tin
Nếu thông tin đúng: Chuyển đến bước 6
Nếu số điện thoại đã được đăng ký: Hiển thị thông báo
“Số điện thoại đã được đăng ký” Quay lại bước 3
6 Hiển thị màn hình chính của ứng dụng với thông tin của tài khoản vừa đăng ký
Bảng 2.5 Usecase quên mật khẩu
Tên usecase Quên mật khẩu
Mô tả Quên mật khẩu đăng nhập
Tác nhân kích hoạt Khách hàng Điều kiện kích hoạt Ứng dụng đang không trong phiên làm việc
Luồng sự kiện chính 1 Mở ứng dụng
2 Chọn chức năng đăng nhập
6 Mở thông báo, Nhấp vào mật khẩu tạm thời gửi về ứng dụng
2.2.3.5 Usecase cập nhật tài khoản
Bảng 2.6 Usecase cập nhật tài khoản
Tên usecase Cập nhật tài khoản
Cập nhật thông tin tài khoản bao gồm họ tên và số điện thoại là một bước quan trọng Tác nhân kích hoạt cho quá trình này là khách hàng, và điều kiện cần thiết là ứng dụng phải đang trong phiên làm việc.
Luồng sự kiện chính 1 Nhấp chọn Menu
2 Nhấp nút Chỉnh sửa thông tin
3 Thay đổi thông tin rồi bấm Lưu
2.2.3.6 Usecase xem lịch sử đơn hàng
Bảng 2.7 Usecase xem l ịch sử đơn hàng
Tên usecase Xem lịch sử đơn hàng
Mô tả Xem lịch sử đơn hàng
Tác nhân kích hoạt Khách hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Nhấp chọn Menu
3 Hiển thị danh sách đơn hàng đã đặt
Bảng 2.8 Usecase xem gi ỏ hàng
Tên usecase Xem giỏ hàng
Mô tả Xem giỏ hàng hiện tại
Tác nhân kích hoạt Khách hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính/màn hình danh sách sản phẩm/màn hình chi tiết sản phẩm, Nhấp chọn Giỏ hàng
2 Hiển thị màn hình giỏ hàng với danh sách các sản phẩm hiện có trong giỏ hàng
Mô tả Đặt hàng sản phẩm
Tác nhân kích hoạt Khách hàng
21 Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính/màn hình danh sách sản phẩm/màn hình chi tiết sản phẩm, Nhấp chọn Giỏ hàng
3 Nhập địa chỉ, ghi chú, chọn phương thức thanh toán
Mô tả Đánh giá sản phẩm
Tác nhân kích hoạt Khách hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chi tiết sản phẩm, Nhấp chọn nút Đánh giá
2 Đánh giá sao và viết bình luận
2.2.3.10 Usecase thêm loại sản phẩm
Bảng 2.11 Usecase thêm lo ại sản phẩm
Tên usecase Thêm loại sản phẩm
Mô tả Thêm loại sản phẩm vào danh sách loại sản phẩm
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn nút Thêm
2 Nhập tên loại sản phẩm
Ngoại lệ Không Nhấp nút Tải lên mà Nhấp nút Đồng ý thì quá trình tạo loại sản phẩm mới không thành công Trở lại màn hình chính
Bảng 2.12 Usecase thêm s ản phẩm
Tên usecase Thêm sản phẩm
Mô tả Thêm sản phẩm vào danh sách sản phẩm theo loại
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn loại sản phẩm muốn thêm
3 Nhập tên sản phẩm, mô tả sản phẩm, giá sản phẩm, mức giảm giá
Nếu bạn không nhấp vào nút Tải lên mà chỉ nhấn nút Đồng ý, quá trình tạo sản phẩm mới sẽ không thành công Hãy quay lại màn hình danh sách sản phẩm theo loại để tiếp tục.
2.2.3.12 Usecase cập nhật sản phẩm
Bảng 2.13 Usecase cập nhật sản phẩm
Tên usecase Cập nhật sản phẩm
Mô tả Cập nhật thông tin sản phẩm
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn loại sản phẩm
2 Nhấp chọn giữ trên sản phẩm muốn cập nhật
4 Thay đổi thông tin cần thiết
2.2.3.13 Usecase quản lý đơn hàng
Bảng 2.14 Usecase qu ản lý đơn hàng
Tên usecase Quản lý đơn hàng
Mô tả Quản lý đơn hàng
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn Menu
3 Hiển thi danh sách đơn hàng với các chức năng cập nhật trạng thái, xóa đơn hàng, xem chi tiết đơn hàng
2.2.3.14 Usecase cập nhật trạng thái đơn hàng
Bảng 2.15 Usecase cập nhật trạng thái đơn hàng
Tên usecase Cập nhật trạng thái đơn hàng
Mô tả Cập nhật trạng thái đơn hàng
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn Menu
3 Trên đơn hàng cần cập nhật, Nhấp chọn nút Sửa
4 Chọn trạng thái đơn hàng
Nếu người dùng chọn trạng thái đơn hàng là "Không", quá trình cập nhật trạng thái đơn hàng sẽ không thành công và hệ thống sẽ quay lại màn hình danh sách đơn hàng.
2.2.3.15 Usecase xem chi tiết đơn hàng
Bảng 2.16 Usecase xem chi ti ết đơn hàng
Tên usecase Xem chi tiết đơn hàng
Mô tả Xem chi tiết đơn hàng
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 1 Trên màn hình chính Nhấp chọn Menu
3 Trên đơn hàng cần xem chi tiết, Nhấp chọn nút Chi tiết
4 Hiển thị chi tiết đơn hàng
Bảng 2.17 Usecase xóa đơn hàng
Tên usecase Xóa đơn hàng
Mô tả Xóa đơn hàng
Tác nhân kích hoạt Chủ cửa hàng Điều kiện kích hoạt Ứng dụng đang trong phiên làm việc
Luồng sự kiện chính 3 Trên màn hình chính Nhấp chọn Menu
5 Trên đơn hàng cần xem chi tiết, Nhấp chọn nút Xóa
6 Đơn hàng được chọn bị xóa khỏi danh sách
THIẾT KẾ PHẦN MỀM
THIẾT KẾ HỆ THỐNG
Hình 3.1 Sơ đồ sequence diagram đăng nhập
Hình 3.2 Sơ đồ sequence diagram đăng ký
Hình 3.3 Sơ đồ sequence diagram đánh giá sản phẩm
Hình 3.4 Sơ đồ sequence diagram đặt hàng
Hình 3.5 Sơ đồ sequence diagram sửa loại sản phẩm
Hình 3.6 Sơ đồ sequence diagram thêm loại sản phẩm
Hình 3.7 Sơ đồ sequence diagram xóa loại sản phẩm
Hình 3.8 Sơ đồ sequence diagram tìm kiếm sản phẩm
THIẾT KẾ DỮ LIỆU
3.2.1 Mô hình cơ sở dữ liệu dạng JSON
Hình 3.9 Cơ sở dữ liệu node Banner dạng JSON
Hình 3.10 Cơ sở dữ liệu node loại sản phẩm dạng JSON
Hình 3.11 Cơ sở dữ liệu node đánh giá và bình luận dạng JSON
Hình 3.12 Cơ sở dữ liệu node đơn hàng dạng JSON
Hình 3.13 Cơ sở dữ liệu node sản phẩm dạng JSON
Hình 3.14 Cơ sở dữ liệu node thông báo dạng JSON
Hình 3.15 Cơ sở dữ liệu node Admin và người dùng dạng JSON
3.2.2 Lược đồ dữ liệu quan hệ
Hình 3.16 Lượt đồ dữ liệu quan hệ
3.2.3 Mô tả cơ sở dữ liệu
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 idBanner Mã Banner string PK(Primary Key)
Bảng 3.2 Bảng loại sản phẩm
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 idCategory Mã loại sản phẩm string PK(Primary Key)
2 image Hình loại sản phẩm string
3 name Tên sản phẩm string
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 idRating Mã đánh giá string PK(Primary Key)
2 comment Hình loại sản phẩm string
3 rateValue Tên sản phẩm string
4 riceId Mã sản phẩm String Khóa ngoại
5 userPhone Số điện thoại người dùng String
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 idRequests Mã đơn hàng string PK(Primary Key)
2 name Tên Người dùng string
3 phone Số điện thoại người dùng string
4 address Địa chỉ người dùng string Khóa ngoại
5 comment Ghi chú giao nhận string
6 rices Danh sách sản phẩm đặt mua string
7 ricesId Mã sản phẩm đặt mua string
8 image Hình ảnh sản phẩm string
9 discount Giảm giá sản phẩm string
10 price Giá sản phẩm string
11 producId Mã sản phẩm string
12 productName Tên sản phẩm string
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 riceId Mã sản phẩm string PK(Primary Key)
2 image Hình loại sản phẩm string
3 name Tên sản phẩm string
4 MenuId Mã loại sản phẩm string Khóa ngoại
5 description Mô tả sản phẩm string
6 discount Giảm giá sản phẩm string
7 price Giá sản phẩm string
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 phone Số điện thoại người dùng String PK(Primary Key)
Phân biệt quyền gửi thông báo giữa Admin và Người dùng
Id của người dùng, Id lưu chuỗi token của thiết bị mà người đó đang đăng nhập để có thể gửi thông báo đến thiết bị
STT Tên thuộc tính Mô tả Kiểu dữ liệu Ghi chú
1 Phone Mã User string PK(Primary Key)
4 code Số điện thoại string
5 inStaff Phân quyền Admin và
Người dùng boolean true: Admin false: Người dùng
THIẾT KẾ GIAO DIỆN
Thiết kế giao diện Admin
4.1.1 Giao diện màn hình chờ
Hình 4.1 Giao diện màn hình chờ của Admin
Bảng 4.1 Danh sách xử lý màn hì nh chờ
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhấp chọn button đăng nhập Chỉ Admin mới có màn hình đăng nhập này
4.1.2 Giao diện màn hình đăng nhập
Hình 4.2 Giao diện đăng nhập của Admin
Bảng 4.2 Danh sách xử lý màn hì nh đăng nh ập của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Chọn EditText “Nhập số diện thoại” Điền đúng số diện thoại
2 Mật khẩu Chọn EditText “Nhập khẩu” Điền đúng mật khẩu
3 Hiện thị mật khẩu Nhấp chọn Đã điền mật khẩu
Nhớ đăng nhập Nhấp vào button “nhớ đăng nhập” Điền đầy đủ thông tin
5 Đăng nhập Nhấp vào button “ĐĂNG
Phải điền đầy đủ thông tin và hợp lệ
4.1.3 Giao diện màn hình Trang chủ
Hình 4.3 Màn hình trang quản lý của Admin
Bảng 4.3 Danh sách xử lý trang quản lý
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Đến danh mục quản lý
Nhấp chọn button Menu Chỉ duy nhất Admin mới có quyền xem giao diện này
2 Đến danh sách sản phẩm
Nhấp vào ảnh Chỉ duy nhất Admin mới có quyền xem giao diện này
Chỉnh sửa loại sản phẩm
Nhấp giữ ảnh Chỉ duy nhất Admin mới có quyền xem giao diện này
Nhấp vào button thêm loại sản phẩm
Chỉ duy nhất Admin mới có quyền xem giao diện này
Hình 4.4 Giao diện trang Menu của Admin
Bảng 4.4 Danh sách xử lý trang Menu của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Trang chủ Nhấp vào liên kết “Trang chủ”
Chỉ duy nhất Admin mới có quyền xem giao diện này
Banner Nhấp vào liên kết
Chỉ duy nhất Admin mới có quyền xem giao diện này
3 Đơn hàng Nhấp vào liên kết “Đơn hàng”
Chỉ duy nhất Admin mới có quyền xem giao diện này
4 Đăng xuất Nhấp vào liên kết “Đăng xuất”
Chỉ duy nhất Admin mới có quyền xem giao diện này
4.1.5 Giao diện màn hình Banner
Hình 4.5 Giao diện màn hình Banner của Admin
Bảng 4.5 Danh sách xử lý màn hì nh Banner của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhấp giữ hình ảnh Chỉ duy nhất Admin mới có quyền xem giao diện này
Thêm Banner Nhấp vào button thêm
Chỉ duy nhất Admin mới có quyền xem giao diện này
4.1.6 Giao diện quản lý Banner
Hình 4.6 Giao diện quản lý Banner của Admin
Bảng 4.6 Danh sách xử lý màn hì nh quản lý Banner của Admi n
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Cập nhật Nhấp vào liên kết “Cập nhật”
Chỉ duy nhất Admin mới có quyền giao diện này xem
Xóa Banner Nhấp vào liên kết “Xóa
Chỉ duy nhất Admin mới có quyền xem giao diện này
Nhập dữ liệu và editText
“Nhập mã Banner” Đã Nhấp vào liên kết “Cập nhật”
Nhập dữ liệu và editText
Chỉnh sửa hình ảnh Banner
Nhấp vào button “Chọn Sản phẩm”
6 Tải ảnh mới Nhấp vào button “TẢI LÊN” Đã chọn ảnh mới
7 Hủy Cập nhật Nhấp vào Button “Không”
Lưu cập nhật Nhấp vào button “Cập nhật” Có thay đổi thông tin
Hình 4.7 Giao diện thêm Banner của Admin
Bảng 4.7 Danh sách xử lý thêm Banner của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Mã Banner Nhập dữ liệu và editText
Chỉ duy nhất Admin mới có quyền xem giao diện này
Tên Banner Nhập dữ liệu và editText
Chỉ duy nhất Admin mới có quyền xem giao diện này
Nhấp vào button “Chọn Sản phẩm”
Chỉ duy nhất Admin mới có quyền xem giao diện này
Nhấp vào button “TẢI LÊN” Đã chọn ảnh để tải lên
Nhấp vào button “Tạo” Điền đầy đủ thông tin
Hình 4.8 Giao diện trang đơn hàng của Admin
Bảng 4.8 Danh sách xử lý trang đơn hàng củ a Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Sử đơn hàng Nhấp vào button “sửa” Chỉ duy nhất Admin mới có quyền xem giao diện này
Xóa đơn hàng Nhấp vào button “Xóa” Chỉ duy nhất Admin mới có quyền xem giao diện này
Xem chi tiết đơn hàng
Nhấp vào button “Chi tiết”
Chỉ duy nhất Admin mới có quyền xem giao diện này
Xem địa chỉ người đặt hàng
Nhấp vào button “Bản đồ”
Xem địa chỉ trên google Maps
4.1.9 Giao diện sửa đơn hàng
Hình 4.9 Giao diện màn hình sửa đơn hàng của Admin
Bảng 4.9 Danh sách xử lý trang sửa đơn hàng của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Cập nhật trạng thái đơn hàng
Chỉ Admin mới có quyền xem giao diện này
2 Hủy cập nhật Nhấp vào button “Không”
3 Lưu cập nhật Nhấp vào button “Cập nhật” Đã chọn trạng thái mới
4.1.10 Giao diện quản lý loại sản phẩm
Hình 4.10 Giao diện quản lý loại sản phẩm của Admin
Bảng 4.10 Danh sách xử lý trang quản lý loại sản phẩm của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Cập nhật Nhấp vào liên kết “Cập nhật”
Chỉ duy nhất Admin mới có quyền giao diện này xem
Nhấp vào liên kết “Xóa sản phẩm”
Chỉ duy nhất Admin mới có quyền xem giao diện này
Sửa tên loại sản phẩm
Nhập dữ liệu và editText
“Nhập Tên sản phẩm” Đã Nhấp vào liên kết “Cập nhật”
Chỉnh sửa hình ảnh loại sản phẩm
Nhấp vào button “Chọn ảnh”
Chọn ảnh mới từ thư viện ảnh
Tải ảnh mới lên Nhấp vào button “TẢI
LÊN” Đã chọn ảnh mới
Hủy Cập nhật Nhấp vào Button
Lưu cập nhật Nhấp vào button “Đồng ý”
Có thay đổi thông tin loại sản phẩm
4.1.11 Giao diện thêm loại sản phẩm
Hình 4.11 Giao diện trang thêm loại sản phẩm của Admin
Bảng 4.11 Danh sách xử lý trang thêm loại sản phẩm Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhập dữ liệu và editText
Chỉ duy nhất Admin mới có quyền xem giao diện này
Thêm ảnh loại sản phẩm
Nhấp vào button “thêm ảnh”
Chọn ảnh mới từ thư viện ảnh
3 Tải ảnh mới lên Nhấp vào button “tải lên” Đã chọn ảnh để tải lên
Hủy thêm loại sản phẩm
Lưu thêm loại sản phẩm
Nhấp vào button “Đồng ý” Điền đầy đủ thông tin
Hình 4.12 Giao diện sản phẩm của Admin
Bảng 4.12 Danh sách xử lý màn hì nh sản phẩm của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Quản lý sản phẩm Nhấp giữ hình ảnh Chỉ duy nhất Admin mới có quyền xem giao diện này
2 Thêm sản phẩm Nhấp vào button thêm sản phẩm
Chỉ duy nhất Admin mới có quyền xem giao diện này
4.1.13 Giao diện quản lý sản phẩm
Hình 4.13 Giao diện trang quản lý sản phẩm của Admin
Bảng 4.13 Danh sách xử lý trang quản lý sản phẩm của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Cập nhật Nhấp vào liên kết “Cập nhật”
Chỉ duy Admin mới có quyền xem giao diện này
2 Xóa sản phẩm Nhấp vào liên kết “Xóa sản phẩm”
Chỉ Admin mới có quyền xem giao diện này
3 Sửa tên loại sản phẩm
Nhập dữ liệu vào editText
“Nhập Tên sản phẩm” Đã Nhấp vào liên kết
Sửa mô tả sản phẩm
Nhập dữ liệu vào editText
“Nhập nhập mô tả sản phẩm”
Nhập dữ liệu vào editText
6 Chỉnh sửa giảm giá sản phẩm
Nhập dữ liệu và editText
7 Chỉnh sửa hình ảnh sản phẩm
Nhấp vào button “Chọn ảnh” Chọn ảnh mới từ thư viện ảnh
8 Tải ảnh mới lên Nhấp vào button “TẢI LÊN” Đã chọn ảnh mới
9 Hủy Cập nhật Nhấp vào Button “Không”
10 Lưu cập nhật Nhấp vào button “Đồng ý” Có thay đổi thông tin sản phẩm
4.1.14 Giao diện thêm sản phẩm
Hình 4.14 Giao diện theo sản phẩm của Admin
Bảng 4.14 Danh sách xử lý trang thêm sản phẩm của Admin
4.1.15 Giao diện chi tiết đơn hàng
Hình 4.15 Giao diện trang chi tiết đơn hàng của Admin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Tên sản phẩm Nhập dữ liệu và editText “Nhập Tên sản phẩm”
Sửa mô tả sản phẩm
Nhập dữ liệu vào editText “Nhập nhập mô tả sản phẩm”
Giá sản phẩm Nhập dữ liệu vào editText “giá sản phẩm”
4 Giảm giá Nhập dữ liệu và editText “giảm giá”
Thêm hình ảnh sản phẩm
Nhấp vào button “Chọn ảnh” Chọn ảnh mới từ thư viện ảnh
6 Tải ảnh mới Nhấp vào button “TẢI LÊN” Đã chọn ảnh mới
7 Hủy việc thêm Nhấp vào Button “Không”
8 Lưu việc thêm Nhấp vào button “Đồng ý” Đầy đủ thông tin
Hình 4.16 Giao diện trang bản đồ của Admin
Thiết kế giao diện người dùng
4.2.1 Giao diện màn hình chờ
Hình 4.17 Giao diện màn hình chờ
Bảng 4.15 Danh sách xử lý màn hì nh chờ
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhấp chọn button đăng ký Khách chưa có tài khoản phải đăng ký
2 Đăng nhập Nhấp chọn button đăng nhập Khách đã có tài khoản
Hình 4.18 Giao diện trang đăng ký
Bảng 4.16 Danh sách xử lý trang đăng ký
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Tên người dùng Nhập dữ liệu vào EditText
Số điện thoại Nhập dữ liệu vào EditText
Mật khẩu Nhập dữ liệu vào EditText
Phải có ít nhất 6 kí tự
4 Hiển thị mật khẩu Nhấp chọn Đã điền mật khẩu
5 Đăng ký Nhấp button “Đăng ký” Điền đầy đủ thông tin
6 Đăng nhập Nhấp liên kết “Đăng nhập” Đã có tài khoản
Hình 4.19 Giao diện trang đăng nhập
Bảng 4.17 Danh sách xử lý trang đăng nhập
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Số điện thoại Nhập dữ liệu vào EditText
2 Mật khẩu Nhập dữ liệu vào EditText
Phải có ít nhất 6 kí tự
3 Hiện mật khẩu Nhấp chọn Đã điền mật khẩu
4 Nhớ đăng nhập Click vào “Nhớ đăng nhập” Đã điền thông tin
5 Quên mật khẩu Nhấp liên kết “Quên mật khẩu” Không nhớ mật khẩu
6 Đăng nhập Nhấp button “Đăng nhập” Điền đầy đủ thông tin
7 Đăng ký Nhấp liên kết “Đăng ký” Chưa có tài khoản
4.2.4 Giao diện Quên mật khẩu
Hình 4.20 Giao diện trang quên mật khẩu
Bảng 4.18 Danh sách xử lý trang quên mặt khẩu
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhập dữ liệu vào EditText
Số điện thoại cần lấy mật khẩu
2 Gửi yêu cầu Nhấp chọn button “GỬI” Đã nhập số điện thoại
3 Quay lại trang đăng nhập
Nhấp vào button “ĐĂNG NHẬP”
Hình 4.21 Giao diện trang chủ
Bảng 4.19 Danh sách xử lý trang chủ
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Quản lý Menu Nhấp vào button Menu
Nhấp vào button tìm kiếm Đã nhập số điện thoại
3 Xem sản phẩm Nhấp vào hình của loại sản phẩm
Nhấp vào từng loại sản phẩm tương ứng với sản phẩm
4 Xem giỏ hàng Nhấp vào button Giỏ hàng
Xem sản phẩm đã thêm
Hình 4.22 Giao diện trang Menu
Bảng 4.20 Danh sách xử lý trang Menu
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Trang chủ Nhấp liên kết Trang chủ Quay về trang chủ
Nhấp vào liên kết chỉnh sửa thông tin
Dùng để thay đổi thông tin khách hàng
3 Yêu thích Nhấp vào liên kết yêu thích Xem danh sách sản phẩm đã yêu thích
4 Đơn hàng Nhấp vào liên kết đơn hàng Khách hàng xem đơn hàng đã đặt
Nhấp vào liên kết thay đổi mật khẩu
Người dùng đổi mật khẩu đăng nhập
6 Liên hệ Nhấp vào liên kết liên hệ Dùng để liên lạc với cửa hàng
7 Đăng xuất Nhấp vào liên kết Đăng xuất Thoát khỏi ứng dụng
4.2.7 Giao diện chỉnh sửa thông tin
Hình 4.23 Giao diện trang chỉnh thông tin
Bảng 4.21 Danh sách xử lý trang chỉnh thông tin
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhập dữ liệu vào EditText
Số điện thoại Nhập dữ liệu vào EditText
3 Lưu thay đổi Nhấp vào Button “LƯU” Đã nhập thông tin
Hình 2.24 Giao diện trang yêu thích
Bảng 4.22 Danh sách xử lý trang yêu thích
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Xem chi tiết sản phẩm
Nhấp vào hình ảnh Xem chi tiết sản phẩm
Nhấp vào image Giỏ hàng Thêm sản phẩm vào giỏ hàng
Xóa yêu thích Nhấp vào image và trượt về bên trái
Xóa sản phẩm khỏi danh sách yêu thích
Hình 4.25 Giao diện trang đơn hàng
Bảng 4.23 Danh sách xử lý trang đơn hàng
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Xem chi tiết đơn hàng
Nhấp vào button “chi tiết đơn hàng”
Khách hàng xem chi tiết đơn hàng của mình
Hủy đơn hàng Nhấp vào button “Hủy đơn hàng”
Khách hàng hủy đơn hàng đã đặt
4.2.10 Giao diện Thay đổi mật khẩu
Hình 4.26 Giao diện trang đổi mật khẩu
Bảng 4.24 Danh sách xử lý trang đổi mật khẩu
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhập mật khẩu Nhập dữ liệu vào EditText
Nhập đúng mật khẩu hiện tại
Mật khẩu mới Nhập dữ liệu vào EditText
Không trùng mật khẩu cũ và có ít nhất 6 kí tự
Nhập dữ liệu vào EditText
“nhập lại mật khẩu mới”
Giống mật khẩu mới vừa nhập
4 Hủy thay đổi Nhấp vào button “Hủy Bỏ”
Lưu thay đổi Nhấp vào button “Thay đổi” Điền đầy đủ thông tin và hợp lệ
Hình 4.27 Giao diện trang liên hệ
Bảng 4.25 Danh sách xử lý trang liên hệ
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Nhắn tin Nhấp vào image nhắn tin Khách hàng nhắn tin với cửa hàng
Gọi điện Nhấp vào image điện thoại Khách hàng gọi điện với cửa hàng
Hình 4.28 Giao diện trang giỏ hàng 4.2.12.2 Danh sách xử lý
Bảng 4.26 Danh sách xử lý trang giỏ hàng
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Giảm số lượng Nhấp vào button trừ
2 Tăng số lượng Nhấp vào button cộng
3 Xóa sản phẩm Nhấp giữ image và trượt sang trái Xóa khỏi giỏ hàng
4 Đặt hàng Nhấp vào button “đặt hàng”
5 Nhập địa chỉ Nhập dữ liệu vào EditText “nhập địa chỉ”
6 Bình luận Nhập dữ liệu vào EditText “nhập địa chỉ”
Ghi chú của người đặt hàng
7 Thanh toán Click vào thanh toán khi nhận hàng Trả tiền mặt
8 Bỏ đặt hàng Nhấp vào button “Không”
9 Đặt hàng Nhấp vào button “Gửi” Điền đủ thông tin
Hình 4.29 Giao diện trang sản phẩm
Bảng 4.27 Danh sách xử lý trang sản phẩm
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Tìm kiếm Nhấp vào image tìm kiếm
2 Chi tiết sản phẩm Nhấp vào image sản phẩm
Thêm vào giỏ hàng Nhấp vào image giỏ hàng Thêm sản phẩm vào giỏ hàng
Nhấp vài image trái tim Thêm sản phẩm vào danh sách yêu thích
Giỏ hàng Nhấp vào button giỏ hàng Xem sản phẩm trong giỏ hàng
4.2.14 Giao diện chi tiết sản phẩm
Hình 4.30 Giao diện trang chi tiết sản phẩm
Bảng 4.28 Danh sách xử lý trang chi tiết sản phẩm
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Giảm số lượng Nhấp vào button trừ
2 Tăng số lượng Nhấp vào button cộng
3 Thêm vào giỏ hàng Nhấp vào image giỏ hàng Thêm sản phẩm vào giỏ hàng
4 Đánh giá và bình luận sản phẩm
Nhấp vài image ngôi sao Đánh giá chất lượng và bình luận cho sản phẩm
5 Xem đánh giá và bình luận
Nhấp liên kết “Hiển thị đánh giá sản phẩm”
Xem sản phẩm trong giỏ hàng
6 Giỏ hàng Nhấp vào button giỏ hàng Xem sản phẩm trong giỏ hàng
4.2.15 Giao diện đánh giá và bình luận sản phẩm
Hình 4.31 Giao diện trang đánh giá và bình luận sản phẩm
Bảng 4.29 Danh sách xử lý trang đánh giá và bình lu ận
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
1 Đánh giá Click vào các image ngôi sao Mức độ đánh giá từ thấp tới cao (1 – 5 sao)
Bình luận Nhập liệu vào editText “Vui lòng viết bình luận vào đây”
Người dùng bình luận về sản phẩm
3 Hủy bỏ Nhấp vào button hủy bỏ
Lưu đánh giá và bình luận
Nhấp vào button gửi đi
Hình 4.32 Giao diện trang tìm kiếm
Bảng 4.31 Danh sách xử lý trang tìm kiếm
STT Tên xử lý Điều kiện gọi thực hiện Ghi chú
Chọn gạo cần tìm Nhấp vào tên gạo Chỉ tìm kiếm tên gạo có sẳn
2 Đi đến tìm kiếm Nhấp vào button Search Dẫn đến sản phẩm càn tìm
Xóa tên gạo đang tìm
4 Quay về Nhấp vào button mủi tên
4.2.17 Giao diện chi tiết đơn hàng
Hình 4.33 Giao diện trang chi tiết đơn hàng
4.2.18 Giao diện xem đánh giá và bình luận
Hình 4.34 Giao diện xem đánh giá và bình luận sản phẩm
CÀI ĐẶT VÀ KIỂM THỬ
CÀI ĐẶT
5.1.1 Cài đặt Firebase cho ứng dụng
Vào trang firebase.google.com Sau khi đăng nhập, vào Go to console, chọn New project Nhập tên project và package cho project, ta được:
Hình 5.1 Tạo tên project và package cho project
Upload dữ liệu trong Realtime Database và hình ảnh trong Storage
Hình 5.2 Upload dữ liệu trong Realtime Database
Hình 5.3 Upload hình ảnh trong Storage
5.1.1.2 Kết nối Firebase và Project trên Android
Vào Overview trên trang Firebase chọn project setting và tải file “google- services.json”
Hình 5.4 Tải google - services.json
Sau khi tải về copy file vào thư mục project/app Vào project trên Android Studio, thêm các compile như hình
Import các library cần thiết
Trong ứng dụng, nhóm đã sử dụng nhiều thư viện hỗ trợ cho giao diện người dùng (UI) cũng như xử lý các nghiệp vụ và chức năng Điều này giúp ứng dụng hoạt động hiệu quả hơn, dễ dàng tiếp thu công nghệ mới và phát triển tốt nhờ vào những tính năng hỗ trợ từ các thư viện này.
5.1.2 Thư viện hỗ trợ Firebase
Bảng 5.1 Thư viện hỗ trợ Firebase
STT Thư viện Chức năng
'com.google.firebase:firebase-database:19.2.0' Hỗ trợ sử dụng Realtime
Database trên Firebase Lưu toàn bộ cơ sở dữ liệu của ứng dụng
'com.google.firebase:firebase-auth:19.2.0'
Hỗ trợ xác thực người dùng trên Firebase (đăng ký, đăng nhập, reset mật khẩu)
'com.google.firebase:firebase-storage:19.2.0'
Hỗ trợ sử dụng Strorage trên Firebase Dùng lưu kho hình ảnh, video của ứng dụng
4 'com.google.firebase:firebase-core:17.2.1' Cho phép sử dụng Firebase
5.1.2.2 Thư viện hỗ trợ Google maps
Bảng 5.2 Thư viện hỗ trợ Google maps
STT Thư viện Chức năng
1 'com.google.android.gms:playservices- maps:16.1.0' Đăng ký sử dụng dịch vụ maps
2 'com.google.android.gms:playservices- location:16.0.0'
Hỗ trợ những chức năng liên quan đến trị trí trên maps Dùng để tìm vị trí quán ăn, vị trí người dùng trong ứng dụng
5.1.2.3 Thư viện hỗ trợ Phông chữ
Bảng 5.3 Thư viện hỗ trợ Phông chữ
STT Thư viện Chức năng
1 'uk.co.chrisjenx: calligraphy:2.3.0' Hỗ trợ hầu hết những chức năng phông chữ trên app Dùng load
5.1.2.4 Môi trường thử nghiệm và cài đặt
Điện thoại di động có hệ điều hành Android (Smart phone, ).
KIỂM THỬ
Bảng 5.4 Kiểm thử phần mềm
Test case description Test steps Expected
Login_01 Kiểm tra đăng nhập nhập rỗng
2 Chọn chức năng đăng nhập
Nút Đăng nhập vô hiệu hóa, không thể thực hiện đăng nhập
Login_02 Kiểm tra đăng nhập sai cấu trúc số điện thoại
2 Chọn chức năng đăng nhập
3 Nhập 6 kí tự số bất kì vào trường Số điện thoại
Trường Số điện thoại hiện thông báo “Số điện thoại bắt buộc là 10 số”
Nút Đăng nhập vô hiệu hóa, không thể thực hiện đăng nhập
Login_03 Kiểm tra đăng nhập sai cấu trúc mật khẩu
2 Chọn chức năng đăng nhập
3 Nhập 5 kí tự số bất kì vào trường Mật khẩu
Trường Số điện thoại hiện thông báo
“Mật khẩu phải có ít nhất
6 kí tự” Nút Đăng nhập vô hiệu hóa, không thể thực hiện đăng nhập
Login_04 Kiểm tra đăng nhập thành công
2 Chọn chức năng đăng nhập
3 Nhập đúng số điện thoại và mật khẩu
4 Nhấp Đăng nhập Đăng nhập thành công, hiển thị mà hình trang chủ
Register_01 Kiểm tra đăng ký số điện đã đăng ký
2 Chọn chức năng đăng ký
3 Nhập số điện thoại đã đăng ký với hệ thống
Hiện thông báo “Số điện thoại đã được đăng ký”
Register_02 Kiểm tra đăng ký thành công
2 Chọn chức năng đăng ký
3 Nhập số điện thoại và thông tin đúng
4 Nhấp Đăng ký Đăng ký thành công, hiển thị mà hình trang chủ
Request_01 Kiểm tra đặt hàng đơn hàng rỗng
1 Đăng nhập ứng dụng người dùng
Hiện thông báo “Giỏ hàng của bạn trống”
Request_02 Kiểm tra đặt hàng thành công
1 Đăng nhập ứng dụng người dùng
3 Nhấp chọn thêm vào giỏ hàng
6 Nhập địa chỉ, ghi chú, chọn phương thức thanh toán
Hiện thông báo “Cám ơn bạn đã đặt hàng thành công”
Rate_01 Kiểm tra đánh giá sản phẩm
1 Đăng nhập ứng dụng người dùng
4 Đánh giá và viết bình luận
Hiện thông báo “Cảm ơn bạn đã gửi đánh giá”
Kiểm tra hủy đơn hàng
1 Đăng nhập ứng dụng người dùng
Hiện thông báo “Đơn hàng bị hủy”
4 Chọn đơn hàng trong danh sách
5 Nhấp chọn Huỷ đơn hàng
AddCAT_01 Kiểm tra thêm loại sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp chọn Thêm loại sản phẩm
3 Nhập tên loại sản phẩm, chọn ảnh, Nhấp Tải lên
Hiện thông báo “Loại sản phẩm mới đã được thêm vào”
AddPRO_01 Kiểm tra thêm sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp chọn loại sản phẩm
3 Nhấp chọn Thêm sản phẩm
4 Nhập đầy đủ thông tin
5 Chọn ảnh, Nhấp Tải lên
Hiện thông báo “Loại gạo mới đã được thêm vào”
DeleteCAT_01 Kiểm tra xóa loại sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp giữ vào loại sản phẩm muốn xóa
3 Nhấp chọn Xóa loại sản phẩm
Hiện thông báo “Mặt hàng đã xóa thành công”
DeletePRO_01 Kiểm tra xóa sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp chọn loại sản phẩm
3 Nhấp giữ vào sản phẩm muốn xóa
4 Nhấp chọn Xóa sản phẩm
Sản phẩm chọn xóa biến mất khỏi danh sách hiển thị
UpdateCAT_01 Kiểm tra cập nhật loại sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp giữ vào loại sản phẩm muốn cập nhật
4 Thay đổi thông tin cần thiết
Thông tin loại sản phẩm hiện thị thay đổi như đã cập nhật
UpdatePRO_01 Kiểm tra cập nhật sản phẩm
1 Đăng nhập ứng dụng người quản lý
2 Nhấp chọn loại sản phẩm
3 Nhấp giữ vào sản phẩm muốn cập nhật
5 Thay đổi thông tin cần thiết
Hiện thông báo “ Đã được chỉnh sửa”
Ưu điểm
4 Đề nghị cho bảo vệ hay không? ………
6 Điểm: ……… ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên 1: Phạm Thanh Bằng MSSV: 15110163
Họ và tên sinh viên 2: Ka’ Huừs Tam Bou MSSV: 15110385
Họ và tên sinh viên 3: Lê Thị Kiều Phụng MSSV: 15110284
Ngành: Công nghệ thông tin (Hệ sư phạm)
Tên đề tài: Xây dựng ứng dụng bán gạo trên nền tảng Android
Giáo viên phản biện: ThS Nguyễn Trần Thi Văn
1 Về nội dung đề tài và khối lượng thực hiện:
4 Đề nghị cho bảo vệ hay không? ………
Tp Hồ Chí Minh, ngày … tháng 01 năm 2020
ThS Nguyễn Trần Thi Văn
Chúng em xin gửi lời cảm ơn chân thành đến các thầy cô khoa Công nghệ Thông tin, trường Đại học Sư phạm Kỹ thuật TPHCM, vì đã hỗ trợ và tạo điều kiện thuận lợi cho chúng em trong quá trình thực hiện đề tài khóa luận tốt nghiệp này.
Chúng em xin chân thành cảm ơn cô Trương Thị Ngọc Phượng, người đã tận tình hướng dẫn và chỉ bảo chúng em trong suốt quá trình thực hiện tiểu luận này.
Chúng em xin gửi lời cảm ơn chân thành đến các thầy cô giảng viên của trường Đại học Sư phạm Kỹ thuật Tp.HCM, đặc biệt là khoa Công nghệ Thông tin, những người đã tận tâm giảng dạy và tạo điều kiện để chúng em tích lũy kiến thức quý báu trong suốt những năm học Ngoài ra, chúng em cũng xin cảm ơn các anh chị và bạn bè đã luôn ủng hộ, giúp đỡ và động viên chúng em trong quá trình nghiên cứu và thực hiện đề tài.
Mặc dù chúng em đã nỗ lực hoàn thành đề tài, nhưng vẫn không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự cảm thông cùng những ý kiến đóng góp từ quý thầy cô và các bạn để đề tài có thể hoàn thiện hơn.
TP.HCM, ngày 02 tháng 01 năm 2020 Nhóm sinh viên thực hiện Phạm Thanh Bằng
Ka Huừs Tam Bou ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
********* ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP
Họ và tên sinh viên 1: Phạm Thanh Bằng MSSV: 15110163
Họ và tên sinh viên 2: Ka’ Huừs Tam Bou MSSV: 15110385
Họ và tên sinh viên 3: Lê Thị Kiều Phụng MSSV: 15110284
Ngành: Công nghệ thông tin (Hệ sư phạm)
Tên đề tài: Xây dựng ứng dụng bán gạo trên nền tảng Android
Giáo viên hướng dẫn: ThS Trương Thị Ngọc Phượng
1.1 Tính cấp thiết của đề tài
1.2 Mục đích của đề tài
1.3 Cách tiếp cận và phương pháp nghiên cứu
1.4 Kết quả dự kiến đạt được
2.1 Chương 1: Cơ sở lí thuyết
2.2 Chương 2: Khảo sát hiện trạng và xác định yêu cầu
Khảo sát các ứng dụng liên quan
Nhận xét ưu nhược điểm
Nhận diện tác nhân và các chức năng
Xác định lược đồ Usecase
2.3 Chương 3: Thiết kế phần mềm
2.4 Chương 4: Thiết kế giao diện
2.5 Chương 5: Cài đặt và kiểm thử
Cài đặt Firebase cho ứng dụng
Thư viện hỗ trợ Firebase
Môi trường thử nghiệm và cài đặt
3.1 Những kết quả đạt được
STT THỜI GIAN CÔNG VIỆC PHỤ TRÁCH GHI
Khảo sát hiện trạng và phân tích yêu cầu Bằng + Phụng
16/10/2019 Vẽ và đặc tả usecase Phụng
23/10/2019 Thiết kế json trên Firebase Tam Bou
28/10/2019 Vẽ sequence diagram Tam Bou
21/10/2019 Thiết kế cơ sở dữ liệu Phụng + Bằng +
1/11/2019 Thiết kế giao diện Bằng + Phụng
2/11/2019 Cài đặt Firebase Tam Bou
Xử lý đăng nhập Admin và
11/11/2019 Xử lý đăng ký User Bằng
15/11/2019 Xử lý quên mật khẩu User Tam Bou
Xử lý nhớ đăng nhập Admin và User Phụng
20/11/2019 Xử lý trang chủ User Phụng
20/11/2019 Xử lý tìm kiếm User Tam Bou
Xử lý chỉnh sửa thông tin
Xử lý đánh giá và bình luận
30/11/2019 Xử lý giỏ hàng User Phụng + Bằng +
5/12/2019 Xử lý đơn hàng User Phụng + Bằng +
7/12/2019 Xử lý thay đổi mật khẩu User Tam Bou
19/11/2019 Xử lý liên hệ User Bằng
Xử lý đăng xuất User và
Xử lý quản lý đơn hàng Admin
Xử lý thêm loại sản phẩm
Xử lý xóa loại sản phẩm
Xử lý sửa loại sản phẩm
15/12/2019 Xử lý thêm sản phẩm Admin Bằng + Tam Bou
27 15/12/2019 Xử lý xóa sản phẩm Admin Bằng + Tam Bou
28 16/12/2019 Xử lý sửa sản phẩm Admin Bằng + Tam Bou
19/12/2019 Xử lý thêm, xóa, sửa Banner Bằng + Tam Bou
27/12/2019 Chỉnh sửa giao diện lần cuối Bằng + Phụng
1/1/2020 Viết báo cáo Phụng + Bằng +
34 2/1/2020 Quay video demo Phụng + Bằng +
TP.HCM, ngày 2 tháng 1 năm 2020 Ý kiến của giáo viên hướng dẫn
ThS Trương Thị Ngọc Phượng
1 Tính cấp thiết của đề tài 1
2 Mục đích của đề tài 1
3 Cách tiếp cận và phương pháp nghiên cứu 2
4 Kết quả dự kiến đạt được 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.2.2.1 Lịch sử ra đời của Firebase 4
1.2.2.2 Dữ liệu thời gian thực – Firebase Realtime Database 5
1.2.2.3 Xác thực người dùng - Firebase Authentication 5
1.2.2.13 Ưu điểm mà Google firebase mang lại cho bạn 9
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 11
2.1.2 Gạo Bách Khoa Duy Nhất 13
2.2.1 Nhận diện tác nhân và các chức năng trong sơ đồ use case 15
2.2.3.5 Usecase cập nhật tài khoản 19
2.2.3.6 Usecase xem lịch sử đơn hàng 19
2.2.3.10 Usecase thêm loại sản phẩm 21
2.2.3.12 Usecase cập nhật sản phẩm 23
2.2.3.13 Usecase quản lý đơn hàng 23
2.2.3.14 Usecase cập nhật trạng thái đơn hàng 24
2.2.3.15 Usecase xem chi tiết đơn hàng 24
CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 26
3.2.1 Mô hình cơ sở dữ liệu dạng JSON 31
3.2.2 Lược đồ dữ liệu quan hệ 33
3.2.3 Mô tả cơ sở dữ liệu 34
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN 37
4.1 Thiết kế giao diện Admin 37
4.1.1 Giao diện màn hình chờ 37
4.1.2 Giao diện màn hình đăng nhập 38
4.1.3 Giao diện màn hình Trang chủ 39
4.1.5 Giao diện màn hình Banner 41
4.1.6 Giao diện quản lý Banner 42
4.1.9 Giao diện sửa đơn hàng 45
4.1.10 Giao diện quản lý loại sản phẩm 46
4.1.11 Giao diện thêm loại sản phẩm 47
4.1.13 Giao diện quản lý sản phẩm 49
4.1.14 Giao diện thêm sản phẩm 50
4.1.15 Giao diện chi tiết đơn hàng 51
4.2 Thiết kế giao diện người dùng 52
4.2.1 Giao diện màn hình chờ 52
4.2.4 Giao diện Quên mật khẩu 55
4.2.7 Giao diện chỉnh sửa thông tin 58
4.2.10 Giao diện Thay đổi mật khẩu 61
4.2.14 Giao diện chi tiết sản phẩm 65
4.2.15 Giao diện đánh giá và bình luận sản phẩm 66
4.2.17 Giao diện chi tiết đơn hàng 68
4.2.18 Giao diện xem đánh giá và bình luận 68
CHƯƠNG 5: CÀI ĐẶT VÀ KIỂM THỬ 69
5.1.1 Cài đặt Firebase cho ứng dụng 69
5.1.1.2 Kết nối Firebase và Project trên Android 70
5.1.2 Thư viện hỗ trợ Firebase 71
5.1.2.2 Thư viện hỗ trợ Google maps 71
5.1.2.3 Thư viện hỗ trợ Phông chữ 72
5.1.2.4 Môi trường thử nghiệm và cài đặt 72
1 Những kết quả đạt được 77
Bảng 2.1 Nhận diện tác nhân và các chức năng trong sơ đồ use case 15
Bảng 2.5 Usecase quên mật khẩu 18
Bảng 2.6 Usecase cập nhật tài khoản 19
Bảng 2.7 Usecase xem lịch sử đơn hàng 19
Bảng 2.8 Usecase xem giỏ hàng 20
Bảng 2.11 Usecase thêm loại sản phẩm 21
Bảng 2.12 Usecase thêm sản phẩm 22
Bảng 2.13 Usecase cập nhật sản phẩm 23
Bảng 2.14 Usecase quản lý đơn hàng 23
Bảng 2.15 Usecase cập nhật trạng thái đơn hàng 24
Bảng 2.16 Usecase xem chi tiết đơn hàng 24
Bảng 2.17 Usecase xóa đơn hàng 25
Hình 3.16 Lượt đồ dữ liệu quan hệ 33
Bảng 3.2 Bảng loại sản phẩm 34
Bảng 4.1 Danh sách xử lý màn hình chờ 37
Bảng 4.2 Danh sách xử lý màn hình đăng nhập của Admin 38
Bảng 4.3 Danh sách xử lý trang quản lý 39
Bảng 4.4 Danh sách xử lý trang Menu của Admin 40
Bảng 4.5 Danh sách xử lý màn hình Banner của Admin 41
Bảng 4.6 Danh sách xử lý màn hình quản lý Banner của Admin 42
Bảng 4.7 Danh sách xử lý thêm Banner của Admin 43
Bảng 4.8 Danh sách xử lý trang đơn hàng của Admin 45
Bảng 4.9 Danh sách xử lý trang sửa đơn hàng của Admin 46
Bảng 4.10 Danh sách xử lý trang quản lý loại sản phẩm của Admin 46
Bảng 4.11 Danh sách xử lý trang thêm loại sản phẩm Admin 48
Bảng 4.12 Danh sách xử lý màn hình sản phẩm của Admin 49
Bảng 4.13 Danh sách xử lý trang quản lý sản phẩm của Admin 49
Bảng 4.14 Danh sách xử lý trang thêm sản phẩm của Admin 51
Bảng 4.15 Danh sách xử lý màn hình chờ 53
Bảng 4.16 Danh sách xử lý trang đăng ký 53
Bảng 4.17 Danh sách xử lý trang đăng nhập 54
Bảng 4.18 Danh sách xử lý trang quên mặt khẩu 55
Bảng 4.19 Danh sách xử lý trang chủ 56
Bảng 4.20 Danh sách xử lý trang Menu 57
Bảng 4.21 Danh sách xử lý trang chỉnh thông tin 58
Bảng 4.22 Danh sách xử lý trang yêu thích 59
Bảng 4.23 Danh sách xử lý trang đơn hàng 60
Bảng 4.24 Danh sách xử lý trang đổi mật khẩu 61
Bảng 4.25 Danh sách xử lý trang liên hệ 62
Bảng 4.26 Danh sách xử lý trang giỏ hàng 63
Bảng 4.27 Danh sách xử lý trang sản phẩm 64
Bảng 4.28 Danh sách xử lý trang chi tiết sản phẩm 65
Bảng 4.29 Danh sách xử lý trang đánh giá và bình luận 66
Bảng 4.31 Danh sách xử lý trang tìm kiếm 67
Bảng 5.1 Thư viện hỗ trợ Firebase 71
Bảng 5.2 Thư viện hỗ trợ Google maps 71
Bảng 5.3 Thư viện hỗ trợ Phông chữ 72
Bảng 5.4 Kiểm thử phần mềm 72
Hình 1.1 Cấu trúc dữ liệu của firebase 5
Hình 2.1 Giao diện app Gạo Ngon 11
Hình 2.2 Giao diện app Gạo Bách Khoa Duy Nhất 13
Hình 3.1 Sơ đồ sequence diagram đăng nhập 26
Hình 3.2 Sơ đồ sequence diagram đăng ký 27
Hình 3.3 Sơ đồ sequence diagram đánh giá sản phẩm 27
Hình 3.4 Sơ đồ sequence diagram đặt hàng 28
Hình 3.5 Sơ đồ sequence diagram sửa loại sản phẩm 29
Hình 3.6 Sơ đồ sequence diagram thêm loại sản phẩm 29
Hình 3.7 Sơ đồ sequence diagram xóa loại sản phẩm 30
Hình 3.8 Sơ đồ sequence diagram tìm kiếm sản phẩm 30
Hình 3.9 Cơ sở dữ liệu node Banner dạng JSON 31
Hình 3.10 Cơ sở dữ liệu node loại sản phẩm dạng JSON 31
Hình 3.11 Cơ sở dữ liệu node đánh giá và bình luận dạng JSON 31
Hình 3.12 Cơ sở dữ liệu node đơn hàng dạng JSON 32
Hình 3.13 Cơ sở dữ liệu node sản phẩm dạng JSON 32
Hình 3.14 Cơ sở dữ liệu node thông báo dạng JSON 32
Hình 3.15 Cơ sở dữ liệu node Admin và người dùng dạng JSON 33
Hình 4.1 Giao diện màn hình chờ của Admin 37
Hình 4.2 Giao diện đăng nhập của Admin 38
Hình 4.3 Màn hình trang quản lý của Admin 39
Hình 4.4 Giao diện trang Menu của Admin 40
Hình 4.5 Giao diện màn hình Banner của Admin 41
Hình 4.6 Giao diện quản lý Banner của Admin 42
Hình 4.7 Giao diện thêm Banner của Admin 43
Hình 4.8 Giao diện trang đơn hàng của Admin 44
Hình 4.9 Giao diện màn hình sửa đơn hàng của Admin 45
Hình 4.10 Giao diện quản lý loại sản phẩm của Admin 46
Hình 4.11 Giao diện trang thêm loại sản phẩm của Admin 47
Hình 4.12 Giao diện sản phẩm của Admin 48
Hình 4.13 Giao diện trang quản lý sản phẩm của Admin 49
Hình 4.14 Giao diện theo sản phẩm của Admin 50
Hình 4.15 Giao diện trang chi tiết đơn hàng của Admin 51
Hình 4.16 Giao diện trang bản đồ của Admin 52
Hình 4.17 Giao diện màn hình chờ 52
Hình 4.18 Giao diện trang đăng ký 53
Hình 4.19 Giao diện trang đăng nhập 54
Hình 4.20 Giao diện trang quên mật khẩu 55
Hình 4.21 Giao diện trang chủ 56
Hình 4.22 Giao diện trang Menu 57
Hình 4.23 Giao diện trang chỉnh thông tin 58
Hình 2.24 Giao diện trang yêu thích 59
Hình 4.25 Giao diện trang đơn hàng 60
Hình 4.26 Giao diện trang đổi mật khẩu 61
Hình 4.27 Giao diện trang liên hệ 62
Hình 4.29 Giao diện trang sản phẩm 64
Hình 4.30 Giao diện trang chi tiết sản phẩm 65
Hình 4.31 Giao diện trang đánh giá và bình luận sản phẩm 66
Hình 4.32 Giao diện trang tìm kiếm 67
Hình 4.33 Giao diện trang chi tiết đơn hàng 68
Hình 4.34 Giao diện xem đánh giá và bình luận sản phẩm 68
Hình 5.1 Tạo tên project và package cho project 69
Hình 5.2 Upload dữ liệu trong Realtime Database 69
Hình 5.3 Upload hình ảnh trong Storage 70
Hình 5.4 Tải google - services.json 70
DANH MỤC TỪ VIẾT TẮT
CSDL - Cơ sở dữ liệu
1 Tính cấp thiết của đề tài
Trong thời đại công nghệ thông tin phát triển mạnh mẽ, thiết bị di động đã trở thành công cụ thiết yếu trong đời sống hàng ngày, đặc biệt với sự bùng nổ của Internet Hầu hết các hoạt động như mua sắm, học tập và giải trí đều gắn liền với Internet, khiến việc tìm kiếm quán ăn và món ăn trở nên phổ biến Con người ngày càng bận rộn, nhu cầu làm mọi việc nhanh chóng và tiện lợi ngày càng cao, dẫn đến sự ra đời của các dịch vụ mua sắm trực tuyến và giao hàng tận nơi, giúp tiết kiệm thời gian và công sức Tuy nhiên, trong khi các mặt hàng gia dụng và điện tử được bán rộng rãi trên mạng, các sản phẩm thiết yếu như gạo lại thiếu sự đa dạng và chất lượng đảm bảo Điều này khiến người tiêu dùng gặp khó khăn trong việc tìm kiếm các loại gạo phù hợp Nhận thấy vấn đề này, nhóm chúng tôi quyết định phát triển một ứng dụng di động trên nền tảng Android, nhằm cung cấp nhiều lựa chọn cho người tiêu dùng Việt Nam về mặt hàng gạo, đáp ứng nhu cầu thiết yếu trong cuộc sống hàng ngày.
2 Mục đích của đề tài
Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK
Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ
Xây dựng ứng dụng bán gạo trên nền tảng Andriod áp dụng SDK và Firebase
3 Cách tiếp cận và phương pháp nghiên cứu
Tìm hiểu về SDK: định nghĩa SDK và phân biệt SDK
Tìm hiểu về Firebase: định nghĩa Firebase và các dịch vụ Firebase hỗ trợ
Phạm vi nghiên cứu: Với bài luận văn này, nhóm em sẽ tập trung tìm hiểu và thực hiện các nội dung sau:
Tìm hiểu các nội dung, kiến thức về SDK và Firebase
Nhóm sẽ áp dụng kiến thức đã nghiên cứu, đặc biệt là về Firebase, để phát triển một ứng dụng bán gạo trên nền tảng Android.
4 Kết quả dự kiến đạt được
Hiểu rõ kiến thức về SDK: định nghĩa SDK và phân biệt SDK
Hiểu rõ kiến thức về Firebase: định nghĩa Firebase và dịch vụ Firebase cung cấp cho nhà phát triển
Xây dựng thành công ứng dụng bán gạo trên nền tảng Android
PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 SDK
SDK – Software Development Kit là một tập hợp công cụ hỗ trợ cho việc phát triển phần mềm thông qua một nền tảng nào đó
Hầu hết các nhà phát triển ứng dụng cần sử dụng SDK để tích hợp các tính năng nâng cao như quảng cáo và thông báo đẩy Cụ thể, lập trình Android yêu cầu SDK cho Java, trong khi ứng dụng iOS cần SDK cho Swift, và lập trình ứng dụng Windows yêu cầu NET Framework SDK kết hợp với NET.
SDK có thể bao gồm các API dưới dạng thư viện để giao tiếp với ngôn ngữ lập trình hoặc để tương tác với hệ thống phần cứng phức tạp trong các hệ thống nhúng Các công cụ phổ biến trong SDK thường là tiện ích gỡ lỗi phần mềm, thường được tích hợp trong môi trường phát triển tích hợp (IDE) Ngoài ra, SDK thường đi kèm với mã mẫu và tài liệu kỹ thuật để làm rõ các tài liệu tham khảo chính.
Android SDK: bộ công cụ phát triển ứng dụng trên nền tảng Android
Windows SDK: bộ công cụ phát triển ứng dụng chạy trên nền tảng Windows
Java SDK, hay còn gọi là JDK, là một phiên bản mở rộng của SDK, cụ thể là bộ công cụ dành riêng cho ngôn ngữ lập trình Java JDK cung cấp các công cụ cần thiết để phát triển và xây dựng các ứng dụng, applets và thành phần bằng Java, mà không hỗ trợ cho các ngôn ngữ lập trình khác.
SDK mang đến nhiều tính năng hữu ích cho ứng dụng, giúp cải thiện trải nghiệm người dùng Chẳng hạn, nó cho phép xác định vị trí chính xác, tích hợp nhanh chóng và dễ dàng, đảm bảo độ chính xác của dữ liệu, cũng như hỗ trợ việc triển khai và nâng cấp Ngoài ra, SDK còn giúp loại bỏ các tính năng không cần thiết khi không còn sử dụng.
1.2.1 Firebase là gì? Đó là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Dịch vụ Firebase có thể được chia thành hai nhóm:
Phát triển và thử nghiệm ứng dụng của bạn: Realtime Database, Auth, Test Lab, Crashlytics, Cloud Functions, Firestore, Cloud Storage, Performance Monitoring, Crash Reporting, Hosting
Phát triển và thu hút đối tượng của bạn: Firebase Analytics, Invites, Cloud Messaging, Predictions, AdMob, Dynamic Links, Adwords, Remote Config, App Indexing
1.2.2.1 Lịch sử ra đời của Firebase
Firebase, trước đây là Evolve, được thành lập vào năm 2011 bởi Andrew Lee và James Tamplin như một startup chuyên cung cấp cơ sở dữ liệu cho ứng dụng chat Tuy nhiên, họ nhanh chóng nhận ra rằng khách hàng sử dụng sản phẩm của họ không chỉ cho chat mà còn để lưu trữ thông tin như tiến trình game Nhận thấy tiềm năng này, Lee và Tamplin đã tách mảng realtime để thành lập Firebase vào tháng 4 năm 2012 Đến tháng 10 năm 2014, Firebase đã gia nhập Google, mở ra nhiều cơ hội phát triển mới.
Cả Google và Firebase đều đang phát triển mạnh mẽ, với Firebase mở rộng nhanh chóng các dịch vụ con, trong khi Google tận dụng đội ngũ nhân lực chất lượng và cơ sở hạ tầng hiệu quả mà Firebase cung cấp Hiện tại, Google đã chuyển giao quản lý các dịch vụ nền tảng hỗ trợ lập trình viên bên ngoài cho Firebase, bao gồm Cloud Messaging, AdMob và Analytics.
Firebase, theo định hướng của Google, hiện đã chính thức hỗ trợ các nền tảng Android, iOS và Web Đáng chú ý, macOS cũng được hỗ trợ do chia sẻ nhiều mã nguồn với iOS, mặc dù Google chưa công bố chính thức về điều này.
Firebase có ít tài liệu chính thức cho macOS, do đó việc sử dụng web cho ứng dụng desktop thay vì native có thể gặp khó khăn Các thư viện dành cho macOS cũng thường không đầy đủ chức năng và không ổn định.
1.2.2.2 Dữ liệu thời gian thực – Firebase Realtime Database
Hạn chế
Mặc dù ứng dụng đã có nhiều chức năng hữu ích, nhưng vẫn còn một số hạn chế cần được khắc phục Nhóm phát triển cam kết sẽ tiếp tục cải tiến và hoàn thiện ứng dụng trong tương lai để nâng cao trải nghiệm người dùng.
Giao diện chưa hấp dẫn
Chức năng tìm kiếm, giỏ hàng, bình luận chưa tối ưu.
Hướng phát triển
Do hạn chế thời gian nên có một số chức năng chưa thể đưa vào ứng dụng, về sau ứng dụng có thể phát triển thêm theo hướng:
Kết nối mạng xã hội
Tối ưu hóa chức năng tìm kiếm, giỏ hàng, đơn hàng
Thêm chức năng quản lý nhân viên vào ứng dụng quản lý
Thêm chức năng thanh toán trực tuyến