Công cụ thiết kế ứng dụng:- Android Studio là một môi trường phát triển tích hợp IDE chínhthức của Google dành cho việc phát triển ứng dụng di động chạy trênhệ điều hành Android+ Jetpack
CƠ SỞ LÝ THUYẾT
Tổng quan về đề tài
1.2 Các hệ thống ứng dụng tương tự. Ứng dụng về đặt đồ ăn nhanh nổi tiếng nhất hiện nay:
1.3.Công cụ thiết kế ứng dụng.
- Sử dụng ngôn ngữ lập trình Kotlin
- Về cơ sở dữ liệu dùng Firebase
- Sử dụng các công cụ hỗ trợ trong quá trình xây dựng sản phẩm như:Android studio, Firebase…
Công cụ kỹ thuật
2.1 Mô hình của dự án:
2.1.1 Công cụ thiết kế ứng dụng:
- Android Studio là một môi trường phát triển tích hợp (IDE) chính thức của Google dành cho việc phát triển ứng dụng di động chạy trên hệ điều hành Android
- Cụ thể, để hoàn thiện một ứng dụng, người ta sẽ cần đến những phần cơ bản sau:
+ Kotlin: Là một ngôn ngữ lập trình mới và hiện đại được Google công nhận chính thức là ngôn ngữ lập trình cho việc phát triển ứng dụng Android Kotlin có cú pháp ngắn gọn hơn và cung cấp nhiều tính năng tiện ích hơn so với Java.
+ Jetpack Compose là thư viện UI toolkit mới của Google cho phát triển giao diện người dùng trong ứng dụng Android, cho phép viết code Kotlin thay vì sử dụng XML Nó cung cấp cách tiếp cận tự nhiên và linh hoạt hơn trong việc xây dựng giao diện người dùng, giúp tăng cường hiệu suất và linh hoạt trong phát triển ứng dụng Android.
+ Gradle Scripts: Gradle là một hệ thống quản lý và tự động hóa công việc trong quá trình phát triển ứng dụng Android Bạn sẽ cần viết các tệp script Gradle để cấu hình và quản lý dự án của mình trong Android Studio.
+ Resource Files (tệp nguồn): Đây là các tài nguyên như hình ảnh, chuỗi văn bản, màu sắc và các tài nguyên khác được sử dụng trong ứng dụng của bạn Các tài nguyên này thường được đặt trong thư mục res của dự án và được tham chiếu từ mã và layout XML.
+ Manifest File (tệp Manifest): Tệp AndroidManifest.xml chứa các thông tin quan trọng về ứng dụng của bạn như tên ứng dụng, quyền truy cập và thiết lập cấu hình cơ bản Điều này giúp hệ điều hành Android hiểu và quản lý ứng dụng của bạn.
- Kotlin là ngôn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM).
Nó có thể được biên dịch sang mã nguồn Java hoặc sử dụng cơ sở hạ tầng trình biên dịch LLVM Kotlin được phát triển bởi JetBrains, công ty nổi tiếng với các IDE như IntelliJ IDEA và Android Studio. b Cách thức hoạt động của ngôn ngữ kotlin:
- Kotlin hoạt động bằng cách biên dịch sang mã byte Java, sau đó được thực thi bởi máy ảo Java (JVM) JVM là một chương trình ảo mô phỏng một máy tính thực sự, cho phép các chương trình Java chạy trên bất kỳ hệ điều hành nào có cài đặt JVM.
- Dưới đây là các bước cơ bản trong cách thức hoạt động của Kotlin:+Viết mã Kotlin: Bạn viết mã Kotlin bằng một trình soạn thảo văn bản hoặc IDE như IntelliJ IDEA hoặc Android Studio.
+Biên dịch mã Kotlin sang mã byte Java: Trình biên dịch Kotlin chuyển đổi mã Kotlin sang mã byte Java, đây là ngôn ngữ máy mà JVM có thể hiểu.
+Thực thi mã byte Java: JVM tải mã byte Java vào bộ nhớ và thực thi nó.
+Tương tác với Java: Mã Kotlin có thể tương tác hoàn toàn với mã Java và mã byte Java do Kotlin tạo ra tương thích 100% với code byte Java. d Ưu điểm của kotlin:
- Ngắn gọn, dễ đọc: Cú pháp súc tích, dễ viết, dễ bảo trì hơn Java.
- An toàn, bảo mật: Ngăn chặn lỗi phổ biến, phát hiện lỗi sớm.
- Hiệu suất cao: Tạo mã byte Java hiệu quả, tăng tốc độ ứng dụng.
- Tăng năng suất: Viết code nhanh hơn, tiết kiệm thời gian, công sức.
- Khả năng tương thích: Tương tác hoàn toàn với mã Java, linh hoạt trong phát triển.
- Cộng đồng lớn: Nhiều tài nguyên học tập, hỗ trợ phong phú.
- Hỗ trợ đa nền tảng: Phát triển ứng dụng Android, web, máy tính để bàn, back-end e Nhược điểm của kotlin :
- Kích thước ứng dụng: Tăng nhẹ do thư viện và runtime.
- Cộng đồng: Nhỏ hơn so với Java, khó tìm kiếm trợ giúp.
- Tài liệu: Hạn chế hơn so với Java, khó khăn khi học tập.
- Khả năng tương thích: Vấn đề với một số thư viện Java cũ.
- Sự mới mẻ: Hỗ trợ chưa đầy đủ bởi một số IDE và công cụ.
2.1.2.2 Cơ sở dữ liệu Firebase a Khái niệm Firebase.
- Firebase là nền tảng phát triển ứng dụng của Google, cung cấp hai dịch vụ cơ sở dữ liệu chính: Firebase Realtime Database và Cloud
Firestore Firebase Realtime Database là cơ sở dữ liệu NoSQL lưu trữ trên đám mây với cấu trúc cây JSON, đồng bộ thời gian thực, hỗ trợ offline và tích hợp dễ dàng với các dịch vụ khác của Firebase Cloud Firestore cũng là cơ sở dữ liệu NoSQL nhưng sử dụng cấu trúc tài liệu và bộ sưu tập, hỗ trợ truy vấn phức tạp, đồng bộ thời gian thực, hỗ trợ offline và tích hợp chặt chẽ với các dịch vụ Google Cloud, có khả năng mở rộng tốt hơn Firebase Realtime Database phù hợp với các ứng dụng đơn giản, trong khi Cloud Firestore thích hợp cho các ứng dụng phức tạp và quy mô lớn. b Cách thức hoạt động.
Firebase là một nền tảng phát triển ứng dụng của Google, cung cấp các dịch vụ và công cụ giúp nhà phát triển xây dựng, quản lý và tối ưu hóa ứng dụng một cách hiệu quả Cơ chế hoạt động của
Firebase bao gồm việc kết nối và xác thực người dùng, lưu trữ và đồng bộ dữ liệu thời gian thực với các dịch vụ cơ sở dữ liệu như Firebase Realtime Database và Cloud Firestore, gửi thông báo đẩy qua Firebase Cloud Messaging, lưu trữ tệp tin với Firebase Storage, phân tích hành vi người dùng và hiệu suất ứng dụng qua Firebase Analytics Firebase cũng tích hợp tính năng bảo mật linh hoạt và có khả năng tích hợp dễ dàng với các dịch vụ khác của Google Cloud, giúp việc phát triển ứng dụng trở nên thuận lợi và hiệu quả. c Ưu điểm của Firebase:
- Dễ sử dụng: Firebase cung cấp một giao diện đơn giản và dễ sử dụng, giúp nhà phát triển nhanh chóng tiếp cận và triển khai các dịch vụ một cách hiệu quả.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG
Phân tích thiết kế hệ thống
Xem danh sách món ăn
Chỉnh sửa, xóa món ăn
Xem danh sách, chi tiết dơn hàng
Duyệt đơn hàng, xem số dư
Đăng ký, đăng nhập, đăng xuất, quên mật khẩu, chỉnh sửa thông tin
Xem gợi ý, danh sách các món ăn
Tìm kiếm món ăn theo tên, theo danh mục
Thêm món ăn vào giỏ hàng và mục yêu thích
Đánh giá món ăn đã mua
Đặt hàng, thanh toán món ăn, xem đơn hàng
Xem thống kê số dư
Tìm kiếm người dùng, món ăn, cửa hàng
Xem danh sách, chỉ tiết người dùng, món ăn, cửa hàng, đơn hàng
Xóa người dùng, món ăn, cửa hàng, đơn hàng
Bảng 1: Danh sách tác nhân
1.2 Các ca sử dụng chính
Từ các tác nhân đã tìm được ở trên và các nghiệp vụ đã phân tích, các use case tương ứng có thể có như sau:
1 Đăng nhập Chức năng này cho phép Quản trị viên, Khách hàng đăng nhập vào hệ thống.
Chức năng này cho phép Quản trị viên, Khách hàng và Chủ cừa hàng đăng kí sử dụng các chức năng liên quan.
3 Thêm món ăn Chức năng này cho phép Chủ cửa hàng thêm sản phẩm mới vào hệ thống.
4 Xem, sửa, xóa món ăn Chức năng này cho phép Chủ cửa hàng quản lý sản phẩm của cửa hàng.
5 Duyệt món ăn Chức năng này cho phép Quản trị viên duyệt sản phẩm đăng lên từ Chủ cửa hàng
6 Duyệt đơn hàng Chức năng này cho phép Chủ cửa hàng duyệt đơn hàng của Người dùng
7 Xem chi tiết, danh sách món ăn
Chức năng này cho phép Quản trị viên và Khách hàng xem danh sách các sản phẩm có sẵn trong hệ thống.
8 Quên mật khẩu Chức năng này cho phép Khách hàng lấy lại mật khẩu khi quên mật khẩu.
9 Thêm món ăn vào giỏ hàng và yêu thích
Chức năng này cho phép Khách hàng thêm sản phẩm vào danh sách yêu thích.
10 Tìm kiếm món ăn Chức năng này cho phép Khách hàng và Quản trị viên tìm kiếm sản phẩm trong hệ thống.
11 Đặt hàng, thanh toán, xem trạng thái đơn hàng
Chức năng này cho phép Khách hàng mua sắm trong ứng hệ thống
Xem, xóa cửa hàng, món ăn, người dùng, đơn hàng
Chức năng cho phép Quản trị viên kiểm tra, quản lý hệ thống
13 Đăng xuất Chức năng này cho phép người Khách hàng đăng xuất và xoá phiên sử dụng.
Bảng 2: Danh sách ca sử dụng 1.3 Biểu đồ use case tổng quát
Hình 1:Biểu đồ use case tổng quát
1.4 Đặc tả các ca sử dụng
Hình 2:Biểu đồ hoạt động UC đăng nhập
Hình 3: Biểu đồ trình tự UC đăng nhập
Tên use case: Đăng nhập tài khoản
Kịch bản: - Người dùng mở ứng dụng SmartStore.
- Màn hình đăng nhập hiện ra.
- Người dùng nhập tên đăng nhập và mật khẩu.
- Hệ thống kiểm tra tính hợp lệ của thông tin đăng nhập.
- Nếu thông tin hợp lệ, hệ thống sẽ đăng nhập thành công và đưa người dùng đến màn hình chính của ứng dụng.
- Nếu thông tin không hợp lệ, hệ thống sẽ hiển thị thông báo lỗi và yêu cầu người dùng nhập lại.
- Người dùng mở ứng dụng SmartStore.
- Người dùng nhấp vào nút " Sign In ".
Mô tả ngắn: Kịch bản này mô tả quá trình đăng nhập của người dùng vào ứng dụng SmartStore.
- Hệ thống Điều kiện trước:
- Người dùng đã cài đặt ứng dụng SmartStore trên thiết bị của họ.
- Người dùng có tài khoản trên ứng dụng hợp lệ.
- Người dùng có kết nối internet. Điều kiện sau: - Người dùng đăng nhập thành công vào ứng dụng
- Người dùng có thể thực hiện các chức năng trên ứng dụng.
- Người dùng mở ứng dụng SmartStore
- Người dùng nhập tên đăng nhập và mật khẩu
- Màn hình đăng nhập hiện ra
- Hệ thống kiểm tra tính hợp lệ của thông tin đăng nhập
Ngoại lệ: - Lỗi thông tin đăng nhập
1.4.2: Use case đăng kí tài khoản
Hình 5: Biểu đồ hoạt động use case đăng kí tài khoản
Hình 6: Biểu đồ trình tự cho chức năng đăng kí tài khoản
Hình 7: Biểu đồ giao tiếp UC đăng ký
Tên use case: Đăng ký tài khoản
Kịch bản: - Người dùng mở ứng dụng SmartStore.
- Màn hình đăng ký hiện ra.
- Người dùng nhập thông tin cá nhân, bao gồm: Email, Mật khẩu
-Nếu thông tin hợp lệ:
+ Hệ thống đăng ký tài khoản thành công.
-Nếu thông tin không hợp lệ:
+ Hệ thống hiển thị thông báo lỗi và yêu cầu người dùng nhập lại.
- Người dùng mở ứng dụng SmartStore.
- Người dùng chọn "Sign Up".
Mô tả ngắn: Kịch bản này mô tả quá trình đăng ký tài khoản mới của người dùng trong ứng dụng SmartStore.
- Hệ thống Điều kiện trước:
- Người dùng đã cài đặt ứng dụng SmartStore trên thiết bị của họ.
- Người dùng có kết nối internet. Điều kiện sau: - Người dùng đăng ký tài khoản thành công.
- Người dùng có thể đăng nhập vào ứng dụng và sử dụng các dịch vụ của SmartStore.
- Người dùng mở ứng dụng SmartStore
- Người dùng chọn "Sign Up"
- Người dùng nhập thông tin
- Hiển thị màn hình đăng ký
- Hệ thống kiểm tra tính hợp lệ của thông tin cá nhân
Ngoại lệ: - Lỗi thông tin đăng kí
- Lỗi kết nối, lỗi hệ thống
Hình 8: Biểu đồ hoạt động cho UC đăng xuất
Hình 9: Biểu đồ trình tự cho UC đăng xuất
Tên use case: Đăng xuất
Kịch bản: - Người dùng cần đăng nhập vào hệ thống
- Người dùng truy cập vào phần mềm ,đăng nhập và chọn chức năng đăng xuất
- Đã đăng nhập thành công
Mô tả ngắn: Đăng xuất người dùng khỏi hệ thống
Tác nhân: Nhân viên, quản lý
Hệ thống loại bỏ được các thông tin đã tác động vào hệ thống và quay lại bước trước.
Các bên liên quan: Điều kiện trước:
Người dùng phải đăng nhập bằng tài khoản của mình và phải có thông tin xác thực trong CSDL của Server. Điều kiện sau: Kịch bản đăng xuất này đảm bảo rằng người dùng có thể thoát khỏi hệ thống một cách an toàn và dễ dàng Quá trình rằng người dùng không đăng xuất một cách vô ý Chuyển hướng đến trang đăng nhập sau khi đăng xuất giúp người dùng dễ dàng trở lại nếu họ muốn truy cập lại hệ thống.
1 Người dùng tương tác với giao diện hệ thống và chọn tùy chọn "Đăng Xuất" hoặc click vào biểu tượng đăng xuất.
3 Người dùng xác nhận đăng xuất bằng cách nhấn nút "Đồng ý" hoặc tương tự trong hộp thoại xác nhận.
2 Hệ thống xác nhận yêu cầu đăng xuất và hiển thị một hộp thoại xác nhận hoặc thông báo để đảm bảo người dùng chắc chắn muốn đăng xuất.
4 Hệ thống xóa thông tin phiên đăng nhập của người dùng, đảm bảo rằng họ không còn được xác thực khi truy cập các trang khác của hệ thống.
5 Hệ thống chuyển hướng người dùng đến trang đăng nhập hoặc trang chính của ứng dụng.
6 Kịch bản đăng xuất kết thúc và người dùng đã được đưa trở lại trạng thái chưa đăng nhập.
1.4.4: Use case xem danh sách các món ăn
Hình 10: Biểu đồ hoạt động cho uc xem danh sách các món ăn
Hình 11:Biểu đồ trình tự cho uc xem danh sách các món ăn
Hình 12: Biểu đồ UC xem danh sách các món ăn
Tên use case: Xem danh sách các món ăn
K ch b n: ịch bản: ản: -G i yêu c u xem danh sách món ăn ửi yêu cầu xem danh sách món ăn ầu xem danh sách món ăn.
-Truy v n c s d li u và hi n th ấn cơ sở dữ liệu và hiển thị ơ sở dữ liệu và hiển thị ở dữ liệu và hiển thị ữ liệu và hiển thị ệu và hiển thị ển thị ịch bản: danh sách món ăn.
-Cung c p thông tin v danh sách món ấn cơ sở dữ liệu và hiển thị ề danh sách món ăn.
S ki n kích ho t: ự kiện kích hoạt: ệu và hiển thị ạt: -Ng ười dùng gửi yêu cầu xem danh i dùng g i yêu c u xem danh ửi yêu cầu xem danh sách món ăn ầu xem danh sách món ăn. sách món ăn.
- ng d ng nh n yêu c u t ng Ứng dụng nhận yêu cầu từ người ụng nhận yêu cầu từ người ận yêu cầu từ người ầu xem danh sách món ăn ừ người ười dùng gửi yêu cầu xem danh i dùng.
Mô t ng n: ản: ắn: Ch c năng cho phép ng ức năng cho phép người dùng xem ười dùng gửi yêu cầu xem danh i dùng xem danh sách các món ăn có s n trong h ẵn trong hệ ệu và hiển thị th ng ống.
Tác nhân: Ng ười dùng gửi yêu cầu xem danh i dùng
Các tr ười dùng gửi yêu cầu xem danh ng h p liên quan: ợp liên quan: -Ng ười dùng gửi yêu cầu xem danh i dùng mu n xem danh sách món ống. ăn.
-Ng ười dùng gửi yêu cầu xem danh i dùng mu n tìm ki m món ăn ống ếm món ăn c th ụng nhận yêu cầu từ người ển thị Các bên liên quan: -Ng ười dùng gửi yêu cầu xem danh i dùng.
- ng d ng Ứng dụng nhận yêu cầu từ người ụng nhận yêu cầu từ người Đi u ki n tr ề danh sách món ệu và hiển thị ước: c: Ng ười dùng gửi yêu cầu xem danh i dùng đã đăng nh p vào ng ận yêu cầu từ người ức năng cho phép người dùng xem d ng ụng nhận yêu cầu từ người
C s d li u ch a thông tin v các ơ sở dữ liệu và hiển thị ở dữ liệu và hiển thị ữ liệu và hiển thị ệu và hiển thị ức năng cho phép người dùng xem ề danh sách món món ăn. Đi u ki n sau: ề danh sách món ệu và hiển thị Ứng dụng nhận yêu cầu từ người ng d ng hi n th danh sách món ăn ụng nhận yêu cầu từ người ển thị ịch bản: cho ng ười dùng gửi yêu cầu xem danh i dùng.
Lu ng s ki n chính: ồng sự kiện chính: ự kiện kích hoạt: ệu và hiển thị Tác Nhân H th ng ệu và hiển thị ống.
-Ng ười dùng gửi yêu cầu xem danh i dùng g i ửi yêu cầu xem danh sách món ăn. yêu c u xem danh ầu xem danh sách món ăn. sách món ăn.
- ng d ng nh n Ứng dụng nhận yêu cầu từ người ụng nhận yêu cầu từ người ận yêu cầu từ người yêu c u t ng ầu xem danh sách món ăn ừ người ười dùng gửi yêu cầu xem danh i dùng.
- ng d ng truy Ứng dụng nhận yêu cầu từ người ụng nhận yêu cầu từ người v n c s d li u ấn cơ sở dữ liệu và hiển thị ơ sở dữ liệu và hiển thị ở dữ liệu và hiển thị ữ liệu và hiển thị ệu và hiển thị -C s d li u tr ơ sở dữ liệu và hiển thị ở dữ liệu và hiển thị ữ liệu và hiển thị ệu và hiển thị ản: v danh sách món ề danh sách món ăn cho ng d ng ức năng cho phép người dùng xem ụng nhận yêu cầu từ người
- ng d ng hi n Ứng dụng nhận yêu cầu từ người ụng nhận yêu cầu từ người ển thị th danh sách món ịch bản: ăn cho ng ười dùng gửi yêu cầu xem danh i dùng.
Ngo i l : ạt: ệu và hiển thị -N u không có món ăn nào trong danh ếm món ăn sách, ng d ng thông báo cho ng ức năng cho phép người dùng xem ụng nhận yêu cầu từ người ười dùng gửi yêu cầu xem danh i dùng.
-N u có l i trong quá trình truy v n c ếm món ăn ỗi trong quá trình truy vấn cơ ấn cơ sở dữ liệu và hiển thị ơ sở dữ liệu và hiển thị s d li u, ng d ng thông báo l i cho ở dữ liệu và hiển thị ữ liệu và hiển thị ệu và hiển thị ức năng cho phép người dùng xem ụng nhận yêu cầu từ người ỗi trong quá trình truy vấn cơ ng ười dùng gửi yêu cầu xem danh i dùng.
1.4.5: Use case tìm kiếm món ăn
Hình 13: Biểu đồ hoạt động chức năng tìm kiếm món ăn
Hình 14:Biểu đồ trình tự chức năng tìm kiếm món ăn
Hình 15: Biểu đồ giao tiếp UC tìm kiếm món ăn
Tên use case: Tìm kiếm món ăn
Kịch bản: Người dùng nhập từ khóa vào chức năng tìm kiếm và nhấn
Hệ thống tìm kiếm trong cơ sở dữ liệu và hiển thị kết quả phù hợp.
Người dùng chọn món ăn từ kết quả để xem chi tiết hoặc thêm vào giỏ hàng.
Sự kiện kích hoạt: người dùng nhập từ khóa vào ô tìm kiếm và nhấn nút "Tìm kiếm".
Mô tả ngắn: Chức năng tìm kiếm món ăn cho phép người dùng nhập từ khóa và trả về danh sách các món ăn phù hợp từ cơ sở dữ liệu, giúp người dùng dễ dàng tìm thấy và chọn món ăn họ muốn.
Trường hợp tìm kiếm thành côngTrường hợp không tìm thấy kết quả
Các bên liên quan: Điều kiện trước:
XÂY DỰNG ỨNG DỤNG
Giao diện trang người dùng
Hình 27: Giao diện đăng ký và đăng nhập tài khoản cho khách hàng, ở đây người dùng có thể đăng kí tài khoản và có thể nhập thông tin xác thực email và mật khẩu để đăng nhập.
Trang chủ người dùng Danh sách món ăn
Hình 28: Giao diện màn hình chính và danh sách món ăn Trang chủ người dùng sẽ hiển thị các món ăn thông qua nhu cầu người dùng và chất lượng Trang danh sách món ăn đưa ra tất các sản phẩm mới nhất của từng danh mục.
Hình 29: Tìm kiếm món ăn Trang tìm kiếm sẽ giúp khác hàng tìm những món ăn nhanh hơn.
Hình 30: Chi tiết sản phẩm Trang chi tiết sẽ giúp khách hàng biết rõ hơn về món ăn như nguyên liệu, nguồn gốc,
Giao diện trang Admin
Hình 31: Trang đặt món ăn
Hình 32: Trang thêm món ăn
Hình 33: Trang hồ sơ của quản trị viên
Hình 34: Trang đặt món ăn