Đồ án: Xây dựng phần mềm đặt món ăn trực tuyến HMLFood trên Android

Đồ án xây dựng app đặt món ăn HMLFood trên nền tảng Android. Tài liệu chi tiết về phân tích, thiết kế hệ thống và các chức năng cho người dùng, admin.

Chuyên ngành

Công nghệ Thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2016

81
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về Đồ Án HMLFood

Đồ án xây dựng app đặt món ăn HMLFood là một dự án tốt nghiệp tại Trường Đại Học Công Nghệ Thông Tin và Truyền Thông - Đại Học Thái Nguyên. Ứng dụng này được phát triển nhằm giải quyết nhu cầu đặt món ăn trực tuyến ngày càng tăng tại Việt Nam. HMLFood cung cấp một nền tảng di động hiện đại, cho phép khách hàng dễ dàng tìm kiếm và đặt hàng từ các nhà hàng yêu thích. Với sự phát triển mạnh mẽ của thị trường ứng dụng di động, đặc biệt là trên nền tảng Android chiếm 56,1% thị phần, dự án này mang ý nghĩa thực tiễn cao trong lĩnh vực công nghệ thông tin và thương mại điện tử.

1.1. Bối Cảnh Phát Triển Thị Trường

Thị trường đặt món ăn trực tuyến tại Việt Nam bắt đầu phát triển mạnh từ năm 2011. Xu hướng này xuất phát từ nhu cầu tiện lợi của cộng đồng người nước ngoài và dần trở thành trào lưu chủ yếu. Dự báo cho thấy 6,7 triệu ứng dụng sẽ được tải xuống trước năm 2014, khẳng định tiềm năng vô hạn của lĩnh vực này trong ngành công nghệ.

1.2. Tầm Quan Trọng của Nền Tảng Android

Android là hệ điều hành di động hàng đầu với vị thế vững chắc trên thị trường. Sự đa dạng về mức giá và mẫu mã khiến Android phổ biến tại Việt Nam. Việc phát triển ứng dụng Android đáp ứng nhu cầu khách hàng phong phú và cạnh tranh gay gắt giữa các nhà sản xuất, mang lại cơ hội lớn cho các lập trình viên.

II. Các Công Nghệ Chính Trong Dự Án

Đồ án HMLFood sử dụng một loạt công nghệ tiên tiến để xây dựng một ứng dụng đầy đủ chức năng. Phần phía máy chủ được phát triển dựa trên công nghệ web server hiện đại, trong khi phần ứng dụng di động tận dụng nền tảng Android với các framework và thư viện hỗ trợ. Giao tiếp giữa ứng dụng Android và web server được thiết kế một cách hiệu quả để đảm bảo truyền tải dữ liệu an toàn và nhanh chóng. Kiến trúc hệ thống được thiết kế tuân theo các nguyên tắc phần mềm hiện đại, bao gồm mô hình MVC và các design pattern phù hợp.

2.1. Công Nghệ Web Server

Web server trong dự án HMLFood được xây dựng để xử lý các yêu cầu từ ứng dụng Android. Server này chịu trách nhiệm quản lý dữ liệu khách hàng, thông tin nhà hàng, menu sản phẩm và đơn hàng. Kiến trúc mô hình web server được thiết kế với độ tin cậy cao, đảm bảo hoạt động liên tục 24/7 cho các dịch vụ đặt món ăn của người dùng.

2.2. Kiến Trúc và Framework Android

Nền tảng Android cung cấp stack hệ thống toàn diện từ kernel Linux đến các ứng dụng người dùng. Ứng dụng HMLFood được xây dựng với Android SDK và các công cụ phát triển chính thức. Kiến trúc Android bao gồm các lớp: Hardware Abstraction Layer, Linux Kernel, System Libraries và Application Framework, cho phép ứng dụng đặt món ăn hoạt động hiệu quả trên các thiết bị đa dạng.

III. Phân Tích Nhu Cầu và Thiết Kế Hệ Thống

Việc phân tích yêu cầu là bước quan trọng nhất trong quá trình phát triển app đặt món ăn HMLFood. Dự án thực hiện khảo sát kỹ lưỡng về nhu cầu của khách hàng, quy trình vận hành của nhà hàng và các mô hình đặt hàng trực tuyến hiện có trên thị trường. Từ đó, nhóm phát triển xác định các yêu cầu chức năng cụ thể như: đăng nhập, xem danh sách nhà hàng, duyệt menu, đặt hàng và theo dõi đơn. Thiết kế hệ thống sử dụng các biểu đồ UML như Use Case, Activity Diagram và Sequence Diagram để mô tả chi tiết các quy trình và tương tác.

3.1. Mô Hình Đặt Hàng và Quy Trình

Mô hình đặt hàng của HMLFood bắt đầu từ việc khách hàng chọn thành phố, quận huyện để tìm kiếm nhà hàng. Sau đó, người dùng xem thông tin menu, chọn sản phẩm và số lượng, điền thông tin giao hàng. Quy trình ship của nhà hàng được theo dõi thông qua hệ thống, đảm bảo minh bạch và hiệu quả. Khảo sát sơ đồ vật lý cho phép hiểu rõ hơn về cách thức hoạt động thực tế.

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

Ứng dụng HMLFood cung cấp hai giao diện chính: khách hàng và quản trị viên. Phía khách hàng có thể đăng ký, đăng nhập, xem danh sách cửa hàng, bình luận, đặt hàng và theo dõi trạng thái. Phía admin quản lý menu sản phẩm (thêm, sửa, xóa), xem danh sách đơn hàng, quản lý cửa hàng và khu vực hoạt động, nâng cao khả năng kiểm soát hệ thống.

IV. Giao Diện và Chức Năng Cụ Thể

Giao diện ứng dụng HMLFood được thiết kế thân thiện với người dùng, hỗ trợ trải nghiệm mượt mà và trực quan. Giao diện chính cung cấp các tùy chọn để người dùng chọn vị trí, tìm kiếm nhà hàng và quản lý đơn hàng. Các màn hình chi tiết bao gồm: danh sách nhà hàng theo khu vực, thông tin chi tiết shop, giao diện comment, lựa chọn menu, giỏ hàng và form đặt hàng. Phía admin có giao diện riêng để quản lý toàn bộ dữ liệu. Mỗi màn hình được tối ưu hóa để đảm bảo tính khả dụng cao trên các thiết bị Android khác nhau, cung cấp trải nghiệm đặt món ăn hoàn hảo cho người dùng.

4.1. Giao Diện Khách Hàng

Giao diện khách hàng bắt đầu từ màn hình chính với tùy chọn chọn thành phố và quận huyện. Tiếp theo là danh sách các cửa hàng phù hợp với vị trí người dùng. Mỗi cửa hàng hiển thị thông tin chi tiết bao gồm tên, địa chỉ, đánh giá và phần bình luận. Khách hàng có thể xem menu sản phẩm, chọn các món ăn, điều chỉnh số lượng và thêm vào giỏ hàng trước khi thanh toán và giao hàng.

4.2. Giao Diện Quản Trị Viên

Giao diện admin của HMLFood cấp quyền truy cập toàn diện vào các chức năng quản lý hệ thống. Quản trị viên có thể xem danh sách các cửa hàng đã đăng ký, thêm mới hoặc xóa cửa hàng, quản lý menu sản phẩm (insert, update, delete), xem danh sách đơn hàng, cập nhật thông tin cửa hàng và quản lý các khu vực hoạt động. Giao diện cung cấp các công cụ quản lý mạnh mẽ và hiệu quả để kiểm soát toàn bộ hoạt động của nền tảng.

21/12/2025

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

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Công nghệ xây dựng server Web server là một dịch vụ công nghệ thông tin xử lý các yêu cầu thông qua HTTP, các giao thức mạng cơ bản khác để phân phối thông tin trên world wide web.Các chức năng chính của web server là để lưu trữ, xử lý và cung cấp các trang web cho người dùng. Những dạng dữ liệu thường xuyên truyền tải giữa một web server với một ứng dụng client là các trang tài liệu HTML có thể bao gồm hình ảnh, kịch bản, file khác. Ứng dụng client có thể là một trình duyệt web, một ứng dụng có thể đọc và truy xuất đến web server. Ứng dụng client truy cập đến server bằng cách thực hiện một yêu cầu một tài nguyên nào đó trên server bằng cách sử dụng HTTP, khi server nhận được yêu cầu sẽ thực hiện xử lý yêu cầu và đáp ứng nội dung tài nguyên cần yêu cầu(nếu có) cho client.1 Mô hình web server Hiện nay có nhiều cách để xây dựng và chạy một web server được phân loại bằng ngôn ngữ sử dụng, xử lý trên web server bao gồm: Web server PHP sử dụng ngôn ngữ lập trình PHP để xử lý các yêu cầu từ client và MySQL để lưu trữ cơ sở dữ liệu.

Ưu điểm của web server PHP là: Sử dụng ngôn ngữ lập trình PHP là một ngôn ngữ mã nguồn mở, rất phổ biến và dễ dàng viết mã. Bên cạnh đó là sử dụng hệ quản trị cơ sở dữ liệu MySQL là một quản trị cơ sở dữ liệu dễ quản lý, tốc độ xử lý cao và dễ dàng sử dụng. Tuy nhiên còn một số những nhược điểm của Web server PHP như: PHP là một ngôn ngữ dạng yếu và chỉ 8 chạy được trên ứng dụng web. Hệ quản trị cơ sở dữ liệu MySQL bảo mật chưa cao, quán trình phục hồi chậm chạp, không hỗ trợ truy vấn con và các thủ tục lưu trữ, bẫy lỗi, … Web server Java sử dụng ngôn ngữ java để xử lý các yêu cầu từ client và Oracle Database để lưu trữ cơ sở dữ liệu.

Ưu điểm của web server Java là: sử dụng ngôn ngữ lập trình Java là một ngôn ngữ mã nguồn mở, rõ ràng và tách biệt, dễ dàng viết mã, ngôn ngữ hướng đối tượng rõ ràng, nhiều thư viên hỗ trợ lập trình. Hệ quản trị cơ sở dữ liệu sử dụng là Oracle Database là một hệ quản trị cơ sở dữ liệu lớn, được tích hợp các công cụ quản trị, tính bảo mật cao và thời gian đáp ứng nhanh. Ngoài những ưu điểm trên thì Web server Java cũng có những nhược điểm như: ngôn ngữ lập trình java còn chập chạp, cần phải cấu hình nhiều để có thể chạy tốt, hệ quản trị cơ sở dữ liệu Oracle chưa được phổ biến, phí bản quyền tương đối cao, không tương thích với các công nghệ của Microsoft.Net sử dụng ngôn ngữ lập trình C# để xử lý các yêu cầu từ client và SQLServer để lưu trữ cơ sở dữ liệu. Ưu điểm của web sercer .Net là: sử dụng ngôn ngữ lập trình C# là ngôn ngữ lập trình đơn giản hướng đối tượng, rõ ràng, tách biệt, mạnh mẽ, dễ dàng viết mã, nhiều thư viện hỗ trợ lập trình.

Hệ quản trị cơ sở dữ liệu hay được sử dụng là SQLServer là một hệ quản trị cơ sở dữ liệu lớn, mạnh mẽ, cấu trúc chặt chẽ, duy nhất, tính bảo mật cao, dễ dàng sử dụng.Net còn có một số nhược điểm như: ngôn ngữ C# chỉ hỗ trợ trên môi trường windown, SQLServer bảo mật cao nên phải cấu hình chính sác mới có thể sử dụng. Từ những ưu điểm và nhược điểm kể trên của ba cách xây dựng web server em chọn cách xây dựng web server trên nền ASP.Net sử dụng ngôn ngữ lập trình C# để viết mã và hệ quản trị cơ sở dữ liệu SQLServer 2005 để lưu trữ dữ liệu. Để thực hiện các truy vấn cơ sở dữ liệu trong SQLServer để xử lý và gửi phản hổi cho client em sử dụng cộng nghệ LINQ. LINQ (Language Integrated Query) là một thư viện cung cấp cho ngôn ngữ lập trình C# và Visual Basi.

Thư viện này cung cấp khả năng truy vấn database ngay trên ngôn ngữ lập trình. Khi sử dụng, LinQ sẽ mô phỏng lại cơ sở dữ liệu của bạn và lưu trong trương trình, sau đó 9 mỗi thực thể sẽ được xây dựng thành mỗi class như mô hình MVC, từ đó ta có thể truy xuất database thông qua những class đó.LINQ có thể viết truy vấn cơ sở dữ liệu cho rất nhiều các đối tượng, thực thể dữ liệu từ database.Công nghệ này giúp giảm gánh nặng thao tác trên nhiều ngôn ngữ lập trình và cải thiện năng suất lập trình. LINQ to SQL là một phiên bản hiện thực hóa của O/RM (object relational mapping) có bên trong .5, nó cho phép mô hình hóa một cơ sở dữ liệu dùng các lớp. LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP).

Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của bạn.2 Công nghệ phát triển ứng dụng android 1.1 Giới thiệu chung về hệ điều hành android Android là một nền tảng mã nguồn mở toàn diện được thiết kế cho các thiết bị di động. Nó là sự liên minh giữa ông lớn Google và Open Handset Alliance – các tập đoàn sản xuất thiết bị cầm tay nổi tiếng như Intel, SamSung, Toshiba… Với mục tiêu là tăng tốc việc đổi mới trong di động và cung cấp cho người tiêu dung nhiều tiện ích phong phú, ít tốn kém. Android chính là công cụ để làm điều đó. Android là một nền tảng mã nguồn mở, toàn bộ ngăn xếp từ các module cấp thấp của Linux đến tất cả các thư viện gốc và tử các ứng dụng khung cho đến các ứng dụng hoàn chỉnh là hoàn toàn mở.

Trong lịch sử phát triển, ban đầu Android thuộc sở hữu của công ty Android Inc. Sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform. Cuối năm 2007 liên minh Open HandsetAlliance được thành lập và được công bố, Android chính thức trở thành mã nguồn mở. Phiên bản đầu tiên được phát hành vào tháng 11 năm 2007.2 Kiến trúc của android Hình 1.2 Cấu trúc stack hệ thống Android a, Tầng ứng dụng Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như: Các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành như: gọi điện thoại (phone), quản lý danh bạ (contacts), duyệt web (browser), nhắn tin (sms), lịch làm việc (calendar), đọc email (email-client), bản đồ (map), quay phim chụp ảnh (camera)….

Các ứng dụng được cài thêm như các phần mềm (stock), các trò chơi (game), từ điển, …. Các chương trình có các đặc điểm là:  Viết bằng Java, phần mở rộng là apk.  Khi mỗi ứng dụng được chạy, nó có phiên bản Virtual Machine được dựng lên phục vụ cho nó. Nó có thể là một Active Program: chương trình có giao diện với người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ.

 Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm, có thể có nhiều chương trình chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn. 11  Các ứng dụng được gán số ID của người sử dụng nhằm phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống. Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền.

b, Application framework Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên. Gồm các thành phần:  Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung cấp các công cụ điều khiển Activity.  Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điện thoại.

 XMPP Service: Cung cấp công cụ để liên lạc trong thời gian thực.  Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ thống định vị toàn cầu GPS và Google Maps.  Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng.  Notication Manager: Quản lý việc hiển thị các thông báo ( như báo có tin nhắn,có email mới….

c, Library Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều thành phần khác nhau trong hệ thống Android. Điều này được thể hiện thông qua nền tảng ứng dụng Android. Một số các thư viện cơ bản gồm:  Hệ thống thư viện C : triển khai BSD-derived có nguồn gốc từcáchệ thống thư việnchuẩnC(libc), được sử dụng chỉ bởi hệ điều hành.  Media Libraries– Dựa trên gói Video OpenCORE; cácthư việnhỗ trợphátvàghi âmcủacác định dạng âm thanh và video phổ biến, cũng như cácfilehình ảnhtĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG 12  Surface Manager– Quản lý việc truy xuất vào hệ thống hiển thị  LibWebCore- Đây là thành phần để xem nội dung trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse) cũng như để các ứng dụng khác có thể nhúng vào.

Nó cực kỳ mạnh, hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM, AJAX.  SGL– Các cơ sở công cụ đồ họa 2D.  3D libraries- Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần mềm3D.  SQLite- Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng d, Android Runtime Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể hoạt động.

Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính thường. Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO, Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine). Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik do Google phát triển.

e, Linux kernel Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này.

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