1. Trang chủ
  2. » Tất cả

Báo cáo đồ án 1 ứng dụng bán đồ ăn nhanh

29 14 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề ứng dụng bán đồ ăn nhanh
Tác giả Đoàn Thanh Hiền
Người hướng dẫn Thái Thụy Hàn Uyển
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Đề Tài: Ứng Dụng Bán Đồ Ăn Nhanh
Năm xuất bản 2022
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 1,77 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Flutter thường bao gồm 2 thành phần chính quan trọng như sau: - Một SDK Software Development Kit: Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ 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 1

ĐỀ TÀI: ỨNG DỤNG BÁN ĐỒ ĂN NHANH

GVHD: Thái Thuỵ Hàn Uyển

Sinh viên thực hiện:

Đoàn Thanh Hiền 17520057

🙡🙢 Tp Hồ Chí Minh, 12/2022 🙠🙣

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

, ngày tháng ……… năm 2022

Người nhận xét

(Ký tên và ghi rõ họ tên)

Trang 3

Ngoài ra, em cũng xin gửi lời cảm ơn đến những thầy cô giáo trong trường ĐH CNTT- ĐHQG Tp HCM nói chung, các thầy cô trong Khoa Công nghệ phần mềm nói riêng đã dạy dỗ cho em kiến thức về lập trình, qua đó em có được cơ sở lý thuyết vững vàng và từ đó hoàn thành tốt đồ án

Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình hoàn thành đồ án

Thành phố Hồ Chí Minh, ngày 27 tháng 12 năm 2022

Trang 4

MỤC LỤC

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 2

LỜI CẢM ƠN 3

MỤC LỤC 4

MỞ ĐẦU 6

1 Lý do chọn đề tài: 6

2 Mục đích của đề tài: 6

3 Đối tượng: 6

4 Phạm vi nghiên cứu: 6

TỔNG QUAN 7

NGHIÊN CỨU THỰC NGHIỆM - LÝ THUYẾT 9

1 Nội dung nghiên cứu 9

a) Cơ sở lý thuyết 9

*Firebase 11

b) Thực trạng 11

c) Giải pháp: 12

2 Phương pháp nghiên cứu 14

PHÂN TÍCH THIẾT KẾ 15

HIỆN THỰC 17

1 Kết quả cài đặt các chức năng 17

1.1 Màn hình Login 17

1.2 Màn hình đăng ký thành viên 18

1.3 Menu 19

1.4 Tài khoản 23

Trang 5

1.5 Thông tin sản phẩm 26

2 Các yêu cầu khác khi cài đặt/sử dụng phần mềm 27

TỔNG KẾT 28

1 Tổng kết 28

2 Hướng phát triển 28

TÀI LIỆU THAM KHẢO 29

Trang 6

MỞ ĐẦU

1 Lý do chọn đề tài:

Với thời đại 4.0 với mọi các mặc hàng hiện tại đều có thể mua bán trực tuyến Qua đại dịch Covid lại càng có thể thấy rõ hơn nhu cầu của người dùng hướng đến việc hướng đến thị trường trực tuyến càng nhiều vì có thể giảm thiểu thời gian đi lại, có nhiều thời gian tham khảo các mặc hàng mà không cần phải e ngại bất cứ điều gì Đây cũng là một cách kinh doanh rất phổ biến và thành công hiện tại mà các nhà kinh doanh to nhỏ hiện tại đang áp dụng

Nhận thức được điều này, em quyết định tìm hiểu và chọn đề tài: “Xây dựng ứng dụng bán đồ ăn nhanh”

Trang 7

TỔNG QUAN

*Về Flutter

Flutter được Google giới thiệu là một người mới trong thế giới ứng dụng

di động Là một SDK mới của Google dành cho các thiết bị di động giúp developers và designers xây dựng nhanh chóng ứng dụng dành cho các thiết bị di động (Android, iOS) Flutter là dự án mã nguồn mở đang

trong giai đoạn thử nghiệm Flutter bao gồm Reactive framework và công nghệ hiển thị 2D (2D rendering engine)và các công cụ phát

trển(development tool) Các thành phần này làm việc cùng nhau giúp ta thiết kế, xây dựng, test, debug ứng dụng Không có gì ngạc nhiên khi Flutter giúp các nhà phát triển tạo ra các ứng dụng native đẹp mắt và giúp họ phát triển các ứng dụng đa nền tảng một cách dễ dàng

Trang 8

các cơ sở dữ liệu.

*Về ứng dụng bán đồ ăn nhanh

Sau khi thực hiện nghiên cứu về các ứng dụng bán đồ ăn nhanh, có khá

nhiều các tính năng cần thiết để có thể hoàn thiện một ứng dụng bán đồ

ăn nhanh hoàn chỉnh và có thể đưa vào kinh doanh một cách thực sự Vì

thời gian có hạn và không đủ nhân lực, em quyết định xây dựng ứng

dụng bán đồ ăn nhanh với các tính năng sau:

- Đăng ký tài khoản người dùng

- Đăng nhập tài khoản người dùng

- Màn hình chính hiển thị những món ăn đang hot

- Màn hình hiển thị tất các các món ăn và phân chia theo từng loại

món ăn

- Màn hình các món ăn yêu thích theo từng tài khoản

- Chức năng yêu thích món theo từng tài khoản

- Chức năng giỏ hàng

- Bảng thông tin người dùng bao gồm chức năng edit thông tin, tuỳ

chỉnh layout, đăng xuất

- Màn hình tính tiền cho món ăn và tiền vận chuyển

Trang 9

NGHIÊN CỨU THỰC NGHIỆM - LÝ THUYẾT

1 Nội dung nghiên cứu

a) Cơ sở lý thuyết

* Flutter

Flutter là một nền tảng hỗ trợ phát triển cho các ứng dụng đa nền cho hệ iOS và Android do tập đoàn Google phát triển Nó được sử dụng vô cùng phổ biến cho nhiệm vụ tạo ra các ứng dụng gốc dành cho Google Flutter thường bao gồm 2 thành phần chính quan trọng như sau:

- Một SDK (Software Development Kit): Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển được các ứng dụng nền của mình Những điều này thường bao gồm các công cụ có trình để biên dịch mã thành các mã gốc dành riêng cho hệ điều hành iOS và Android

- Một Framework (UI Library based on widgets): Mỗi một tập hợp những thành phần giao diện của người dùng đều có thể thực hiện tái sử dụng vô cùng dễ dàng nên người sử dụng có thể cá nhân hóa tùy theo nhu cầu riêng của bản thân mình

Tính năng phát triển nhanh chóng các ứng dụng: Hầu hết, mọi tính năng hot reload của Flutter giúp cho người dùng có thể sử dụng thử nghiệm nhanh chóng và dễ dàng hơn rất nhiều Với khả năng xây dựng giao diện cho người dùng cộng thêm các tính năng về sửa lỗi nhanh chóng nên Flutter đang thu hút không ít người sử dụng lựa chọn Ngoài ra, các trải nghiệm về thực hiện tải lại lần thứ hai đều rất dễ dàng mà không làm mất đi trạng thái ở trên emulator, simulator và device cho cả iOS và Android.UI đẹp mắt và có tính biểu cảm: Flutter thỏa mãn người sử

dụng nhờ các widget built-in vô cùng đẹp mắt dựa theo Material Design

và Cupertino (iOS-flavor), thì các API sẽ thực hiện chuyển động theo

Trang 10

nhiều hướng phong phú, scroll tự nhiên và mượt mà nên có thể tự động nhận thức được các nền tảng cần thiết

Quá trình truy cập với nhiều tính năng và SDK native: Nhờ vậy, các ứng dụng của bạn sẽ trở nên sống động hơn rất nhiều nhờ vào API của

platform, SDK của các bên thứ ba và native code Từ đó, nó sẽ cho phép lập trình viên sử dụng lại được mã Java, Swift và ObjC hiện tại của

mình Nhờ vậy, các truy cập sẽ thực hiện được mọi tính năng mà SDK native dựa trên iOS và Android.Có khả năng phát triển các ứng dụng thống nhất: Nhờ sở hữu các công cụ cũng như thư viện nên người sử dụng có thể dễ dàng đưa ra được ý tưởng của mình vào chính trong cuộc sống trên hệ điều hành iOS và Android Chính vì thế, nếu bạn là người chưa có nhiều kinh nghiệm cho mục đích phát triển các thiết bị di động thì việc lựa chọn Flutter được xem là một phương pháp dễ dàng và rất nhanh chóng trong việc xây dựng ra một ứng dụng di động tuyệt đẹp Ngoài ra, nếu như bạn là một nhà phát triển cho iOS hoặc Android có kinh nghiệm lâu đời thì bạn hoàn toàn có thể sử dụng Flutter dành cho các View của bạn Từ đó tận dụng việc viết ra nhiều code từ Java /

Kotlin / ObjC / Swift đang hiện có mà bạn sở hữu

Thành phần chính của Flutter:

- Framework (UI Library based on widgets): Framework sẽ cho

phép người dùng tập hợp những thành phần của giao diện, vì vậy việc tái sử dụng nhũng mã code trên framework đã trở nên dễ dàng hơn rất nhiều

- SDK (Software Development Kit): SDK được biết đến là một công

cụ giúp cho người dùng phát triển được ứng dụng nền của mình Người dùng sử dụng công cụ này để hỗ trợ đa số các thao tác phát triển ứng dụng Trong đó có các trình biên dịch mã thành các mã gốc dành riêng cho 2 hệ điều hành IOS và Android

Trang 11

*Firebase

Firebase là một nền tảng sở hữu bởi google giúp chúng ta phát triển các ứng dụng di động và web Họ cung cấp rất nhiều công cụ và dịch vụ tiện ích để phát triển ứng dụng nên một ứng dụng chất lượng Điều đó rút ngắn thời gian phát triển và giúp ứng dụng sớm ra mắt với người dùng Firebase cung cấp cho người dùng các dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây với hệ thống máy chủ cực kỳ mạnh mẽ của

Google Chức năng chính của firebase là giúp người dùng lập trình ứng dụng, phần mềm trên các nền tảng web, di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu

Với firebase, bạn có thể tạo ra những ứng dụng real-time như app chat, cùng nhiều tính năng như xác thực người dùng, Cloud Messaging, Bạn

có thể dùng firebase giống như phần backend của app

Các dịch vụ của firebase hoàn toàn miễn phí, tuy nhiên bạn cần phải trả thêm tiền nếu muốn nâng cấp lên Điều này bạn nên cân nhắc nếu muốn xây dựng một ứng dụng lớn sử dụng phần backend là firebase, vì cái giá khi muốn nâng cấp còn khá đắt đỏ so với việc xây dựng backend truyền thống

b) Thực trạng

*Flutter

Phiên bản đầu tiên của Flutter được gọi là"Sky"và chạy trên hệ điều

hành Android Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kết xuất ổn định ở mức 120 khung hình trên giây Trong bài phát biểu chính ở hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1.0 Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là

phiên bản"ổn định"đầu tiên của khung ứng dụng này

Engine của Flutter được viết chủ yếu bằng C++, cung cấp sự hỗ trợ kết xuất ở mức độ thấp bằng thư viện đồ họa Skia của Google Thêm vào

đó, nó giao tiếp với các SDK của riêng nền tảng như các SDK do

Android và iOS cung cấp

*Firebase

Trang 12

Lịch sử phát triển:

Firebase phát triển từ Envolve, một công ty khởi nghiệp trước đó do James Tamplin và Andrew Lee thành lập vào năm 2011 Họ thành lập Firebase như một công ty vào tháng 9 - 2011 Đến tháng 4 năm 2012 Firebase đã lần đầu tiên được ra mắt công chúng

Sản phẩm đầu tiên của Firebase là Cơ sở dữ liệu thời gian thực (Firebase realtime database), một API đồng bộ hóa dữ liệu ứng dụng trên các thiết

bị iOS, Android và Web, đồng thời lưu trữ trên đám mây của Firebase Sản phẩm hỗ trợ các nhà phát triển phần mềm trong việc xây dựng các ứng dụng cộng tác, theo thời gian thực

Vào tháng 10 năm 2014, Firebase đã được Google mua lại Từ đó đến nay, Firebase đã ra mắt thêm nhiều tính năng mới và được nhiều nhà phát triển ưa thích sử dụng trong các dự án của mình

Flutter luôn đảm bảo chất lượng lập trình cho app đa nền nhờ vào cấu trúc mã native được tối ưu tốt và sử dụng các engine đồ họa hiện đại Sự trao đổi dữ liệu từ mã nguồn đến ngôn ngữ lập trình luôn thông suốt Bất

kì thứ gì mà native app của Android, iOS có thể làm được thì cũng

tương tự ở Flutter app Nhóm phát triển cũng tiết kiệm được rất nhiều thời gian tùy chỉnh giao diện bởi UI đa nền của Flutter về căn bản là giống nhau

Trải nghiệm người dùng đối với app điện thoại phụ thuộc nhiều vào mức

độ tối ưu phần mềm Flutter có hiệu năng rất tốt trong trường hợp này

Trang 13

nhờ vào cấu trúc mã gắn liền với mã máy thay vì dựa vào các câu lệnh giao tiếp đi kèm khác, từ đó loại bỏ các lỗi triệt để

Tốc độ, năng suất – đây là hai trọng tâm của nhóm phát triển Flutter Công cụ đã có sẵn bộ widget dễ sử dụng và yêu cầu ở cú pháp không đòi hỏi những đoạn mã phức tạp Chức năng “hot reload” được đề cập ở trên giúp gia tăng tốc độ tìm kiếm và sửa lỗi, vô cùng phù hợp cho những dự

án đặt nặng về yếu tố thời gian

Tính đến năm 2020, cộng đồng Flutter đã phát triển rất mạnh Theo khảo sát của Stack Overflow, 68.8% người tham gia đã thể hiện sự ưa thích của họ với framework này và có mong muốn tiếp tục dùng nó nhiều hơn trong tương lai

Khả năng giúp tiết kiệm thời gian lập trình cũng rút ngắn tốc độ triển khai một sản phẩm Flutter ra thị trường

Nhờ vào thế mạnh trong hiệu năng và khả năng tối ưu phần mềm, việc lập trình app bằng Flutter không yêu cầu nhiều thời gian và cũng giảm giá thành làm việc theo giờ Từ đó doanh nghiệp dễ dàng tiết kiệm chi phí cho sản phẩm so với việc sử dụng các công cụ lập trình ứng dụng đa nền khác

*Firebase

Firebase realtime data:

Khi đăng ký một tài khoản trên Firebase để tạo ứng dụng, bạn đã có một cơ sở dữ liệu

thời gian thực Dữ liệu bạn nhận được dưới dạng JSON Đồng thời nó cũng luôn được đồng bộ thời gian thực đế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 đều sử dụng cùng một cơ sở dữ liệu

Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình viên phát triển ứng dụng Cuối cùng, tất cả các dữ liệu này được truyền qua kết nối an toàn SSL có bảo mật với chứng nhận 2048 bit

Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local Vì thế khi có mọi sự thay đổi

nào đều được tự động cập nhật lên Server của Firebase Bên cạnh đó, đối với các dữ liệu

ở local cũ hơn với Server thì cũng tự động cập nhật để được dữ liệu mới nhất

Firebase Authendication

Trang 14

Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng Email, Facebook, Twitter, GitHub, Google Đồng thời cũng xác thực nặc danh cho các ứng dụng Hoạt động xác thực có thể giúp thông tin cá nhân của người sử dụng được an toàn

và đảm bảo không bị đánh cắp tài khoản

Firebasehosting:

Cách thức hoạt động cuối cùng của Firebase được đề cập trong bài viết này là cung cấp các hosting Hosting được phân phối qua tiêu chuẩn công nghệ bảo mật SSL từ mạng

CDN.

2 Phương pháp nghiên cứu

- Phương pháp chủ đạo: Phương pháp nghiên cứu tài liệu

- Phương pháp bổ trợ: Phương pháp quan sát

Trang 15

PHÂN TÍCH THIẾT KẾ

1 Nhiệm vụ và yêu cầu

Hệ thống cung cấp đầy đủ các thông tin về sản phẩm, có nhiều tính năng hỗ trợ khách hàng đặt hàng một cách thuận tiện, nhanh chóng hơn, có thể quản lý cơ sở dữ liệu

- Đối với quản lý:

 Quản lý được tất cả các cơ sở dữ liệu

 Thống kê doanh thu

 Cập nhật, thay đổi dữ liệu

- Đối với khách hàng

 Phân loại giúp tìm kiếm sản phẩm nhanh hơn

 Xem được thông tin của sản phẩm

 Thanh toán nhanh chóng

 Giao diện đẹp, trực quan, cho phép đổi giao diện theo sở thích

2 Phân thích thiết kế hệ thống

Khách hàng:

- Nhóm chức năng xem thông tin: đăng ký thành viên, đăng nhập, đăng xuất, xem thông tin giỏ hàng, xem thông tin đơn hàng, xem thông tin sản phẩm, tìm kiếm sản phẩm, phân loại sản phẩm, yêu thích sản phẩm, xem danh mục yêu thích, thay đổi giao diện app, thay đổi thông tin cá nhân

Trang 16

Tác nhân của hệ thống:

1 Admin Là người quản lý, vận hành hệ thống và

có toàn quyền

2 Khách hàng Là người có quyền đăng ký thành viên,

xem, yêu thích, đặt hàng, xem đơn hàng, custom tài khoản, custom giao diện app

Xem thông tin sản phẩm

Khách hàng

Xem, tìm kiếm các sản phẩm Quản lý giỏ hàng Thêm, xóa các sản phẩm trong giỏ

hàng và thanh toán Thêm và xoá các sản phẩm yêu thích Quản lý sản phẩm

Admin

Thêm, sửa, xóa,tìm kiếm thông tin các sản phẩm

Quản lý người dùng Cập nhật, xóa người dùng

Thống kê Thống kê doanh thu và còn hàng và

hết hàng Quản lý đơn hàng Xem và cập nhật các đơn hàng

Trang 17

HIỆN THỰC

1 Kết quả cài đặt các chức năng

1.1 Màn hình Login

Trang 18

1.2 Màn hình đăng ký thành viên

Trang 19

1.3 Menu

1.3.1 Trang chủ

Trang 20

1.3.2 Thực đơn

Trang 21

1.3.3 Giỏ hàng

Trang 22

1.3.4 Thông tin giao hàng

Trang 23

1.4 Tài khoản

1.4.1 Menu chính

Trang 24

1.4.2 Cài đặt giao diện

Trang 25

1.4.3 Thông tin cá nhân

Trang 26

1.5 Thông tin sản phẩm

Trang 27

2 Các yêu cầu khác khi cài đặt/sử dụng phần mềm

- Phần mềm hệ quản trị cơ sở dữ liệu: Firebase

- Phần mềm khác cần sử dụng khi dùng phần mềm:

- Nền tảng : Hệ điều hành: Android/IOS

Trang 28

TỔNG KẾT

1 Tổng kết

Trong thế kỉ 21 với sự phát triển ngày càng nhanh của công nghệ, để doanh nghiệp thành công thì việc thử nghiệm các công nghệ mới là vô cùng cần thiết Chính vì thế nên em đã chọn Flutter để xây dựng ứng dụng của mình

Với kiến thức nền tảng cộng thêm sự hỗ trợ tận tình của cô Hàn Thuỵ Thái Uyển, em đã hoàn thành đề tài và em đã phần nào hiểu được quy trình kinh doanh của một của hàng, ưu điểm khuyết điểm khi sử dụng Flutter ứng dụng vào xây dựng cửa hàng này

Em rất mong nhận được sự đóng góp của cô để trong thời gian tới thì

em sẽ cố gắng khắc phục các vấn đề hạn chế, những vấn đề chưa được tốt, cũng như tìm hiểu và bổ sung thêm những chức năng mới cho phần mềm

Em xin chân thành cảm ơn!

2 Hướng phát triển

Hướng phát triển của em về Jiji Store là tiến đến một hệ thống đáng tin cậy hơn, thuận tiện cho người sử dụng hơn Do vậy trong thời gian tới,

em sẽ tiến hành bổ sung các tính năng như:

+ Liên kết với các ngân hàng, ví điện tử uy tín hiện tại

+ Liên kết với các ứng dụng thứ ba về vận chuyển

+ Cải thiện hệ thống bảo mật như: yêu cầu người dùng phải thay đổi mật khẩu sau xx ngày, thông báo cho admin khi có người export data,… + Google Maps

+ Thiết kế giáo diện đẹp và dễ sử dụng hơn

Ngày đăng: 01/02/2023, 21:09

TỪ KHÓA LIÊN QUAN

w