Order Food

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 51

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

---🙠🕮🙢---

LẬP TRÌNH ANDROID CĂN BẢN

XÂY DỰNG ỨNG DỤNG ORDER FOOD TRÊN THIẾT BỊ DI ĐỘNG

NHÓM: 7

Sinh viên thực hiện: La Thị Lan Anh - CT040105

Nguyễn Hoài Nam - CT040133

Nguyễn Trương Trường Huy - CT040123

Người hướng dẫn: ThS. Lê Bá Cường

Hà Nội, 2023
MỤC LỤC
MỤC LỤC 1

LỜI CẢM ƠN 3

LỜI CAM ĐOAN 4

DANH SÁCH HÌNH ẢNH 5

DANH SÁCH BẢNG BIỂU 7

LỜI MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 2

1.1 TỔNG QUÁT VỀ HỆ ĐIỀU HÀNH DI ĐỘNG 2


1.2 TỔNG QUAN VỀ JAVA ANDROID NATIVE 2
1.2.1 Khái niệm 2
1.2.2 Tại sao lại chọn hệ điều hành Android 3
1.2.3 Kiến trúc Android 3
1.2.4 Google Maps 5
1.3. TỔNG QUAN VỀ MYSQL 7
1.3.1 Khái niệm về MySQL 7
1.3.3 Tại sao lại chọn MySQL 7
1.4. CÔNG CỤ ANDROID STUDIO 8
1.4.1 Khái niệm 2
1.4.2 Lịch sử hình thành 3
1.4.3 Hướng dẫn tải về 3

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 10

2.1. PHÁT BIỂU BÀI TOÁN 10


2.1.1 Bài toán thực tế 2
2..1.2 Hướng giải quyết 3
2.2. MÔ HÌNH TỔNG QUÁT 11

1
2.3. SƠ ĐỒ CHỨC NĂNG 12
2.3.1 Chức năng đăng nhập 15
2.3.2 Chức năng đăng ký 15
2.3.3 Chức năng thêm sản phẩm vào giỏ hàng 15
2.3.4 Chức năng sửa số lượng sản phẩm 15
2.3.5 Chức năng xóa sản phẩm trong giỏ hàng 15
2.3.6 Chức năng đặt hàng 16
2.3.7 Chức năng thêm, sửa, xóa của admin 16
2.4 PHÂN TÍCH CA SỬ DỤNG 18
2.4.1 Ca sử dụng đăng nhập 18
2.4.2 Ca sử dụng đăng ký 18
2.4.3 Ca sử dụng thêm sản phẩm vào giỏ hàng 18
2.4.4 Ca sử dụng xóa sản phẩm khỏi giỏ hàng 19
2.4.5 Ca sử dụng đặt hàng 19
2.4.6 Ca sử dụng thêm/sửa/xóa của Admin 20
2.5. XÂY DỰNG CƠ SỞ DỮ LIỆU 21
2.5.1 Xây dựng cơ sở dữ liệu 21
2.5.2 Bảng user_role 22
2.5.3 Bảng shop 23
2.5.4 Bảng user 23
2.5.5 Bảng categories 25
2.5.6 Bảng products 25
2.5.7 Bảng oders 25

CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM 32

3.1. HƯỚNG DẪN CÀI ĐẶT


3.2 Kiến trúc chương trình mô hình triển khai ứng dụng 32
3.3. KIỂM THỬ CÁC CHỨC NĂNG 33

KẾT LUẬN 42

1. KẾT QUẢ ĐẠT ĐƯỢC 42


2
2. HẠN CHẾ CỦA ĐỀ TÀI 42
3. HƯỚNG PHÁT TRIỂN 42

TÀI LIỆU THAM KHẢO 43

3
LỜI CẢM ƠN

Nhóm chúng em xin chân thành cảm ơn các thầy cô trường Học viện Kỹ
thuật mật mã nói chung, quý thầy cô của khoa Công nghệ thông tin nói riêng đã
tận tình dạy bảo, truyền đạt kiến thức cho em trong suốt quá trình học.

Kính gửi đến thầy Lê Bá Cường lời cảm ơn chân thành và sâu sắc, cảm ơn
cô đã tận tình theo sát và chỉ dẫn cho nhóm em trong quá trình thực hiện đề tài
này.

Trong quá trình tìm hiểu nhóm chúng em xin cảm ơn các bạn cùng lớp đã
góp ý, giúp đỡ nhóm em rất nhiều trong quá trình tìm hiểu và làm đề tài.

Chúng em xin chân thành cảm ơn!

LỜI CAM ĐOAN

Nhóm xin cam đoan bài báo cáo “Xây dựng ứng dụng Order Food trên thiết
bị di động” là công trình nghiên cứu của nhóm trong thời gian qua, không sao
chép lại từ cá nhân hoặc tổ chức nào khác. Những kết quả đạt được do nhóm tự
nghiên cứu, các số liệu kết quả đúng với thực tế. Các kết quả này chưa từng công
bố trong bất kỳ tài liệu nào khác. Nhóm xin hoàn toàn chịu trách nhiệm trước
nhà trường về lời cam đoan này.

4
DANH SÁCH HÌNH ẢNH
Hình 1. 1. Hình ảnh cấu trúc Android 4
Hình 1. 2. Hình ảnh về Google Maps 6
Hình 1. 3. Hình ảnh về MySQL 7
Hình 1. 4. Hình ảnh Android Studio 9
Hình 1. 5. Hình ảnh hướng dẫn sử dụng Android Studio 10

Hình 2. 1. Hình ảnh sơ đồ usecase tổng quát app Order Food 12


Hình 2. 2. Hình ảnh sơ đồ usecase tổng quát web admin 13
Hình 2. 3. Hình ảnh sơ đồ chức năng đăng nhập 14
Hình 2. 4. Hình ảnh sơ đồ chức năng đăng ký 15
Hình 2. 5. Hình ảnh sơ đồ chức năng thêm sản phẩm vào giỏ hàng 15
Hình 2. 6. Hình ảnh sơ đồ chức năng sửa số lượng sản phầm 16
Hình 2. 7. Hình ảnh sơ đồ chức năng xóa sản phẩm trong giỏ hàng 17
Hình 2. 8. Hình ảnh sơ đồ chức năng đặt hàng 22
Hình 2. 9. Hình ảnh sơ đồ chức năng thêm, sửa, xóa của admin 27
Hình 2. 10. Hình ảnh mô hình quan hệ cơ sở dữ liệu 28
Hình 2. 11. Hình ảnh giao diện đăng nhập 29
Hình 2. 12. Hình ảnh giao diện danh sách cửa hàng 30
Hình 2. 13. Hình ảnh giao diện danh sách món ăn 30
Hình 2. 14. Hình ảnh giao diện thông tin đơn hàng 31
Hình 2. 15. Hình ảnh giao danh sách đơn hàng 32
Hình 2. 16. Hình ảnh giao diện thông tin đơn hàng 33
Hình 2. 17. Hình ảnh giao diện màn hình tôi 30
Hình 2. 18. Hình ảnh giao diện màn hình chính 30
Hình 2. 19. Hình ảnh giao diện danh sách đơn hoàn thành 30
Hình 2. 20. Hình ảnh giao diện đơn hàng đang giao 30
Hình 2. 21. Hình ảnh giao diện khi nhấn vào đơn hàng 30
Hình 2. 22. Hình ảnh giao diện bản đồ phiên làm việc 30
Hình 2. 23. Hình ảnh giao diện khi nhấn bào địa chỉ khách hàng 30

5
Hình 3. 1. Hình ảnh chức năng chọn bài tập theo mức độ 34
Hình 3. 2. Hình ảnh chức năng chọn bài tập theo từng vùng 34
Hình 3. 3. Hình ảnh chức năng tập luyện 35
Hình 3. 4. Hình ảnh chức năng luyện tập từng ngày 36
Hình 3. 5. Hình ảnh kiểm thử chức năng thống kê 37
Hình 3. 6. Hình ảnh kiểm thử chức năng thống kê calo 38
Hình 3. 7. Hình ảnh kiểm thử chức năng thống kê cân nặng 39
Hình 3. 8. Hình ảnh kiểm thử chức năng thống kê chỉ số BMI 40
Hình 3. 9. Hình ảnh kiểm thử cài đặt 41

DANH SÁCH BẢNG BIỂU

Bảng 2. 1. Bảng ca sử dụng đăng nhập 18


Bảng 2. 2. Bảng ca sử dụng đăng ký 18
Bảng 2. 3. Bảng ca sử dụng thêm sản phẩm vào giỏ hàng 19
Bảng 2. 4. Bảng ca sử dụng xóa sản phẩm khỏi giỏ hàng 19
Bảng 2. 5. Bảng ca sử dụng đặt hàng 20
Bảng 2. 6. Bảng ca sử dụng nhận đơn hàng 20
Bảng 2. 7. Bảng ca sử dụng thêm/sửa/xóa 22
Bảng 2. 8. Bảng user_role 23
Bảng 2. 9. Bảng shop 24
Bảng 2. 10. Bảng user 25
Bảng 2. 11. Bảng categories 25
Bảng 2. 12. Bảng products 24
Bảng 2. 13. Bảng orders 24

6
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ
Thông tin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sự
phát triển chung đó. Các ứng dụng của công nghệ thông tin được áp dụng trong mọi
lĩnh vực nghiên cứu khoa học cũng như trong mọi lĩnh vực của đời sống. Là một
phần của Công nghệ Thông tin, Công nghệ app đang có được sự phát triển mạnh mẽ
và phổ biến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn.
Bên cạnh đó, việc mua sắm online đang trở thành xu hướng mới là điều
không thể tránh khỏi. Hiện nay ta có thể mua gần như mọi thứ thông qua chiếc điện
thoại thông minh của mình. Đồ ăn cũng không phải ngoại lệ. Ứng dụng này sẽ đóng
vai trò như công cụ kết nối giữa người bán và người mua, tận dụng nền tảng vận
chuyển của công ty nhằm mở rộng thị trường. Hai đối tượng được nhắm tới là chủ
cửa hàng và người muốn đặt đồ ăn. Chủ cửa hàng có thể đăng ký với công ty để
đăng bán các món ăn của mình trên app, còn người dùng có thể tìm kiếm và đặt đồ
ăn thuận tiện.
Nội dung đề tài gồm các chương:
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM

KẾT LUẬN

TÀI LIỆU THAM KHẢO

1
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Tổng quát về hệ điều hành di động
Hệ điều hành di động (tiếng Anh "mobile operating system") là một hệ điều
hành dành cho các thiết bị điện thoại di động, máy tính bảng, đồng hồ thông minh,
laptop 2 trong 1 (laptop có thể chuyển giữa chế độ máy tính và máy tính bảng), hoặc
các thiết bị di động khác. Trong khi đa phần các máy tính xách tay (laptop) cũng có
tính "di động", nhưng các hệ điều hành thường được sử dụng trên chúng không
được xem là hệ điều hành di động, vì các hệ điều hành này được thiết kế ban đầu
cho máy tính để bàn và không có hoặc không cần các tính năng di động cụ thể.
Ngày nay, sự phân biệt giữa hệ điều hành cho máy tính để bàn và hệ điều hành di
động càng trở nên mờ dần, khi một số hệ điều hành mới hoặc các phiên bản mới cho
phép hỗ trợ cả hai nền tảng di động và cố định.

Hệ điều hành di động kết hợp các tính năng của một hệ điều hành cho máy
tính cá nhân với các tính năng khác hữu ích cho việc sử dụng di động hoặc cầm tay;
thường bao gồm hầu hết các chức năng được coi là cần thiết trong các hệ thống di
động hiện đại như: màn hình cảm ứng, mạng thiết bị di động, Bluetooth, Wi-Fi
Protected Access, Wi-Fi, Hệ thống Định vị Toàn cầu (GPS), máy ảnh số cho phép
chụp ảnh và quay video, nhận dạng tiếng nói, thu âm, chơi nhạc, kết nối trường gần,
và đèn hồng ngoại điều khiển từ xa. Đến cuối năm 2016, hơn 430 triệu điện thoại
thông minh đã được bán với 81,7 % chạy nền tảng Android, 17.9 % chạy iOS, 0.3 %
chạy Windows 10 Mobile (hiện các thiết bị chạy nền tảng này không còn được bán
trên thị trường) và các hệ điều hành khác chiếm 0.1%.Android còn phổ biến hơn so
với hệ điều hành Windows, hệ điều hành phổ biến nhất trên máy tính để bàn. Lượng
sử dụng điện thoại thông minh (thậm chí chưa bao gồm máy tính bảng) đã nhiều
hơn cả lượng máy tính để bàn đang sử dụng (nhu cầu sử dụng máy tính tổng thể đã
giảm xuống 44,9% trong quý I năm 2017).
2
1.2 Tổng quan về JAVA ANDROID NATIVE

1.2.1 Khái niệm


Burn Fast App là tên gọi của ứng dụng được phát triển cũng như xây dựng bằng các
công cụ do chính nhà phát triển đã cung cấp cho các lập trình viên. App được áp dụng phổ
biến bằng một số ngôn ngữ hệ điều hành và chúng sở hữu một số tính năng đã có sẵn trên
các hệ điều hành đó. Điều này cho phép những hệ điều hành có vận tốc cao không nhất
thiết phải thực hiện thông qua bất kỳ ứng dụng bên thứ ba hay engine nào cả. Ứng dụng
của Android sẽ viết được bằng hai loại ngôn ngữ bao gồm Kotlin và Java.

1.2.2 Tại sao lại chọn hệ điều hành Android 


Android hiện là hệ điều hành di động phổ biến nhất hiện nay với thị phần trung
bình hơn 50% trên toàn thế giới. Hệ điều hành Android có những ưu điểm:  

+ Là hệ điều hành có mã nguồn mở nên khả năng tùy biến cao, có thể tùy ý
chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google.
+ Đa dạng sản phẩm, rất nhiều hãng điện thoại, thiết bị công nghệ đã ưu ái
chọn Android cho thiết bị của họ, giá cả thì hợp lý từ bình dân đến cao cấp.
+ Kho ứng dụng Google Play Store đồ sộ.
+ Thân thiện và dễ sử dụng.
+ Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao.

1.2.3 Kiến trúc Android


Hệ điều hành Android là 1 ngăn xếp các thành phần phần mềm, được chia thành
5 phần và 4 lớp chính như trong hình bên dưới.

3
Hình 1. 1. Hình ảnh cấu trúc Android
●APPLICATIONS: Lớp trên cùng của kiến trúc là Application. Các ứng dụng
bạn tạo ra sẽ được cài đặt trên lớp này. Ví dụ như: Danh bạ, nhắn tin, trò
chơi…
●APPLICATIONS FRAMEWORK: Lớp Android Framework cung cấp các
dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng các lớp Java. Các nhà
phát triển ứng dụng được phép sử dụng các dịch vụ này trong ứng dụng của
họ. Android Framework bao gồm các dịch vụ chính sau:
❖ Activity Manager - Kiểm soát tất cả khía cạnh của vòng đời ứng dụng
và ngăn xếp các Activity.
❖ Content Providers - Cho phép các ứng dụng chia sẽ dữ liệu với các ứng
dụng khác.
❖ Resource Manager - Cung cấp quyền truy cập vào các tài nguyên như
các chuỗi, màu sắc, các layout giao diện người dùng...
❖ Notifications Manager - Cho phép các ứng dụng hiển thị cảnh báo và
các thông báo cho người dùng.
❖ View System - Tập các thành phần giao diện (view) được sử dụng để
tạo giao diện người dùng.

4
● LIBRARIES: Ở trên lớp nhân Linux là tập các thư viện bao gồm WebKit -
trình duyệt Web mã nguồn mở, được biết đến như thư viện libc, cơ sở dữ liệu
SQLite - hữu dụng cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, các thư viện
chơi và ghi âm audio, video, hay các thư viện SSL chịu trách nhiệm bảo mật
Internet…
●ANDROID RUNTIME: Đây là phần thứ 3 của kiến trúc và nằm ở lớp thứ 2 từ
dưới lên. Phần này cung cấp 1 bộ phận quan trọng là Dalvik Virtual Machine
- là 1 loại Java Virtual Machine được thiết kế đặc biệt để tối ưu cho Android.
Dalvik VM sử dụng các đặc trưng của nhân Linux như quản lý bộ nhớ và đa
luồng, những thứ mà đã có sẵn trong Java. Dalvik VM giúp mọi ứng dụng
Android chạy trong tiến trình riêng của nó, với các thể hiện (instance) riêng
của Dalvik virtual Machine. Android Runtime cũng cung cấp 1 tập các thư
viện chính giúp các nhà phát triển ứng dụng Android có thể viết ứng dụng
Android bằng Java.
●LINUX KERNEL: Dưới cùng là lớp Linux - Linux 3.6 cùng với khoảng 115
bản vá. Lớp này cung cấp 1 cấp độ trừu tượng giữa phần cứng của thiết bị và
các thành trình điều khiển phần cứng thiết yếu như máy ảnh, bàn phím, màn
hình hiển thị... Đồng thời, hạt nhân (kernel) còn xử lý tất cả các thứ mà Linux
có thể làm tốt như mạng kết nối và 1 chuỗi các trình điều khiển thiết bị, giúp
cho giao tiếp với các thiết bị ngoại vi dễ dàng hơn.
1.2.4. Google maps
Google Maps là một dịch vụ bản đồ trực tuyến được cung cấp bởi
Google. Nó cung cấp thông tin chi tiết về địa điểm, địa chỉ, tìm kiếm địa điểm,
chỉ đường, thời gian di chuyển và nhiều tính năng khác. Google Maps sử dụng
công nghệ bản đồ và hình ảnh vệ tinh để hiển thị thông tin địa lý trên toàn thế
giới.

5
Hình 1. 2. Hình ảnh về Google Maps
Dịch vụ Google Maps cung cấp các chức năng quan trọng sau đây:
 Xem bản đồ: Người dùng có thể xem bản đồ của các địa điểm khác
nhau trên toàn thế giới, bao gồm cả chế độ xem đường phố và chế độ
xem vệ tinh.
 Tìm kiếm địa điểm: Người dùng có thể tìm kiếm địa điểm cụ thể,
như nhà hàng, khách sạn, bệnh viện, cửa hàng và nhiều hơn nữa.
Google Maps cung cấp kết quả tìm kiếm chi tiết, bao gồm cả đánh
giá, số điện thoại, địa chỉ và hướng dẫn chỉ đường.
 Chỉ đường: Google Maps cho phép người dùng tìm kiếm và nhận chỉ
đường từ vị trí hiện tại đến địa điểm mong muốn. Nó cung cấp các
tùy chọn đường đi khác nhau, bao gồm cả đi bộ, lái xe, xe buýt và xe
đạp, và cung cấp thông tin về khoảng cách và thời gian di chuyển
ước tính.
 Xem thông tin lưu lượng giao thông: Google Maps cung cấp thông
tin về lưu lượng giao thông trên các tuyến đường khác nhau. Người
dùng có thể xem thông tin về tình trạng giao thông hiện tại, các tai
nạn hoặc công trình đường sắp tới và các tuyến đường thay thế.
 Khám phá và đánh dấu địa điểm yêu thích: Người dùng có thể khám
phá các địa điểm quanh khu vực và đánh dấu địa điểm yêu thích để
lưu trữ và truy cập sau này.
 Google Maps cung cấp các ứng dụng di động cho iOS và Android,
cho phép người dùng truy cập và sử dụng dịch vụ trên điện thoại di

6
động. Ngoài ra, Google Maps API cung cấp các công cụ và tài
nguyên cho nhà phát triển để tích hợp và tùy chỉnh

1.3. Tổng quan về MySQL

1.3.1 Khái niệm

Hình 1. 3. Hình ảnh về MySQL

MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS)

hoạt động theo mô hình client-server. Với RDBMS là viết tắt của Relational

Database Management System. MySQL được tích hợp apache, PHP. MySQL quản

lý dữ liệu thông qua các cơ sở dữ liệu. Mỗi cơ sở dữ liệu có thể có nhiều bảng quan

hệ chứa dữ liệu. MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với

ngôn ngữ SQL. MySQL được phát hành từ thập niên 90s.

MySQL hiện nay có 2 phiên bản miễn phí (MySQL Community Server) và có

phí (Enterprise Server).

1.3.2 Tại sao lại chọn MySQL

7
MySQL linh hoạt về flatform với tất cả các phiên bản của Windows, Unix và
Linux đang được hỗ trợ. Và đương nhiên, tính chất mã nguồn mở của MySQL cho
phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server. Với
kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ
sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt. Dù ứng dụng là website
dung lượng lớn phục vụ hàng triệu người/ngày hay hệ thống xử lý giao dịch tốc độ
cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống.

MySQL đưa ra những engine giao dịch cơ sở dữ liệu tốt. Các đặc trưng bao gồm,
khóa mức dòng không hạn chế, hỗ trợ giao dịch ACID hoàn thiện, khả năng giao
dịch được phân loại và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc
không bao giờ cản trở cho người viết và ngược lại. Dữ liệu được đảm bảo trong suốt
quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, khi
phát hiện có lỗi khóa chết ngay tức thì.
1.4. Công cụ Android Studio
1.4.1 Khái niệm

Android Studio là IDE chính thức được sử dụng trong phát triển ứng dụng
Android dựa trên IntelliJ IDEA. Chức năng chính của Android Studio là cung cấp
các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file
phức tạp sau hậu trường. Ngôn ngữ lập trình được sử dụng trong Android Studio là
Java và nó sẽ được cài đặt sẵn trên thiết bị của bạn. 

8
Hình 1. 4. Hình ảnh Android Studio
1.4.2 Lịch sử hình thành

Android Studio đã được công bố vào năm 2013 tại hội nghị Google I/O và
được phát hành vào năm 2014 sau nhiều phiên bản khác nhau. Trước đó, thì các nhà
phát triển của Android thường sử dụng các công cụ như Eclipse IDE hoặc một IDE
Java chung để hỗ trợ cho nhiều ngôn ngữ lập trình khác. Android Studio giúp cho
việc tạo ứng dụng dễ dàng hơn so với các phần mềm chuyên dụng. Với người mới,
sẽ có rất nhiều thứ phải học và nhiều thông tin có sẵn. Thậm chí, chúng còn thông
qua nhiều kênh chính thức hoặc có thể có lỗi khiến người dùng hoang mang.

1.4.3 Hướng dẫn tải về

Việc thiết lập Android Studio tương đối đơn giản vì nó đã được phát triển trình
cài đặt. Khi bạn tải Android Studio sẽ được nhận thêm Android SDK, SDK manager
và rất nhiều công cụ kèm theo khác. Một trong những công cụ duy nhất mà bạn cần
phải có chính là Java Development Kit. 

9
Hình 1. 5. Hình ảnh hướng dẫn sử dụng Android Studio

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG


2.1. Phát biểu bài toán
2.1.1 Bài toán thực tế

Với hiện trạng sự phát triển của các nhà hàng ngày càng nhiều và quy mô
ngày lớn theo thời gian và sự phát triển nhanh chóng của công nghệ điện thoại thông
minh, nên nhóm họp và đưa ra ý tưởng về một ứng dụng đặt món ăn từ xa, hoạt
động trên thiết bị di động cá nhân để có thể giúp các nhà hàng linh hoạt hơn trong
khâu vận hành cho doanh nghiệp của mình.
2.1.2 Hướng giải quyết

Nhóm đề xuất xây dựng một ứng dụng đặt đồ ăn, cho phép người dùng tìm
kiếm, chọn, đặt đồ ăn và được giao hàng tận nơi. Ứng dụng này có ưu điểm giảm
thiểu tối đa việc ghi nhớ đơn đặt hàng trong quá trình vận hành một nhà hàng, kết

10
hợp với công nghệ mới sẽ mang lại cho thực khách một trải nghiệm hiện đại, linh
hoạt hơn, nó còn giúp cho nhà hàng vận hành được chính xác hơn.
2.2. Mô hình tổng quát
Tổng quát các chức năng của app Order Food sẽ có các phần :
 Đăng ký và đăng nhập

 Xem danh sách nhà hàng

 Xem thông tin chi tiết sản phẩm

 Thêm sản phẩm vào giỏ hàng

 Quản lý giỏ hàng

 Đặt hàng

 Theo dõi đơn hàng

 Lịch sử đơn hàng


 Đăng xuất
 Nhận đơn hàng
 Tìm vị trí
 Nhận đơn trên bản đồ
 Trạng thái đơn hàng

11
Hình 2. 1. Hình ảnh sơ đồ usecase tổng quát app Order Food
Tổng quát các chức năng của web admin sẽ có các phần :
 Sửa thông tin shop
 Thêm, sửa, xoá sản phẩm
 Thêm, sửa, xoá danh mục
 Quản lý user (thêm, sửa, xoá)
 Quản lý đơn hàng (thêm, sửa, xoá, hiển thị trạng thái đơn)

12
Hình 2. 2. Hình ảnh sơ đồ usecase tổng quát web admin
2.3. Sơ đồ chức năng
2.3.1 Chức năng đăng nhập

Khi đã có tài khoản Order Food, user có thể đăng nhập bằng các phương thức tương
ứng mà Order Food hỗ trợ. Sau đó hệ thống sẽ kiểm tra xem thông tin đăng nhập có khớp
với dữ liệu không. Nếu khớp thì sẽ trả về màn hình trang chủ của Order Food, nếu không
khớp sẽ có thông báo đăng nhập không thành công.

13
Hình 2. 3. Hình ảnh sơ đồ chức năng đăng nhập

2.3.2 Chức năng đăng ký

Khi muốn tạo mới một tài khoản Order Food, user hãy nhấn vào đăng ký, chọn
phương thức đăng ký tài khoản mới. Sau đó điền đầy đủ thông tin theo yêu cầu của hệ
thống. Sau khi hệ thống xác nhận thành công thông tin thì sẽ tạo mới được một tài khoản
Order Food, nếu không thành công thì user có thể out ra hay tiếp tục tạo cho tới khi thành
công.

14
Hình 2. 4. Hình ảnh sơ đồ chức năng đăng ký

2.3.3 Chức năng thêm sản phẩm vào giỏ hàng

Sau khi chọn được sản phẩm, user nhấn “+” để thêm sản phẩm. Sản phẩm được
thêm giỏ hàng của người dùng, hiển thị thông tin về sản phẩm trong giỏ hàng.

Hình 2. 5. Hình ảnh sơ đồ chứa năng thêm sản phẩm vào giỏ hàng

15
2.3.4 Chức năng sửa số lượng sản phẩm trong giỏ hàng

Người dùng thực hiện thao tác sửa số lượng sản phẩm, ví dụ như nhấn vào
nút "+" hoặc "-" để tăng hoặc giảm số lượng, hoặc nhập số lượng mới vào một
trường dữ liệu. Khi số lượng sản phẩm được sửa đổi, ứng dụng cập nhật thông tin
trong giỏ hàng. Số lượng sản phẩm mới được lưu trữ hoặc cập nhật trong danh sách
sản phẩm trong giỏ hàng. Sau khi số lượng sản phẩm được sửa đổi, tổng giá trị của
giỏ hàng cần được cập nhật để hiển thị cho người dùng

Hình 2. 6. Hình ảnh sơ đồ chức năng sửa số lượng sản phẩm

2.3.5 Chức năng xoá sản phẩm trong giỏ hàng

Người dùng chọn sản phẩm cần xoá bằng cách nhấn vào một nút hoặc lựa chọn
từ danh sách sản phẩm trong giỏ hàng. Sau khi người dùng chọn sản phẩm để xoá,
ứng dụng hiển thị một hộp thoại xác nhận để xác định rõ rằng người dùng muốn xoá
sản phẩm này khỏi giỏ hàng. Sau khi xoá sản phẩm, tổng giá trị của giỏ hàng cần
được cập nhật để hiển thị cho người dùng. Giao diện người dùng cần được cập nhật
để hiển thị danh sách sản phẩm mới sau khi xoá.

16
Hình 2. 7. Hình ảnh sơ đồ chức năng xóa sản phẩm trong giỏ hàng

2.3.6 Chức năng đặt hàng

Trước khi đặt hàng, ứng dụng hiển thị thông tin về giỏ hàng của người dùng.
Người dùng cung cấp thông tin liên quan đến địa chỉ giao hàng, thông tin liên hệ và
các yêu cầu đặc biệt khác. Trước khi hoàn tất quá trình đặt hàng, người dùng được
yêu cầu xác nhận thông tin đơn hàng. Sau khi xác nhận đặt hàng, ứng dụng thực
hiện xử lý đơn hàng. Quá trình này bao gồm xác nhận thông tin, tạo đơn hàng trong
hệ thống và cập nhật trạng thái đơn hàng. Giao diện người dùng được cập nhật để
hiển thị thông báo đặt hàng thành công và thông tin đơn hàng liên quan.

17
Hình 2. 8. Hình ảnh sơ đồ chức năng đặt hàng

2.3.7 Chức năng thêm, sửa, xoá của admin

Chức năng "Thêm, Sửa, Xóa" của admin thường được sử dụng để quản lý và
điều chỉnh thông tin liên quan đến người dùng, sản phẩm, danh mục, đơn hàng.
Giúp quản lý hệ thống dễ dàng và linh hoạt, cho phép thay đổi và điều chỉnh các
thông tin theo nhu cầu và yêu cầu của hệ thống.

18
Hình 2. 9. Hình ảnh sơ đồ chức năng thêm, sửa, xóa của admin

2.4 Phân tích ca sử dụng

2.4.1 Ca sử dụng đăng nhập

Bảng 2. 1. Bảng ca sử dụng đăng nhập

Use case Đăng nhập

Actor User

Description Đăng nhập vào hệ thống

Pre-condition Thiết bị được kết nối wifi và đã có tài khoản Order Food

Flows 1. Người dùng mở app Order Food


2. Điền đầy đủ các thông tin cần thiết
Lúc này hệ thống sẽ xác nhận yêu cầu đăng nhập của user.

19
2.4.2 Ca sử dụng đăng ký

Bảng 2. 2. Bảng ca sử dụng đăng ký

Use case Đăng ký

Actor User

Description Đăng ký tài khoản

Pre-condition Thiết bị được kết nối wifi và chưa có tài khoản Order Food
hoặc đã có tài khoản mà muốn đăng ký thêm một tài khoản
mới.

Flows 1. Người dùng mở app Order Food


2. Điền đầy đủ các thông tin cần thiết
Lúc này hệ thống sẽ xác nhận yêu cầu đăng ký của user.

2.4.3 Ca sử thêm sản phẩm vào giỏ hàng

Bảng 2. 3. Bảng ca sử dụng thêm sản phẩm vào giỏ hàng

Use case Thêm sản phẩm vào giỏ hàng

Actor User

Description Thêm sản phẩm vào giỏ hàng khi muốn mua hàng

Pre-condition Người dùng đã sử dụng app.

Flows 1. Người dùng xem thông tin chi tiết về sản phẩm và
quyết định thêm vào giỏ hàng

20
2. Hệ thống hiển thị giao diện giỏ hàng cho người dùng
3. Người dùng xem lại thông tin sản phẩm trong giỏ
hàng và kiểm tra chi tiết đơn hàng
4. Hệ thống thêm sản phẩm vào giỏ hàng
5. Hệ thống cập nhật thông tin giỏ hàng.

2.4.4 Ca sử dụng xoá sản phẩm khỏi giỏ hàng

Bảng 2. 4. Bảng ca sử dụng xoá sản phẩm khỏi giỏ hàng

Use case Cài đặt thông tin

Actor User

Description Người dùng muốn xoá một sản phẩm khỏi giỏ hàng trong
ứng dụng đặt đồ ăn.

Pre-condition User đã đăng nhập


Giỏ hàng có ít nhất một sản phẩm

Flows 1. Chọn sản phẩm cần xoá khỏi giỏ hàng


2. Hệ thống xác nhận việc xoá, yêu cầu xác nhận từ user
3. User xác nhận xoá
4. Hệ thống xoá sản phẩm khỏi giỏ hàng. Khi đó thông
tin sẽ được lưu vào database.
5. Hiển thị thông báo thành công, cập nhật thông tin giỏ
hàng

2.4.5 Ca sử dụng đặt hàng

21
Bảng 2. 5. Bảng ca sử dụng đặt hàng

Use case Đặt hàng

Actor User

Description Người dùng muốn đặt hàng và giao đồ ăn thông qua ứng
dụng giao đồ ăn.

Pre-condition User đã đăng nhập


Có sản phẩm, điền đầy đủ thông tin

Flows 1. User xem thông tin chi tiết về giỏ hàng và chọn tiếp
tục đặt hàng

2. User điền thông tin địa chỉ giao hàng

3. User xác nhận đặt hàng

4. Hệ thống xác nhận đơn hàng và tạo thông tin đơn


hàng

5. Hệ thống gửi thông tin đơn hàng đến nhân viên giao
hàng

2.4.6 Ca sử dụng nhận đơn hàng

Bảng 2. 6. Bảng ca sử dụng nhận đơn hàng

Use case Shipper nhận đơn hàng

Actor Shipper

Description Shipper nhận đơn hàng và tiến hành giao đồ ăn cho khách
hàng.

22
Pre-condition Shipper đã đăng nhập app giao đồ ăn
Có ít nhất một đơn hàng đang chờ được giao

Flows 1. Nhân viên giao hàng đăng nhập vào ứng dụng giao
đồ ăn

2. Hệ thống hiển thị danh sách các đơn hàng đang chờ
giao cho shipper.

3. Nhân viên giao hàng chọn một đơn hàng để nhận.

4. Hệ thống ghi nhận nhân viên giao hàng đã nhận đơn


hàng và cập nhật trạng thái đơn hàng.

5. Nhân viên giao hàng xem thông tin chi tiết về đơn
hàng, bao gồm địa chỉ giao hàng và chi tiết sản phẩm.

6. Nhân viên giao hàng giao đồ ăn cho khách hàng tại


địa chỉ đã cung cấp

7. Khách hàng nhận đồ ăn từ nhân viên giao hàng.

8. Nhân viên giao hàng cập nhật trạng thái giao hàng
trên ứng dụng.

9. Hệ thống ghi nhận đơn hàng đã được giao thành công


và cập nhật trạng thái đơn hàng.

2.4.7 Ca sử dụng thêm/sửa/xoá của Admin

Bảng 2. 7. Bảng ca sử dụng thêm/sửa/xoá

Use case Admin thêm/sửa/xoá

Actor Admin

23
Description Quản lý thông tin bằng cách thêm/sửa/xoá

Pre-condition Admin đã đăng nhập

Flows 1. Admin chọn chức năng thêm/sửa/xoá

2. Admin nhập thông tin cần thiết

3. Hệ thống kiểm tra tính hợp lệ

4. Hệ thống cập nhật dữ liệu

5. Thông báo thành công, hiển thị thông tin được cập
nhật

2.5. Xây dựng cơ sở dữ liệu

2.5.1 Xây dựng cơ sở dữ liệu

App sẽ sử dụng cơ sở dữ liệu phi quan hệ, cơ sở dữ liệu được thiết kế sẵn
và tùy theo mỗi chức năng của app mà các bảng được thiết kế với những trường
chứa những thuộc tính khác nhau:

24
Hình 2. 10. Hình ảnh mô hình quan hệ cơ sở dữ liệu

2.5.2 Bảng user_role

Bảng 2. 8. Bảng user_role

ST Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả


T

1 user_id int Khóa chính Khoá chính

2 role Varchar(255) Tên quyền


người dùng

2.5.3 Bảng shop

Bảng 2. 9. Bảng shop

25
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả

1 Id Int(11) Khóa chính Khóa chính của


bảng

2 address Varchar(255) Bắt buộc Địa chỉ shop

3 name Varchar(255) Bắt buộc Tên shop

4 phone Varchar(255) Bắt buộc Số điện thoại để


liên lạc với shop

5 user_id Int(11) Khoá phụ Khoá phụ để liên


kết với bảng user

2.5.4 Bảng user

Bảng 2. 10. Bảng user

STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả

1 id Int(11) Khóa chính Khóa chính của bảng

2 age Int(11) Bắt buộc Tuổi

3 avatar_url Varchar(255) Bắt buộc Đường dẫn avatar

4 birthdate date Bắt buộc Ngày sinh

5 home_address Varchar(255) Bắt buộc Địa chỉ

6 name Varchar(255) Bắt buộc Tên

7 password Varchar(255) Bắt buộc Mật khẩu

8 phonenumber Varchar(255) Bắt buộc Số điện thoại

9 username Varchar(255) Bắt buộc Tên đăng nhập


26
27
2.5.5 Bảng categories

Bảng 2. 11. Bảng categories

STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả

1 id Int (11) Khóa chính Khóa chính của bảng

2 category_url Varchar(25) Bắt buộc

3 name Varchar(25) Bắt buộc

4 shop_id Int(11) Khoá phụ Liên kết với bảng


shop

2.5.6 Bảng products

Bảng 2. 12. Bảng products

STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả

1 id Int(11) Khoá chính Khoá chính của bảng

2 description Varchar(255) Mô tả chi tiết sản


phẩm

3 image_url Varchar(255) Bắt buộc Ảnh sản phẩm

4 name Varchar(255) Bắt buộc Tên sản phẩm

5 price Double Bắt buộc Giá sản phẩm

6 categories_id Int(11) Khoá phụ Liên kết với bảng


categories

7 orders_id Int(11) Khoá phụ Liên kết với bảng


orders

28
2.5.7 Bảng orders

Bảng 2. 13. Bảng orders

STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả

1 id Int(11) Khoá chính Khoá chính của bảng

2 comment Varchar(255)

3 created_at datetime Bắt buộc Thời gian tạo order

4 price Double Bắt buộc Giá order

5 user_id Int(11) Khoá phụ Liên kết với bảng


user

CHƯƠNG 3: CHƯƠNG TRÌNH THỰC NGHIỆM


3.1. Hướng dẫn cài đặt
● Bước 1: Tải bản cài đặt với hệ điều hành di động Android.
● Bước 2: Nhấn vào bản vừa tải để cài đặt và nhấn Tiếp tục, xác nhận khi
chương trình yêu cầu.
● Bước 3: Hoàn thiện và sử dụng app.
3.2. Kiến trúc chương trình mô hình triển khai ứng dụng
● Mô hình sử dụng MVVM
● Android Manifest dùng để khai báo application các activity quyền người
dùng của ứng dụng
● Thiết lập các lớp giao diện View Activity , Fragment. Giao diện được viết
trong các file layout.xml
● Khởi tạo các lớp model entities để lưu trữ cầm dữ liệu ứng dụng
29
● Khởi tạo các lớp viewmodel để xử lý dữ liệu sự kiện
● Trong Activity or Fragment hiển thị gọi các viewmodel , viewmodel có
nhiệm vụ cầm control luồng dữ liệu sự kiện quan sát dữ liệu sự kiện Observers dữ
liệu sự kiện đó nếu có sự thay đổi lập tức thông báo lên view để Main Thread
update lại UI ứng dụng
● Sử dụng API GG Map để làm hiển thị thông tin đường đi, tính quãng đương
di chuyển

3.3. Thiết kế giao diện


3.3.1. Giao diện app Order Food

● Màn hình đăng nhập

Hình 2. 11. Hình ảnh giao diện đăng nhập

Màn hình đăng nhập bao gồm:


1. Màn hình 1: Nhập username, password
2. Màn hình 2: Chọn button đăng nhập

30
● Màn hình Shop
Màn hình shop chủ gồm:
- Danh sách cửa hàng:

Hình 2. 12. Hình ảnh giao diện danh sách cửa hàng

+ Hiện thông tin của mỗi cửa hàng : Đánh giá (sao), số điện thoại, địa chỉ.
- Nhấn chọn vào một cửa hàng:

31
Hình 2. 13. Hình ảnh giao diện danh sách món ăn

+ Hiển thị danh sách món ăn : Cho phép người dùng thêm món ăn vào giỏ hàng
- Nhấn vào giao hàng:

32
Hình 2. 14. Hình ảnh giao diện thông tin đơn hàng

+ Hiển thị thông tin đơn hàng: Số lượng sản phẩm, đơn giá, phương thưc thanh
toán.

● Màn hình đơn hàng


- Hiển thị danh sách đơn hàng

33
Hình 2. 15. Hình ảnh giao diện danh sách đơn hàng

- Nhấn vào đơn hàng: Hiện thông tin đơn hàng

34
Hình 2. 16. Hình ảnh giao diện thông tin đơn hàng

● Màn hình tôi

35
Hình 2. 17. Hình ảnh giao diện màn hình tôi

Màn hình tôi cho phép: Sửa thông tin, thay đổi password, đăng xuất.
3.3.2. Giao diện app Ship

● Màn hình chính

36
Hình 2. 18. Hình ảnh giao diện màn hình chính

Màn hình chính được thể hiện trong hình bao gồm các lựa chọn về:
- Đơn hàng đã hoàn thành
- Đơn hàng đang được giao
- Vào phiên làm việc
- Edit profile
- Đăng xuất
 Màn hình đơn hàng đã hoàn thành
Hiển thị danh sách đơn hàng đã hoàn thành

37
Hình 2. 19. Hình ảnh giao diện danh sách đơn hoàn thành

 Màn hình đơn hàng đang giao


 Hiển thị danh sách các đơn hàng đang giao

38
Hình 2. 20. Hình ảnh giao diện đơn hàng đang giao

 Nhấn vào đơn hàng:

39
Hình 2. 21. Hình ảnh giao diện khi nhấn vào đơn hàng
 Khi nhấn giao tới app sẽ tự động chuyển sang app Google Maps
 Khi nhấn vào hoàn thành đơn hàng sẽ được chuyển vào đơn hàng đã hoàn
thành

 Màn hình vào phiên làm việc

40
Hình 2. 22. Hình ảnh giao diện bản đồ phiên làm việc
- Khi nhấn vào biểu tượng mũi tên màu cam sẽ hiện ra giao diện địa chỉ khách hàng

41
Hình 2. 23. Hình ảnh giao diện khi nhấn vào địa chỉ khách hàng
- Khi nhấn vào nút chỉ đường sẽ chuyển sang app Google Maps

3.3.3. Giao diện web Admin

42
KẾT LUẬN
1. Kết quả đạt được

● Sau một thời gian tập trung triển khai đề tài, nhóm đã hoàn thành được app
Order Food với giao diện đẹp, các thao tác sử dụng dễ dàng, thân thiện với người
dùng.
● Phần mềm có thể ứng dụng thực tiễn đối với tất cả mọi người.
● Nắm được các bước xây dựng một app đặt đồ ăn đúng quy trình.
● Bên cạnh đó, nhóm cũng được mở rộng thêm các kiến thức chuyên ngành
mới nhờ việc tìm hiểu một số kiến thức lập trình để áp dụng vào việc phát triển ứng
dụng này. Nhờ vậy, kỹ năng tự học và vận dụng các kỹ năng mới của nhóm được
nâng cao hơn.
● Khi thực hiện và hoàn thành dự án, nhóm cũng đã biết thêm được nhiều kinh
nghiệm quý giá khi xây dựng app nói riêng và lập trình android. Những kỹ năng này
sẽ nền tảng để giúp nhóm em nâng cao trình độ bản thân, kinh nghiệm trong thực tế
để có thể làm việc ngoài các doanh nghiệp sau này.
2. Hạn chế của đề tài

Phần mềm xây dựng app Order Food tuy đã hoàn thành xong vẫn không tránh
khỏi những thiếu sót cũng như những hạn chế nhất định:

● Kỹ năng phân tích hệ thống còn nhiều hạn chế


● Các chức năng vẫn chưa được đầy đủ và hoàn hảo như mong đợi
3. Hướng phát triển

● Tiếp tục bổ sung những chức năng mà app chưa có để app có thể ứng dụng
rộng rãi trong mọi cửa hàng.
● Tiếp tục hoàn thiện chương trình hi vọng có thể đáp ứng được mọi nhu cầu
của người sử dụng.

43
TÀI LIỆU THAM KHẢO
Các trang web tham khảo: 
[1] https://docs.oracle.com/en/java/
[2] https://www.sqlite.org/docs
[3] http://wab-component.com/cong-cu-tao-ung-dung-android/
[4] https://snapcraft.io/android-studio

44

You might also like