Báo cáo Đồ án: Xây dựng ứng dụng đặt đồ ăn Appfood trên nền tảng Android

Nghiên cứu chuyên sâu Đồ án Xây dựng App Đặt Đồ Ăn Appfood (Full Báo Cáo) góp phần nâng cao kiến thức chuyên ngành và ứng dụng tham khảo chuyên ngành

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

Đồ án

2022

57
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới Thiệu Đồ Án App Đặt Đồ Ăn AppFood

Đồ án Xây dựng App Đặt Đồ Ăn AppFood là một dự án toàn diện nhằm phát triển nền tảng công nghệ kết nối người dùng với các nhà hàng, quán ăn. Ứng dụng AppFood được thiết kế với mục tiêu tối ưu hóa trải nghiệm đặt hàng trực tuyến, cung cấp các tính năng hiện đại như tìm kiếm nhà hàng, lọc theo danh mục, xem menu chi tiết, và thanh toán trực tuyến. Đây là một dự án thực tế phát triển full-stack, bao gồm frontend, backend và database, phù hợp cho sinh viên ngành công nghệ thông tin, phát triển phần mềm.

1.1. Mục Tiêu Dự Án

Xây dựng một ứng dụng di động hoàn chỉnh cho phép người dùng dễ dàng tìm kiếm, lựa chọn và đặt đồ ăn từ các nhà hàng nearby. Ứng dụng hỗ trợ các chức năng quản lý đơn hàng, theo dõi vị trí giao hàng, tích điểm khách hàng và xây dựng hệ thống đánh giá nhà hàng.

1.2. Phạm Vi Ứng Dụng

AppFood bao gồm các module chính: đăng nhập/đăng ký người dùng, tìm kiếm và lọc nhà hàng, xem menu sản phẩm, giỏ hàng, thanh toán, lịch sử đơn hàng, và hệ thống feedback. Ứng dụng tích hợp Google Maps API để hiển thị vị trí nhà hàng, Firebase cho xác thực người dùng, và payment gateway cho giao dịch an toàn.

II. Công Nghệ Sử Dụng và Kiến Trúc Hệ Thống

Đồ án AppFood sử dụng công nghệ stack hiện đại gồm React Native hoặc Flutter cho phát triển mobile, Node.js với Express.js cho backend server. Database được quản lý bằng MongoDB hoặc PostgreSQL, đảm bảo hiệu suất cao và khả năng mở rộng. Kiến trúc hệ thống áp dụng mô hình RESTful API, cho phép giao tiếp hiệu quả giữa client và server. Bảo mật dữ liệu được ưu tiên cao với mã hóa JWT token, HTTPS protocol, và xác thực OAuth2. Toàn bộ ứng dụng được triển khai trên cloud platform như AWS hoặc Firebase, đảm bảo uptime cao và scalability.

2.1. Công Nghệ Frontend

Frontend AppFood được phát triển bằng React Native cho tính đa nền tảng, hỗ trợ cả iOS và Android. Giao diện người dùng được thiết kế responsive, tối ưu UX/UI với các component tái sử dụng. Redux hoặc Context API quản lý state application, Axios xử lý HTTP request, và Firebase Cloud Messaging để push notification.

2.2. Công Nghệ Backend và Database

Backend sử dụng Node.js với framework Express.js, tổ chức code theo mô hình MVC. MongoDB lưu trữ dữ liệu người dùng, nhà hàng, menu, đơn hàng. Redis sử dụng cho caching, tăng tốc độ truy vấn. Middleware xử lý authentication, validation, error handling. API documentation sử dụng Swagger/OpenAPI.

III. Các Chức Năng Chính của Ứng Dụng

AppFood tích hợp đầy đủ các chức năng cần thiết để vận hành một nền tảng đặt đồ ăn chuyên nghiệp. Người dùng có thể tạo tài khoản, quản lý hồ sơ cá nhân, lưu địa chỉ giao hàng yêu thích, và theo dõi lịch sử đơn hàng. Tính năng tìm kiếm nâng cao cho phép lọc theo cuisine, giá cả, rating, thời gian giao hàng. Hệ thống thanh toán hỗ trợ nhiều phương thức: thẻ tín dụng, ví điện tử, thanh toán khi nhận hàng. Chức năng tracking theo thời gian thực giúp khách hàng theo dõi vị trí shipper. Hệ thống review & rating cho phép người dùng đánh giá nhà hàng và món ăn, xây dựng cộng đồng đáng tin cậy.

3.1. Quản Lý Tài Khoản Người Dùng

Người dùng đăng ký bằng email, phone, hoặc tài khoản mạng xã hội. Hệ thống xác thực hai lớp (2FA) tăng cường bảo mật. Profile quản lý thông tin cá nhân, ảnh đại diện, danh sách địa chỉ giao hàng, phương thức thanh toán. Khách hàng xem lịch sử đơn hàng, review các nhà hàng đã mua, tích điểm loyalty và sử dụng voucher khuyến mãi.

3.2. Hệ Thống Tìm Kiếm và Lọc

Engine tìm kiếm sử dụng Elasticsearch để xử lý các truy vấn phức tạp nhanh chóng. Người dùng lọc nhà hàng theo danh mục (cơm, mì, bánh, đồ uống), giá cả, đánh giá sao, thời gian giao hàng dự kiến. Thuật toán recommendation gợi ý nhà hàng phù hợp dựa trên lịch sử mua hàng và sở thích của từng người dùng.

IV. Quy Trình Phát Triển và Triển Khai Dự Án

Quy trình phát triển đồ án AppFood tuân theo phương pháp Agile, chia thành các sprint 2 tuần. Giai đoạn requirement analysis xác định các yêu cầu chi tiết từ stakeholder. Phần thiết kế (Design) tạo wireframe, mockup UI/UX trên Figma. Phần phát triển (Development) lập trình frontend, backend, integration, testing. Testing bao gồm unit test, integration test, end-to-end test, và user acceptance testing. Sau đó là deployment lên staging environment kiểm tra cuối, rồi release lên production. Monitoring và maintenance liên tục đảm bảo ứng dụng hoạt động ổn định, xử lý bugs, cập nhật tính năng mới.

4.1. Giai Đoạn Phân Tích và Thiết Kế

Trong giai đoạn này, nhóm dự án xác định chi tiết các yêu cầu chức năng và phi chức năng. Tạo document specification, user story, acceptance criteria. Thiết kế kiến trúc hệ thống, sơ đồ database schema, wireframe giao diện. Use case diagram mô tả các tương tác giữa người dùng và hệ thống. Risk assessment nhận diện những thách thức tiềm ẩn và lập kế hoạch giảm thiểu.

4.2. Giai Đoạn Phát Triển Testing và Triển Khai

Đội phát triển code theo tiêu chuẩn clean code, sử dụng Git version control. Unit test đảm bảo chất lượng từng function, integration test kiểm tra liên kết giữa các module. QA thực hiện testing toàn diện trên các thiết bị thật. Sau khi pass tất cả test, ứng dụng được deploy lên cloud, cấu hình domain, SSL certificate. Post-launch monitoring sử dụng tools như Sentry, DataDog theo dõi lỗi, performance metrics.

28/12/2025

Trích đoạn nội dung tài liệu

chương 1, chúng em xin trình bày về cơ sở lý thuyết sử dụng trong việc xây dựng ứng dụng trên nền tảng Android, ngôn ngữ lập trình Java, PHP, Firebase. Tổng quan về thương mại điện tử 1. Khái niệm về thương mại điện tử Khái niệm thương mại điện tử vẫn còn là vấn đề tranh luận của nhiều tổ chức tham gia hoạt động về “thương mại điện tử”. Tuy rằng đã có các điều luật về Thương mại điện tử, trong đó quy định rõ về trách nhiệm, công việc, quyền hạn, các phương thức trao đổi, buôn bán, sử dụng thương mại điện tử nhưng việc đưa ra một khái niệm chính xác và bao quát nhất về thương mại điện tử thì vẫn chưa có.

Tóm lại, thương mại điện tử chỉ xảy ra trong môi trường kinh doanh mạng Internet và các phương tiện điện tử giữa các nhóm (cá nhân) với nhau thông qua các công cụ, kỹ thuật và công nghệ điện tử. Ngoài ra, theo nghiên cứu tại đại học Texas, các học giả cho rằng thương mại điện tử và kinh doanh điện tử đều bị bao hàm bởi nền kinh tế Internet. Lợi ích của thương mại điện tử Lợi ích đối với doanh nghiệp: - Mở rộng thị trường nhưng không tốn kém quá nhiều chi phí: Các công ty thương mại điện tử có thể mở rộng thị trường, tìm kiếm khách hàng, tiếp cận với nhà cung cấp và các đối tác trên khắp thế giới dễ dàng, thuận lợi và ít tốn kém chi phí hơn so với thương mại truyền thống. - Hiệu quả về thời gian: Các hoạt động kinh doanh có thể thực hiện liên tục với việc tự động hoá các giao dịch thông qua mạng Internet.

Từ đó, tất cả những thông tin liên quan đến sản phẩm hay dịch vụ cần cung cấp cho khách hàng như catalogue, brochure, thông tin, bảng báo giá. sẽ được gửi đến khách hàng một cách nhanh chóng, tiện lợi và tiết kiệm hơn. - Dịch vụ khách hàng tốt hơn: Doanh nghiệp thương mại điện tử có thể tạo điều kiện cho khách hàng chọn mua hàng trực tiếp từ trên mạng. Hình thức thương 9 mại điện tử giúp doanh nghiệp có thể làm hài lòng khách hàng với những yếu tố quan trọng trong việc tìm và giữ khách hàng như chất lượng dịch vụ, thái độ, tốc độ phục vụ, chăm sóc khách hàng hiệu quả.

- Giảm chi phí hoạt động sản xuất: Doanh nghiệp có thể tiết kiệm được nhiều chi phí cho việc thuê mặt bằng kinh doanh, thuê nhân viên cho các hoạt động điều hành doanh nghiệp, chi phí gửi văn bản theo hình thức truyền thống, chi phí in ấn. - Tăng doanh thu: Doanh nghiệp không bị giới hạn đối tượng khách hàng trong từng vùng cư dân, địa phương mà có thể thực hiện việc bán hàng trên toàn lãnh thổ của một quốc gia hoặc bán ra trên toàn thế giới. Từ đó, lượng khách hàng của doanh nghiệp nhiều hơn nên dẫn đến việc phát triển doanh thu, gia tăng lợi nhuận. - Cập nhật thông tin sản phẩm nhanh chóng, thuận tiện: Mọi thông tin sản phẩm, dịch vụ trên web như giá cả, hình ảnh.

đều có thể được cập nhật nhanh chóng và kịp thời khi có sự thay đổi. Lợi ích đối với người tiêu dùng: - Nhiều lựa chọn hơn về sản phẩm, dịch vụ: Người mua có thể tiếp cận với nhiều nhà cung cấp hơn thông qua các sàn thương mại điện tử, website thương mại điện tử, các kênh mua bán trực tuyến nên có nhiều cơ hội lựa chọn hơn về sản phẩm và dịch vụ mà mình cần. - Được lựa chọn giá thấp hơn: Người tiêu dùng có thể so sánh giá cả giữa các nhà cung cấp thuận tiện hơn và từ đó tìm được mức giá phù hợp nhất cho cùng một đối tượng sản phẩm. - Mua sắm không bị giới hạn về không gian và thời gian: Thương mại điện tử cho phép khách hàng mua sắm mọi nơi, mọi lúc đối với các cửa hàng trên khắp thế giới.

- Được đáp ứng mọi nhu cầu: Việc tự động hóa trong thương mại điện tử cho phép chấp nhận các đơn hàng khác nhau từ mọi khách hàng. - Thông tin phong phú và thuận tiện hơn: Người mua hàng có thể dễ dàng tìm kiếm được thông tin nhanh chóng của mọi loại hàng hoá dịch vụ trên môi trường thương mại điện tử thông qua các công cụ tìm kiếm phổ biến và sự hỗ trợ 10 của các thông tin đa phương tiện về âm thanh, hình ảnh.Tổng quan về hệ điều hành Android - Android là hệ điều hành được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google. Mãi đến năm 2005, được chính Google mua lại và cho ra mắt vào năm 2007 [6]. - Android là hệ điều hành nguồn mở dựa trên nền tảng Linux, chủ yếu dành cho các thiết bị có màn hình cảm ứng như điện thoại, máy tính bảng.

Giao diện và ứng dụng Android  Giao diện: - Giao diện của Android sử dụng cảm ứng chạm, tác động trực tiếp lên màn hình như vuốt, chạm, phóng to và thu lại để xử lý các đối tượng trên màn hình. - Sau khi khởi động các thiết bị Android màn hình chính sẽ hiển thị gồm nhiều biểu tượng (icon) và tiện ích (widget). Giao diện của Android cho phép người dùng tự do sắp xếp hình dáng, biểu tượng, tiện ích tùy theo ý thích của mình.  Ứng dụng: - Các ứng dụng do bên thứ ba có trên Google Play để người dùng có thể tải về.

Các ứng dụng trên Play Store cho phép người dùng tải về và cập nhật các ứng dụng do Google và các nhà phát triển phát hành. - Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java và sử dụng bộ phát triển phần mềm Android (SDK). Bộ phát triển này gồm có công cụ gỡ lỗi, thư viện phần mềm,… hỗ trợ với công suất tối đa cho nhu cầu của các thiết bị. Ngoài ra, các công cụ phát triển khác như bộ phát triển gốc dành cho các ứng dụng cũng được tích hợp sẵn.

Ưu, nhược điểm của hệ điều hành Android  Ưu điểm: - Kho ứng dụng đa dạng: Với hệ thống cửa hàng ứng dụng Google Play, hệ điều hành Android có thể đáp ứng các nhu cầu từ chơi game cho đến làm việc với hơn 3 triệu ứng dụng để bạn lựa chọn. - Có thể mở rộng bộ nhớ bằng thẻ nhớ: Với các thiết bị của Apple, bạn chỉ có thể sử dụng bộ nhớ trong có sẵn của máy. Còn với phần lớn các thiết bị Android, 11 bạn sẽ có lựa chọn mở rộng bộ nhớ có sẵn với các loại thẻ nhớ dung lượng cao. - Người dùng ưa chuộng nhiều: Android có cộng đồng người dùng và lập trình viên độc lập khá lớn, nên khi bạn gặp vấn đề về thiết bị hay về phiên bản Android của bạn, bạn sẽ được hỗ trợ rất nhiệt tình từ phía cộng đồng.

 Nhược điểm: - Nhiều ứng dụng chạy ngầm làm chậm máy: So với iOS, Android tối ưu hóa bộ nhớ RAM có phần kém hơn, dẫn đến việc nhiều ứng dụng chạy ngầm gây chậm máy hoặc thậm chí là đơ máy. - Dễ bị virus xâm nhập: Nếu bạn tải các ứng dụng ở các nguồn khác ngoài Google Play nhưng lại không cài ứng dụng diệt virus, máy của bạn có khả năng cao sẽ bị nhiễm virus từ các ứng dụng ngoài này.Ngôn ngữ lập trình Java Java là ngôn ngữ phổ biến nhất được sử dụng trong lập trình Android. Khái niệm Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class), ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995. Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy [7].

Đặc điểm của ngôn ngữ lập trình Java Đặc điểm nổi bật: - Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển. - Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số.

12 - Tính kế thừa (Inheritance): điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. - Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.Ngôn ngữ lập trình PHP 1. Khái niệm PHP là từ viết tắt của thuật ngữ Personal Home Page. Đây là một dạng mã lệnh hoặc một chuỗi ngôn ngữ kịch bản.

Trong đó, ngôn ngữ PHP chủ yếu được phát triển để dành cho những ứng dụng nằm trên máy chủ. Mỗi khi các lập trình viên PHP viết các chương trình thì các chuỗi lệnh sẽ được chạy ở trên server, từ đó sinh ra mã HTML. Nhờ vậy mà những ứng dụng trên các website có thể chạy được một cách dễ dàng [8]. Ưu và nhược điểm của ngôn ngữ PHP  Ưu điểm của PHP: - Sử dụng mã nguồn mở: Việc cài đặt cũng như sử dụng ngôn ngữ lập trình PHP rất dễ dàng và hoàn toàn miễn phí dành cho tất cả mọi người.

Vì vậy nên ngôn ngữ này luôn được cài đặt rất nhiều trên các Web Server như: IIS, Apache, Nginx. - Hệ thống thư viện phong phú: Với thư viện Code hay hàm phong phú sẽ giúp cho việc học tập hoặc viết các ứng dụng PHP trở nên dễ dàng và nhanh chóng. Ngôn ngữ PHP có thể kết hợp với những cơ sở dữ liệu lớn hơn như: Oracle, MySQL, Cassandra. - Tính bảo mật: Do đây là mã nguồn mở, đồng thời được sự hỗ trợ của cộng đồng các lập trình nên ngôn ngữ lập trình PHP sẽ an toàn khi sử dụng.

Khi kết hợp với kỹ thuật bảo mật ở các tầng khác nhau thì ngôn ngữ lập trình sẽ chắc chắn và đảm bảo được hoạt động của website.  Nhược điểm của PHP: Cấu trúc ngữ pháp chính là vấn đề mà một người dùng tiếp xúc với ngôn ngữ này. PHP không được đẹp mắt và gọn gàng như các loại ngôn ngữ lập trình khác và chỉ hoạt động được trên các ứng dụng web.Tổng quan về MySQL 1. Khái niệm MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ