Tải bản đầy đủ (.pdf) (67 trang)

Đồ án ứng dụng đặt đồ ăn trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.14 MB, 67 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2

ỨNG DỤNG ĐẶT ĐỒ ĂN TRỰC TUYẾN

GIẢNG VIÊN HƯỚNG DẪN
Ths. Trần Anh Dũng
Trần Hoàng Gia Bảo – 19521258
Nguyễn Trọng Tính - 19521024

TP. HỒ CHÍ MINH, 2022


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 2

ỨNG DỤNG ĐẶT ĐỒ ĂN TRỰC TUYẾN
GIẢNG VIÊN HƯỚNG DẪN
Ths. Trần Anh Dũng

Trần Hoàng Gia Bảo – 19521258
Nguyễn Trọng Tính - 19521024


TP. HỒ CHÍ MINH, 2022


LỜI CẢM ƠN
Trong quá trình học tập, đề ra ý tưởng và xây dựng phát triển đồ án 2 với đề tài “Ứng
dụng đặt đồ ăn trực tuyến” chúng em đã nhận được sự chỉ dạy nhiệt tình, những ý kiến đóng
góp hỗ trợ của thầy thơng qua các tiết học, trên group lớp hay trong thời gian báo cáo tiến độ
giữa kỳ để có thể hồn thành đồ án này.

Nhóm chúng em xin được bày tỏ lịng biết ơn sâu sắc đến thầy Trần Anh Dũng người
đã hỗ trợ giúp đỡ trực tiếp cũng như gián tiếp về mặt kiến thức, tài liệu, phương pháp để chúng
em hôm nay có thể hồn thành được đồ án cuối kỳ của mơn học.

Nhóm chúng em chân thành cảm ơn thầy đã dành bỏ ra thời gian cá nhân của bản thân
để kiểm tra, đưa ra nhận xét và góp ý cho các tính năng cũng như hướng đi của đồ án. Điều này
đã hỗ trợ chúng em rất nhiều trong việc phát triển hoàn thiện đồ án sao cho phù hợp với thực
tiễn cuộc sống.

Tuy dù nhóm đã rất cố gắng trong suốt quá trình phát triển đồ án, nhưng rất có thể sẽ
vẫn khơng tránh khỏi các sai sót, các hạn chế. Vì thế chúng em mong sẽ cịn nhận được nhiều
sự góp ý, chỉ dạy của thầy để đồ án của chúng em có thể ngày càng hồn thiện hơn.

Một lần nữa nhóm chúng em xin chân thành cảm ơn thầy !

TP.HCM, tháng 12 năm 2022

2


TRƯỜNG ĐẠI HỌC


Độc lập – Tự Do – Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
Tp.HCM, ngày 27 tháng 12 năm 2022

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Ứng dụng đặt đồ ăn trực tuyến
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 10/09/22 đến ngày 27/12/22
Sinh viên thực hiện:
Nguyễn Trọng Tính – 19521024
Trần Hồng Gia Bảo - 19521258

1


Nội dung đề tài
1. Lý do chọn đề tài:
Trong bối cảnh hoạt động kinh doanh khó khăn do ảnh hưởng đại dịch, cùng với sự
phát triển ngày càng mạnh mẽ của cơng nghệ, ngày càng có nhiều người sử dụng dịch vụ
giao đồ ăn tận nơi bằng ứng dụng di động. Xu hướng này được dự đoán sẽ vẫn phát triển
mạnh, làm thay đổi toàn bộ ngành F&B.
Nắm bắt được điều đó, rất nhiều nhà hàng đã và đang tập trung vào lĩnh vực kinh
doanh trực tuyến, bán đồ ăn cho khách thông qua các ứng dụng trên điện thoại di động.
Khơng ít nhà hàng thay đổi hồn tồn mơ hình kinh doanh, chuyển hoạt động 100% lên
nền tảng online. Từ đó cũng hình thành một số loại mơ hình nhà hàng mới như Cloud
Kitchen hay Virtual Restaurant.
THỰC TẾ THỊ TRƯỜNG ĐẶT ĐỒ ĂN ONLINE TẠI VIỆT NAM
Theo kết quả bản “Khảo sát thị trường về nhu cầu tiêu dùng ngành ẩm thực Việt

Nam” do Kantar thực hiện năm 2020, có đến 43% người dân TpHCM và 34% người dân
Hà Nội đặt đồ ăn trực tuyền ít nhất một lần mỗi tuần. Đặc biệt, vì mối lo ngại dịch bệnh,
người dân sẽ có 2 lựa chọn mua đồ ăn là mua mang đi (take away) và đặt giao tận nhà
(home delivery), nhưng tỉ trọng đặt đồ ăn giao tận nhà lại cao gấp đôi so với mua mang đi.
Trong năm 2019, GrabFood, Airpay, Now đã “đặt cược” vào thị trường giao đồ ăn
trực tuyến bằng việc đổ tiền khuyến mãi để thay đổi hành vi người dùng. Số lần người
dùng đặt đơn ăn online tăng dần, từ mỗi tháng đặt 1-2 lần đã nâng lên mỗi tuần 1-2 lần và
sẽ tiếp tục tăng.
Dù thực tế thị phần đồ ăn giao tận nơi chỉ chiếm khoảng 30% tổng thị phần ngành
hàng F&B tại Việt Nam, tuy nhiên tốc độ tăng trưởng lại rất cao và chưa có dấu hiệu dừng
lại.
Trong mơ hình bán đồ ăn trực tuyến, cách phục vụ khách hàng cũng khác nhiều so
với kiểu nhà hàng truyền thống:
o Khách hàng không ăn ngay sau khi đầu bếp nấu, vì vậy nhà hàng phải cực kỳ
chú trọng đến quy trình đóng gói và vận chuyển. Đóng gói món ăn cần lưu ý
2


đến việc giữ được hương vị và hình thức đẹp, đồng thời việc kết hợp với đơn
vị vận chuyển uy tín cũng hạn chế rủi ro giao trễ, giao sai đơn cho khách.
o Khách hàng sẽ đánh giá món ăn và cách phục vụ của nhà hàng, dựa vào
những review đó mà các khách sau có quyết định đặt món hay khơng. Vì vậy
nhà hàng phải thật sự khéo léo trong cách chăm sóc khách hàng và xử lý sự
cố.
o Đặc điểm của kinh doanh đồ ăn online là nhà hàng chỉ cần chú trọng vào món
ăn, các cơng việc khác sẽ được các bên thứ 3 như nền tảng gọi món, đơn vị
vận chuyển lo. Mặt khác bạn sẽ khơng tiếp xúc trực tiếp với khách hàng. Do
đó, trọng trách làm khách hàng hài lòng sẽ phụ thuộc rất nhiều vào đội bếp.
2. Mục tiêu: bao gồm 2 mục tiêu chính:
1. Xây dựng hệ thống đặt đồ ăn trên nền tảng di động:

o Giảm tối đa thời gian tiêu tốn cần thiết cho việc đặt hàng.
o

Cung cấp thông tin hữu ích, đa dạng nhanh chóng và chính xác

o Tư vấn lựa chọn dựa trên thông tin đầu vào của khách hàng
o Tìm kiếm thơng tin liên kết các cửa hang liên quan
2. Xây dựng ứng dụng hỗ trợ bên phía admin/nhà hàng:
o

Cho phép phía trung tâm quản lý mặt hàng, giá cả, lịch sử đặt hàng

o

Giới thiệu thông tin về cửa hàng nổi tiếng…

o

Trò chuyện với chủ cửa hàng

3.Phạm vi:
Phạm vi môi trường: Ứng dụng hỗ trợ hệ thống chuỗi đặt hàng thức ăn trực tuyến
Phạm vi chức năng:

− Đối với bên phía người dùng:
+ Hỗ trợ người dùng đặt hàng trực tuyến một cách dễ dàng nhất
+ Phân tích được nhu cầu và đưa ra tư vấn hợp lý đối với người dùng
+ Cung cấp liên hệ trực tiếp đến với nhân viên tư vấn khi vấn đề đặt ra ngồi
phạm vi của bản thân nó và cập nhập được cách xử lý đối với các trường
hợp này


− Đối với phía cửa hàng/admin:
+ Cung cấp dữ liệu, thơng số.
3


+ Hỗ trợ tính tốn, đánh giá doanh thu

4. Đối tượng sử dụng:
− Tất cả các cửa hàng đồ ăn vừa và nhỏ muốn thêm phương thức giao đồ
ăn trực tuyến
− Người dùng muốn đặt đồ ăn trực tuyến

5. Phương pháp thực hiện:
Phương pháp làm việc:

Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online dưới sự
hướng dẫn của giảng viên hướng dẫn.
Phương pháp nghiên cứu:

− Phân tích nhu cầu sử dụng của đối tượng người dùng.
− Nghiên cứu tài liệu các công nghệ liên quan.
Phương pháp công nghệ:
− Quản lý source code thông qua Github
− Sử dụng Trello, Google doc,… để quản lý tiến trình và tài liệu

6. Nền tảng cơng nghệ:
− Ngơn ngữ lập trình Kotlin
− Mơi trường phát triển tích hợp (IDE) Android Studio
− Cơ sở dữ liệu thời gian thực Firebase

− Dịch vụ kho lưu trữ mã nguồn GitHub

7. Kết quả mong đợi:
-

Các chức năng cơ bản của một ứng dụng đặt hàng online phải được thực hiện
một cách chính xác, hiệu quả, không xảy ra lỗi.

-

Thao tác đối với người dùng dù là khách hàng đặt đồ ăn hay cửa hàng cung
cấp cũng phải thuận tiện, không bị nhập nhằng hay gây khó hiểu, khó sử
dụng.

-

Mục tiêu của ứng dụng nhằm giúp doanh nghiệp đạt được hiệu quả mở rộng
tập khách hàng, khơng chỉ gói gọn trong địa phương mà có thể tiếp cận được
khách hàng trên toàn quốc.
4


8. Hướng phát triển của đề tài:
− Tăng cường tốc độ xử lý bằng các thuật toán nhanh hơn, cải thiện trải nghiệm
của người dùng.
− Chỉnh sửa UI/UX sao cho phù hợp hơn nữa với người dung.
− Nhúng được quảng cáo vào ứng dụng, hỗ trợ thu them lợi nhuận.
− Thiết kế chức năng thống kê (statistic) với nhiều loại hình biểu đồ theo nhiều
mốc thời gian khác nhau hỗ trợ cho người bán.
− Thêm chức năng block người bán từ người mua và ngược lại.

− Thêm chức năng theo dõi, tình trạng đơn hang
− Thêm chức năng tích điểm thành viên

9. Kế hoạch làm việc:
Thời gian thực hiện từ ngày 10/09/22 đến ngày kết thúc môn Đồ án 2. Nhóm chia thành 2
giai đoạn cụ thể:
Giai đoạn 1: Hồn thiện giao diện người dùng và các tính năng cơ bản. Gồm 3
sprint với thời gian mỗi sprint kéo dài 2 tuần:
Sprint 1: Tìm hiểu cơng nghệ cho hệ thống giao đồ ăn trên nền tảng mobile
Sprint 2: Phân tích yêu cầu và chức năng, chuẩn bị tài liệu.

5


Sprint 3: Xây dựng và phát triển ứng dụng với các chức năng cơ bản
Sprint

Thời gian

Công việc dự kiến

Sprint 1

13/3/2022 - 27/3/2022

− Tìm hiểu cơng nghệ
− Tìm hiểu các u cầu nghiệp vụ
của đề tài

Sprint 2


28/3/2022 - 11/4/2022

− Phân tích yêu cầu và chức năng
của ứng dụng
− Viết tài liệu mơ tả
− Xây dựng bản vẽ
− Tìm hiểu craw dữ liệu

Sprint 3

12/4/2022 - 26/4/2022

− Xây dựng giao diện
− Xây dựng các tính năng cơ bản
của ứng dụng
− Liên kết các API bên thứ ba.

Giai đoạn 2: Hồn thiện các tính năng năng cơ bản và nâng cao của ứng dụng, triển
khai và kiểm thử ứng dụng, viết báo cáo. ... Gồm 3 sprint với thời gian mỗi sprint
kéo dài 2 tuần:
Sprint 4: Hồn thiện tính năng của ứng dụng
Sprint 5: Xây dựng các chức năng mở rộng
Sprint 6: Triển khai và viết báo cáo
Sprint

Thời gian

Công việc dự kiến


Sprint 4

27/4/2022 - 11/5/2022

− Hoàn thiện giao diện ứng dụng
− Tiếp tục hoàn thiện các tính
năng của ứng dụng ở giai
đoạn 1
− Kiểm thử ứng dụng
6


Sprint 5

12/5/2022 - 26/5/2022

− Hồn thiện các tính năng của
ứng dụng
− Kiểm thử ứng dụng

Sprint 6

27/5/2021 - báo cáo cuối

− Kiểm thử ứng dụng

kỳ

− Viết báo cáo


Tp.Hồ Chí Minh, ngày 13 tháng 3 năm 2022

7


TĨM TẮT BÁOCÁO
Phần 1: Giới thiệu bài tốn, phạm vi, kết quả hướng tới khi lựa chọn đề tài.
Phần 2: Mơ tả thơng tin đồ án gồm:
• Cơng nghệ kĩ thuật sử dụng.
• Mơ tả chức năng chính của hệ thống.
• Mơ tả màn hình và luồng thực thi
• Mơ tả kiến trúc hệ thống.
• Yêu cầu hệ thống khi đặt phần mềm.
Phần 3: Phân công công việc.
Phần 4: Tự đánh giá đồ án, nhìn lại những ưu điểm, hạn chế của dự án, đề ra
hướng phát triển.
Phần 5: Tài liệu tham khảo

8


MỤCLỤC

LỜI CẢM ƠN .......................................................................................................................................... 2
ĐỀ CƯƠNG CHI TIẾT ........................................................................................................................... 1
3.

Phạm vi: .................................................................................................................................... 3

4.


Đối tượng sử dụng: .................................................................................................................. 4

5.

Phương pháp thực hiện: .......................................................................................................... 4

6.

Nền tảng công nghệ: ................................................................................................................ 4

7.

Kết quả mong đợi: ................................................................................................................... 4

8.

Hướng phát triển của đề tài: ................................................................................................... 5

9.

Kế hoạch làm việc: ................................................................................................................... 5

TÓM TẮT BÁOCÁO ........................................................................................................................... 8
MỤCLỤC ................................................................................................................................................. 9
1 - GIỚITHIỆU.................................................................................................................................... 12
1.1

Bài toán .................................................................................................................................. 12


1.2

Phạm vi ................................................................................................................................... 12

1.3

Kết quả hướngtới ................................................................................................................ 13

2 – CÔNG NGHỆ KĨ THUẬT SỬ DỤNG .................................................................................... 14
2.1

Ngơn ngữ lập trình Kotlin ..................................................................................................... 14

2.1.1 Sơ lược ngôn ngữ ..................................................................................................................... 14
2.1.2 Lý do sử dụng Kotlin ............................................................................................................... 15
2.2

Mơi trường phát triển tích hợp (IDE) Android Studio ...................................................... 15

2.2.1 Giới thiệu sơ lược android studio ............................................................................................. 16
2.2.2 Một số điểm mạnh của android studio so với các IDE khác .................................................... 16
2.3

Cơ sở dữ liệu thời gian thực Firebase .................................................................................. 17

2.4

Dịch vụ kho lưu trữ mã nguồn GitHub ............................................................................... 18

2.4.1 Sơ lược về GitHub ................................................................................................................... 18

2.4.2 Lợi ích của GitHub .................................................................................................................. 18
3 - MÔ TẢ CHỨC NĂNG .................................................................................................................... 19
3.1

Ứng dụng Đặt hàng................................................................................................................ 19

3.1.1 Login bằng account ứng dụng.................................................................................................. 19

9


3.1.2 Login bằng google ................................................................................................................... 20
3.1.3 Login bằng facebook ............................................................................................................... 21
3.1.4 Signup ...................................................................................................................................... 22
3.1.5 Forgot password....................................................................................................................... 22
3.1.6 Xác nhận địa chỉ của bản thân ................................................................................................. 23
3.1.7 Tìm kiếm món ăn ..................................................................................................................... 23
3.1.8 Phân loại món ăn...................................................................................................................... 23
3.1.9 Giỏ hàng................................................................................................................................... 24
3.1.10Thanh tốn ............................................................................................................................... 25
3.1.11Thêm món ăn ưa thích ............................................................................................................. 25
3.1.12Quản lý đơn hàng ..................................................................................................................... 26
3.1.13Cập nhật thông tin cá nhân ...................................................................................................... 27
3.2

Ứng dụng Cửa hàng............................................................................................................... 28

3.2.1 Login bằng account ứng dụng.................................................................................................. 28
3.2.2 Signup ...................................................................................................................................... 29
3.2.3 Quản lý món ăn ........................................................................................................................ 29

3.2.4 Cập nhật thơng tin cửa hàng .................................................................................................... 31
3.2.5 Phân tích doanh thu.................................................................................................................. 32
4 - KIẾN TRÚC HỆ THỐNG .......................................................................................................... 33
4.1

Sơ đồ kiến trúc hệ thống ........................................................................................................ 33

4.2

MVC ........................................................................................................................................ 33

5 - MƠ TẢ MÀN HÌNH ..................................................................................................................... 35
5.1

Ứng dụng Đặt hàng................................................................................................................ 35

5.1.1 Form đăng nhập ....................................................................................................................... 35
5.1.2 Form Signup ............................................................................................................................ 36
5.1.3 Reset mật khẩu ......................................................................................................................... 37
5.1.4 Màn hình Home ....................................................................................................................... 38
5.1.5 Chọn vị trí................................................................................................................................ 40
5.1.6 Màn hình chi tiết món ăn ......................................................................................................... 41
5.1.7 Màn hình Favorite.................................................................................................................... 43
5.1.8 Màn hình giỏ hàng ................................................................................................................... 44
5.1.9 Màn hình thanh tốn ................................................................................................................ 45
5.1.10Quản lý tính năng cá nhân ....................................................................................................... 46
5.1.11Quản lý thông tin ..................................................................................................................... 47
5.1.12Phương thức thanh toán ........................................................................................................... 48
5.1.13Lịch sử đặt hàng ....................................................................................................................... 49


10


5.1.14Xem thông tin đơn hàng đã mua .............................................................................................. 50
5.2

Ứng dụng Cửa hàng............................................................................................................... 51

5.2.1 Đăng nhập ................................................................................................................................ 51
5.2.2 Đăng ký .................................................................................................................................... 52
5.2.3 Home page ............................................................................................................................... 53
5.2.4 Trang thêm món ăn .................................................................................................................. 54
5.2.5 Trang sửa món .......................................................................................................................... 55
5.2.6 Profile ...................................................................................................................................... 57
5.2.7 Thống kê doanh thu ................................................................................................................. 58
6 - YÊU CẦU CÀIĐẶT ....................................................................................................................... 59
7 - PHÂN CƠNG CƠNG VIỆC ....................................................................................................... 60
Bảng phân cơng công việc............................................................................................................... 60
8.1

Đánh giá ................................................................................................................................. 62

8.1.1 Ưu điểm: .................................................................................................................................. 62
8.1.2 Nhược điểm : ........................................................................................................................... 62
8.2

Hướng phát triển .................................................................................................................. 63

9 - TÀI LIỆU THAMKHẢO ............................................................................................................ 64


11


1 - GIỚITHIỆU
1.1

Bài tốn
Trong tình hình đại dịch Covid-19 diễn biến phức tạp ở nước ta cũng như thế giới

trong thời gian vừa qua với nhiều loại biến chủng mới xuất hiện thách thức nền y tế, khả năng
quản lý của nhiều nước trên thế giới, hầu hết các ngành dịch vụ thương mại đều đang điêu
đứng vì đang hứng chịu sự suy giảm nghiêm trọng của doanh thu hay nguồn nhu cầu đầu ra
cho thị trường do giãn cách xã hội ở nhiều cấp độ.
Các nhà hàng truyền thống hay các quán ăn tấp nập người qua lại hiển nhiên cũng không
ngoại lệ là một trong nhiều nạn nhân của đại dịch tồn cầu lần này. Người dân khơng thể hay
hạn chế ra đường, không thể tiếp xúc giao lưu hay thực thi các hoạt động ăn uống, đặc biệt là
những người không thường hay nấu ăn tại nhà.
Thấy rõ vấn đề thực tiễn này, và cũng thuận theo sự phát triển của các hệ thống thương
mại điện tử trong thời gian gần đây. Nhóm đưa ra quyết định thực hiện dự án xây dựng “Ứng
dụng đặt đồ ăn trực” với mong muốn hỗ trợ gia tăng doanh số cho các cửa hàng bán đồ ăn địa
phương với khả năng cho phép người dùng đặt đồ ăn từ xa, cũng như hỗ trợ các cửa hàng có
thể dễ dàng quản lý được các đơn đặt hàng đó.

1.2

Phạm vi
Kết hợp với kiến thức học được, nhóm quyết định xây dựng ứng dụng android nhằm số

hoá (các) cửa hàng bán đồ ăn truyền thống. Sau khi ứng dụng được cài đặt, người dùng có thể
xem thơng tin món ăn sau đó thực hiện hàng loạt các thao tác với giỏ hàng hay chức năng đặt

hàng được cung cấp sẵn. Ứng dụng cịn hỗ trợ xếp hạng món ăn dựa trên các đánh giá gần đây,
theo đó có thể hỗ trợ người dùng tham khảo, đưa ra được lựa chọn của bản thân mình. Đồng

12


thời người dùng có thể thêm món ăn ưa thích những như nhắn tin với shop để trò chuyện, khiếu
nại, ….
Đi kèm với đó là một ứng dụng dành cho nhà cung cấp có thể quản lý những đơn hàng
của cửa hàng như thêm xóa sửa các mặt hàng đồ ăn hiện có của bản thân. Nó cịn hỗ trợ quản
lý đơn hàng từ các người đặt hàng, hỗ trợ nhắn tin trao đổi với khách hàng.

1.3

Kết quả hướngtới
Các chức năng cơ bản của một ứng dụng đặt hàng online phải được thực hiện một cách

chính xác, hiệu quả, khơng xảy ra lỗi.
Thao tác đối với người dùng dù là khách hàng đặt đồ ăn hay cửa hàng cung cấp cũng
phải thuận tiện, khơng bị nhập nhằng hay gây khó hiểu, khó sử dụng.
Mục tiêu của ứng dụng nhằm giúp doanh nghiệp đạt được hiệu quả mở rộng tập khách
hàng, khơng chỉ gói gọn trong địa phương mà có thể tiếp cận được khách hàng trên toàn quốc.

13


2 – CƠNG NGHỆ KĨ THUẬT SỬ DỤNG
2.1

Ngơn ngữ lập trình Kotlin


2.1.1

Sơ lược ngơn ngữ

Kotlin là ngơn ngữ lập trình dành cho các ứng dụng đa nền tảng hiện đại, tương thích
hồn tồn với Android và được phát triển bởi JetBrains, công ty đứng sau IntelliJ Java IDE (bộ
công cụ và ứng dụng dành cho nhà phát triển) mà Android Studio dựa trên. Tuy nhiên, đây
không phải là ngôn ngữ lập trình riêng biệt mà được xem là một phương pháp mới để sử dụng
và phát triển code của Java. Kotlin hoạt động liền mạch với Java, nhờ đó giúp các nhà phát triển
yêu thích Java dễ dàng sử dụng thêm một ngơn ngữ lập trình tuyệt vời là Kotlin cũng như tận
dụng thêm các thư viện hữu ích từ ngơn ngữ này.
Kotlin là một ngơn ngữ lập trình kiểu tĩnh chạy trên máy ảo Java (JVM) và có thểđược
biên dịch sang mã nguồn Java hay sử dụng cơ sở hạ tầng trình biên dịch LLVM.

14


2.1.2


Lý do sử dụng Kotlin

Code ngắn gọn, giảm thiểu các đoạn không cần thiết, cấu trúc ngắn, trực quan, dễ học,
dễ làm, dễ sử dụng, tiết kiệm thời gian. Theo ước tính của Ovechkin thì với việc sử dụng
Kotlin, code base có thể được thu nhỏ hơn từ 15-25%.



An tồn, tránh lỗi NullPointerException. NullPointerException xảy ra khi code tham

chiếu đến một biến, nhưng biến lại khơng có giá trị khi ứng dụng đang chạy. Kết quả là
ứng dụng sẽ không có bất kỳ tùy chọn nào ngoại trừ việc báo lỗi. Và tất nhiên, với
Kotlin, đảm bảo các nhà phát triển sẽ khơng gặp phải vấn đề này.



Khả năng tương tác cao, tương thích 100% và đẩy mạnh sử dụng các thư viện hiện có
trong JVM, bao gồm cả SAM support.



Tool làm việc thân thiện, có thể lựa chọn các Java IDE để làm việc hoặc làm việc với
command line.

2.2

Môi trường phát triển tích hợp (IDE) Android Studio

15


2.2.1


Giới thiệu sơ lược android studio

Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để phát triển
ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại
smartphone, các tablet...




Android Studio được đóng gói với một bộ code editor, debugger, các công cụ
performance tool và một hệ thống build/deploy (trong đó có trình giả lập simulator để
giả lập mơi trường của thiết bị điện thoại hoặc tablet trên máy tính) cho phép các lập
trình viên có thể nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp.



Android Studio hỗ trợ các hệ điều hành Windows, Mac OS X và Linux, và là IDE chính
thức của Google để phát triển ứng dụng Android gốc để thay thế cho Android
Development Tools (ADT) dựa trên Eclipse.

2.2.2 Một số điểm mạnh của android studio so với các IDE khác


Một hệ thống xây dựng Gradle linh hoạt



Trình mơ phỏng nhanh và tính năng phong phú



Một mơi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android



Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây
dựng một APK mới




Tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mã
mẫu



Các cơng cụ và khuôn khổ thử nghiệm mở rộng

16


2.3

Cơ sở dữ liệu thời gian thực Firebase

Firebase là một dịch vụ cơ sở dữ liệu thời gian thực được cung cấp bởi Google vàhoạt
động trên nền tảng đám mây. Nó giúp các lập trình phát triển nhanh các ứng dụng di động bằng
cách đơn giản hóa các thao tác với cơ sở dữ liệu.
Dự án được ứng dụng ba trong số rất nhiều dịch vụ hỗ trợ của firebase bao gồm :
+ Firebase Authentication : Dùng để đăng nhập, đăng kí thơng tin khách hàng, thơng tin
cửa hàng . giúp xây dựng các hệ thống xác thực an toàn và dễ dàng hơn, đồng thời cải thiện trải
nghiệm đăng nhập cho người dùng.
+ Firebase Realtime Database : Cơ sở dữ liệu thời gian thực Firebase là cơ sở dữ liệu
NoQuery được lưu trữ trên đám mây cho phép bạn lưu trữ và đồng bộ hóa giữa những người
dùng của bạn trong thời gian thực. Áp dụng trong việc lưu thơng tin tồn bộ ứng dụng, đồng
thời đồng bộ hóa dữ liệu giữa khách hàng, cũng như giữa khách hàng và của hàng.
+ Firebase storage : Cung cấp dịch vụ lưu trữ file dưới dạng tệp âm thanh, hình ảnh,…
Dùng để lưu trữ thơng tin ảnh của món ăn.


17


2.4

Dịch vụ kho lưu trữ mã nguồn GitHub

2.4.1

Sơ lược về GitHub

GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án phần
mềm. Github có đầy đủ những tính năng của Git, ngồi ra nó cịn bổ sung những tính năng về
social để các developer tương tác với nhau.
Github cung cấp các tính năng social networking như feeds, followers, và network graph
để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit.
Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở. Cùng với
Linkedin, Github được coi là một sự thay thế cho CV của bạn. Các nhà tuyển dụng cũng rất hay
tham khảo Github profile để hiểu về năng lực coding của ứng viên.

2.4.2

Lợi ích của GitHub

Quản lý source code dễ dàng: Khi bạn tạo một repo, tồn bộ source code của repo đó
được lưu trên GitHub. Tại đây, bạn có thể coi lại q trình mình đã làm việc thơng qua các
comment sau mỗi lần commit. Và cái hay ở đây, là nhiều người có thể cùng làm một repo.
Tracking sự thay đổi qua các version.
Markdown : là một cách định dạng text trên web. Bạn có thể chỉnh sửa cách hiển thị của

document, format từ như định dạng in đậm hay in nghiêng, thêm hình và tạo list những thứ bạn
có thể làm với Markdown.

18


- MÔ TẢ CHỨC NĂNG

3
3.1

Ứng dụng Đặt hàng
3.1.1

Login bằng account ứng dụng

Flow chính
1. Người dùng muốn đăng nhập
2. Từ màn hình đăng nhập, người
dùng chọn Login.
3. Người dùng nhập thơng tin đăng
nhập
4. Chọn Login
5. Hệ thống hiển thị màn hình chính
của ứng dụng -> đã đăng nhập
thành cơng
Flow ngoại lệ
3.1 Hệ thống báo lỗi nếu người dùng
nhập thông tin đăng nhập sai định dạng
4.1 Chọn Login

5.1 Hệ thống báo lỗi sai định dạng thông tin
Kết thúc flow
3.2 Hệ thống báo lỗi nếu người dùng cung cấp sai thông tin đăng nhập

19


4.2 Chọn Login
5.2 Hệ thống báo lỗi sai thông tin đăng nhập
Kết thúc flow

3.1.2

Login bằng google

Flow chính
1. Người dùng muốn đăng nhập bằng tài khoản google
2. Từ màn hình đăng nhập, người dùng chọn Login by google.
3. Google sẽ hiển thị tài khoản đã đăng nhập trên google service
4. Chọn Continue with *****(google account name)
5. Hệ thống hiển thị màn hình chính của ứng dụng -> đã đăng
nhập thành cơng

20


3.1.3

Login bằng facebook


Flow chính
1. Người dùng muốn đăng nhập bằng tài khoản
facebook
2. Từ màn hình đăng nhập, người dùng chọn
Login by facebook
3. Người dùng đăng nhập tài khoản facebook
mình muốn đăng nhập
4. Chọn Login
5. Hệ thống hiển thị màn hình chính của ứng
dụng -> đã đăng nhập thành cơng
Flow ngoại lệ
5.a Hệ thống báo lỗi nếu gmail dùng để truy cập
facebook của người dùng trùng với email của 1
tài khoản đã tạo sẵn
Kết thúc flow

21


3.1.4

Signup

Flow chính
6. Người dùng muốn đăng kí tài khoản
7. Từ màn hình đăng nhập, người dùng chọn
Signup
8. Hệ thống hiển thị màn hình đăng kí
9. Người dùng nhập thơng tin đăng kí
10. Chọn Signup

Flow ngoại lệ
5.a Hệ thống báo lỗi nếu người dùng nhập thông
tin đăng nhập sai hoặc dùng tài khoản đã tạo sẵn
Kết thúc flow

3.1.5

Forgot password

Flow chính
1. Người dùng muốn đổi mật khẩu
2. Từ màn hình đăng nhập, người dùng chọn
forgot password
3. Hệ thống hiển thị màn hình forgot password
4. Người dùng nhập email đăng kí
5. Người dùng kiểm tra email đăng kí và làm
theo hướng dẫn để lấy lại mật khẩu
Kết thúc flow
Flow thay thế
1.a Từ màn hình chính của ứng dụng, chọn
profile ở thanh điều hướng phía dưới màn hình.
1.a1 Chọn logout
22


×