Hình 1.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
Trang 1LỜI CẢM ƠN Lời đầu tiên, em xin chân thành cảm ơn trường Đại Học Công Nghệ Thông Tin và Truyền Thông- Đại học Thái Nguyên đã tạo điều kiện thuận lợi cho phép
em hoàn thành đồ án tốt nghiệp này
Em xin chân thành cảm ơn sự giúp đỡ và đóng góp ý kiến nhiệt tình của các
thầy - cô giáo trong bộ môn Mạng máy tính và truyền thông - Khoa Công Nghệ Thông Tin- Đại học Công Nghệ Thông Tin và Truyền Thông - Đại Học Thái Nguyên
Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc nhất đến Thầy giáo Đỗ Đình Cường, đã nhiệt tình giúp đỡ em trong suốt quá trình học tập và nghiên cứu
Và sau cùng em xin gửi lời cảm ơn đến gia đình, bạn bè những người luôn bên cạnh động viên và giúp đỡ em trong thời gian làm đồ án
Sinh viên thực hiện
Hoàng Thị Mỹ Lê
Trang 2LỜI CAM ĐOAN
Em xin hứa toàn bộ việc làm đồ án do em làm và có sự tham khảo ở các tài liệu tham khảo Đồ án của em không trùng lặp với các đồ án mà em và thầy giáo hướng dẫn đã biết
Thái Nguyên, tháng 06 năm 2016
Sinh viên
Hoàng Thị Mỹ Lê
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 5
LỜI NÓI ĐẦU 7
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8
1.1 Công nghệ xây dựng server 8
1.2 Công nghệ phát triển ứng dụng android 10
1.2.1 Giới thiệu chung về hệ điều hành android 10
1.2.2 Kiến trúc của android 11
1.2.3 Công nghệ phát triển ứng dụng android 14
1.3.4 Công nghệ giao tiếp giữa ứng dụng android và web server 15
CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH THIẾT KẾ 20
2.1 Nhu cầu sử dụng phần mềm đặt món ăn trực tuyến ở Việt Nam và nước ngoài hiện nay 20
2.2 Phần mềm ngoài thị trường 21
2.2.1 Food panda 21
2.2.2 Vietnammm 22
2.2.3 Eat.vn 23
2.2.4 chonmon.vn 24
2.2.5 Kết Luận 25
2.2.6 Thị trường kinh doanh món ăn trực tuyến 26
2.3 Khảo sát hệ thống 28
2.3.1 Mô hình đặt món ăn trực tuyến của khách hàng 28
2.3.2 Khảo sát quy trình ship hàng của nhà hàng 29
2.4 Yêu cầu đặt ra và giải quyết yêu cầu 33
2.4.1 Yêu cầu đặt ra 33
Trang 42.4.2 Giải quyết yêu cầu 33
2.5 Phân tích thiết kế hệ thống 34
2.5.1 Các tác nhân và Usecase 34
2.5.2 Đặc tả UC 35
2.5.3 Biểu đồ hoạt động 39
2.5.4 Biểu đồ trình tự 47
2.5.5 Biểu đồ lớp 51
CHƯƠNG III: XÂY DỰNG DEMO CHƯƠNG TRÌNH 52
3.1 Giao diện chính 52
3.2 Một số chức năng chính 55
3.2.1 Giao diện khách hàng tương tác 55
3.2.2 Giao diện admin 62
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 79
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình web server 8
Hình 1.2 Cấu trúc stack hệ thống Android 11
Hình 2.1 Mô hình đặt món của khách hàng 28
Hình 2.2 Sơ đồ vật lý của nhà hàng 31
Hình 2.3 Biểu đồ UC tổng quát 35
Hình 2.4 Biểu đồ hoạt động đăng nhập 39
Hình 2.5 Biểu đồ hoạt động đăng xuất 40
Hình 2.6 Biểu đồ hoạt động đăng Ký 40
Hình 2.7 Biểu đồ hoạt động xem thông tin shop 41
Hình 2.8 Biểu đồ hoạt động xem thông tin menu 42
Hình 2.9 Biểu đồ hoạt động đặt hàng 43
Hình 2.10 Biểu đồ hoạt động thêm thông tin menu 44
Hình 2.11 Biểu đồ hoạt động sửa menu 45
Hình 2.12 Biểu đồ hoạt động xóa menu 46
Hình 2.13 Biểu đồ trình tự chức năng đăng nhập 47
Hình 2.14 Biểu đồ trình tự chức năng đăng xuất 47
Hình 2.15 Biểu đồ trình tự chức năng đăng ký 48
Hình 2.16 Biểu đồ trình tự chức năng xem danh sách menu 48
Hình 2.17 Biểu đồ trình tự chức năng thêm mới menu 49
Hình 2.18 Biểu đồ trình tự chức năng sửa menu 49
Hình 2.19 Biểu đồ trình tự chức năng xóa menu 50
Hình 2.20 Biểu đồ trình tự chức năng đặt hàng 50
Hình 2.21 Biểu đồ lớp 51
Hình 3.1 Giao diện chính 52
Hình 3.2 Giao diện chọn thành phố 53
Hình 3.3 Giao diện chọn quận, huyện 54
Hình 3.4 Giao diện list shop 55
Hình 3.5 Thông tin chi tiết shop 56
Trang 6Hình 3.6 List Menu 57
Hình 3.7 Giao diện Comment 58
Hình 3.8 Chọn menu và số lượng 59
Hình 3.9 List menu order 60
Hình 3.10 Thông tin khách hàng order 61
Hình 3.11 Giao diện Admin 62
Hình 3.12 Giao diện Register 63
Hình 3.13 Giao diện Login 64
Hình 3.14 Giao diện List Menu khi chưa được insert 65
Hình 3.15 Giao diện Insert Menu 66
Hình 3.16 Giao diện List Menu khi được Insert và update 67
Hình 3.17 Dialog lựa chọn delete or update 68
Hình 3.18 Giao diện update menu 69
Hình 3.19 Giao diện xem danh sách List Order và update thông tin shop 70
Hình 3.20 Giao dien update thông tin Shop 71
Hình 3.21 Giao diện khách hàng đã đặt hàng 72
Hình 3.22 Giao diện danh sách order đã đặt hàng 73
Hình 3.23 Giao diện khi Login với tài khoản quản trị viên hệ thống 74
Hình 3.24 Giao diện các cửa hàng đã đăng ký với hệ thống 75
Hình 3.25 Giao diện khi muốn xóa 1 cửa hàng khỏi hệ thống 76
Hình 3.26 Giao diện khi thêm khu vực 77
Trang 7LỜI NÓI ĐẦU
Thị trường di động đang phát triển mạnh mẽ chưa từng thấy với vô vàn các nhãn hiệu, kiểu dáng, tính năng… kéo theo đó là cuộc cạnh tranh vô cùng khốc liệt của các nhà sản xuất hệ điều hành mobile Google Android – hệ điều hành mặc dù
ra đời muộn hơn những hệ điều hành khác nhưng lại đang là hệ điều hành số 1 trên thị trường hệ điều hành di động hiện nay với thị phần ( 56,1% vào quí 1/2012) Tất
cả các ứng dụng như: định vị GPS, multimedia, lướt web và kết nối internet, ứng dụng văn phòng, tích hợp mạng xã hội hay chơi game… đều xuất hiện trên điện thoại thông minh chạy hệ điều hành Android Sự đa dạng về mức giá cũng như số mẫu mã kiểu dáng khiến Android trở thành một trong những nền tảng smartphone phổ biến nhất tại Việt Nam năm 2011
Xây dựng ứng dụng trên Smartphone là lĩnh vực có tốc độ phát triển nhanh nhất trong ngành công nghệ thông tin với 1,4 tỉ thuê bao và dự báo sẽ có khoảng
452 triệu Smartphone được bán ra vào năm 2012 và 6,7 triệu ứng dụng sẽ được download trước năm 2014 Với xu thế và tính tất yếu của lĩnh vực lập trình ứng dụng nói chung và lập trình Android nói riêng đã mang đến luồng gió mới trong ngành công nghệ thông tin
Kể từ năm 2011, đặt món ăn trực tuyến đã trở thành một thị trường hấp dẫn
và “ngon miệng” tại Việt Nam Khởi đầu từ là sự tiện lợi khi đặt món ăn với cộng đồng người nước ngoài tại Việt Nam, sau đó trở thành trào lưu và được đón nhận nồng nhiệt từ các bạn trẻ và nhân viên văn phòng Hiện nay, với sự phát triển của các trang thương mại điện tử, việc mua và bán các sản phẩm trên môi trường kinh doanh online ngày càng trở nên phổ biến, việc đặt món ăn trực tuyến đã xác lập vị trí trong thói quen mua sắm của nhiều người dùng Internet Chính vì vậy em đã
chọn đề tài: “Xây dựng phần mềm đặt món ăn trực tuyến HMLFOOD cho điện thoại di động trên nền tảng hệ điều hành Android” làm đề tài cho đồ án tốt
nghiệp Thông qua đề tài này em tìm hiểu được thêm những kiến thức mới về lập trình Android và trau dồi khả năng lập trình của mình
Trang 8CHƯƠ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
Hình 1.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ố
Trang 9chạ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
Web server 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 Web server 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 đó
Trang 10mỗ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 NET Framework 3.5, nó cho phép mô hình hóa một cơ sở dữ liệu dùng các lớp NET 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
1.2 Công nghệ phát triển ứng dụng android
1.2.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
Trang 111.2.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
Trang 12 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
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
Trang 13 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 Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)
Trang 14 USB driver : Quản lý hoạt động của các cổng giao tiếp USB
Keypad driver : Điều khiển bàn phím
Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi
Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại
Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng
vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thực hiện
M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD, flash
Power Madagement : Giám sát việc tiêu thụ điện năng
1.2.3 Công nghệ phát triển ứng dụng android
Hiện nay, trên thực tế tồn tại ba công nghệ phát triển ứng dụng cho hệ điều hành android gồm: sử dụng java thuần túy để phát triển ứng dụng, sử dụng C++ để phát triển ứng dụng game, sử dụng công nghệ Cross platform hoặc Hybrid để viết ứng dựng từ một ngôn ngữ có thể chạy trên nhiều nền tảng hệ điều hành khách nhau
Sử dụng java thuần để phát triển ứng dụng android là công nghệ viết ứng dụng cơ bản và được google khuyên sử dụng Vì đây là nền tảng cơ bản của android, việc biên dịch để thực thi ứng dụng trên hệ điều hành android đã được tích hợp và tương thích trong các phần mềm lập trình Đa số các ứng dụng trên android hiện nay đều được viết từ nền tảng này Ngoài ra nền tảng này còn được google và các nhà phát triển ứng dụng liên tục cập nhật những bộ thư viện mới hỗ trợ người lập trình rất tốt Những phần mềm sử dụng nền tảng công nghệ này như: Android Studio, Elclipse,…
Sử dụng C++ để phát triển ứng dụng game là công nghệ tận dụng tốc độ xử
lý nhanh và tối ưu bộ nhớ của ngôn ngữ C++ để phát triển các ứng dụng game Với công nghệ này người lập trình sẽ viết mã trên C++ sau đó sử dụng công cụ NDK để chuyển đổi mã sang java để chạy trên hệ điều hành android
Sử dụng công nghệ Cross platform hoặc Hybrid là một cách tiếp cận mới cho các ứng dụng trên di động Với công nghệ này, ứng dụng chỉ cần viết một lần có thể
Trang 15chạy được trên nhiều hệ điều hành khác nhau Công nghệ này sử dụng một số ngôn ngữ như js (HTML5), C#(unity,xamarin) …
Cùng với sự tìm hiểu và những hiểu biết của mình về các công nghệ phát triển ứng dụng cho android thì em lựa chọn công nghệ sử dụng java thuần để phát triển ứng dụng trên android của đề tài Vì đây là nền tảng được hỗ trợ rất nhiều từ google nhất là từ khi phần mềm lập trình Android Studio của hãng được phát hành Bên cạnh đó thư viện hỗ trợ được viết bởi các hãng cũng khá phong phú và tiện dụng Tài liệu hướng dẫn sử dụng và học tập trên nền tảng này cũng rất nhiều
1.3.4 Công nghệ giao tiếp giữa ứng dụng android và web server
Đề tài thực hiện của em gồm hai thành phần chính là server và client trên android vì vậy mà vấn đề làm sao để ứng dụng android có thể hiểu và giao tiếp qua lại với web server là một trong những vẫn đề then chốt của đề tài Công nghệ thông dụng, phổ biến và dễ dàng để kết nối truyền thông giữa client và server là HTTP (Hypertext Transfer Protocol) Đây là giao thức chạy trên nền web dùng để truyền tải nội dung giữa web server và client Cơ chế hoạt động chính của HTTP là Requet
và Response Client gửi Request đến cho server, server xử lý và trả về Response cho client Giao thức này sẽ đảm bảo vấn đề kết nối của ứng dụng client android với web server Vấn đề làm sao để client và server hiểu nhau thì hiện nay có một số công nghệ hỗ trợ vấn đề này như: JSON, SOAP, WSDL, …
- JSON: JSON (JavaScript Object Noattion) là một định dạng hoán vị dữ liệu nhanh Chúng dễ dàng cho chúng ta đọc và viết Dễ dàng cho thiết bị phân tích và phát sinh Chúng là cơ sở dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu chuẩn ECMA-262 phiên bản 3 - tháng 12 năm 1999 JSON là một định dạng kiểu text mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh, thuộc họ hàng với các ngôn ngữ họ hàng C, gồm có C, C++, C#, Java, JavaScript, Perl, Python, và nhiều ngôn ngữ khác Những đặc tính đó đã tạo nên JSON một ngôn ngữ hoán vị dữ liệu lý tưởng JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến, theo tôi thì trong tương lai tới trong các ứng dụng sẽ sử dụng nó là đa số JSON được xây dựng trên 2 cấu trúc:
Trang 16 Là tập hợp của các cặp tên và giá trị name-value Trong những ngôn ngữ khác nhau, đây được nhận thấy như là một đối tượng (object), bản ghi (record), cấu trúc (struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (keyed list), hay mảng liên hợp
Là một tập hợp các giá trị đã được sắp xếp Trong hầu hết các ngôn ngữ, thì được nhận thấy như là một mảng, véc tơ, tập hợp hay là một dãy sequence
Đây là một cấu trúc dữ liệu phổ dụng Hầu như tất cả các ngôn ngữ lập trình hiện đại đều hổ trợ chúng trong một hình thức nào đó
- SOAP – Một tiêu chuẩn của W3C, là giao thức sử dụng XML để định nghĩa
dữ liệu dạng thuần văn bản (plain text) thông qua HTTP SOAP là cách mà Web Service sử dụng để truyền tải dữ liệu Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kì ngôn ngữ lập trình nào
- Một thông điệp SOAP được chia thành hai phần là header và body Phần header chỉ ra địa chỉ Web Service, host, Content-Type, Content-Length tương tự như một thông điệp HTTP
Trang 17a) Cách gọi Web Service trong Android
- Để gọi được WebService trong Android ta phải có bộ thư viện KSOAP
- Các tham số cần có khi gọi WebService:
+INTERNET:
+ URL:
+ METHOD_NAME:
Trang 18b) Cách lấy dữ liệu từ Web Service dưới dạng json và xml trong Andoid
Bước 1: tạo bảng cơ sở dữ liệu
Bước 2 : Tạo một thư mục tên là webservice, đặt trong thư mục gốc của
website Tiếp đến trong thư mục webservice, tạo 1 file đặt tên là connection.php File này có trách nhiệm tạo kết nối đến cơ sở dữ liệu
Trang 19Bước 3: Viết code php xuất dạng json như sau
Bước 4: Viết code android load dữ liệu hiện thị
Trang 20CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH THIẾT KẾ 2.1 Nhu cầu sử dụng phần mềm đặt món ăn trực tuyến ở Việt Nam và nước ngoài hiện nay
Trên thị trường ẩm thực, mô hình kinh doanh gọi món trực tuyến đang nở rộ trong những năm gần đây chính là cánh cửa cơ hội tiếp cận thị trường thương mại điện tử đầy tiềm năng
Theo số liệu từ Báo cáo thương mại điện tử 2013 của Bộ Công Thương, dự báo doanh số thương mại điện tử B2C của Việt Nam sẽ tăng trưởng 80% từ 2.2 tỷ USD (2013) đến 4 tỷ USD trong năm 2015 Với tốc độ tăng trưởng vượt bậc này, cho đến nay, thương mại điện tử không chỉ nổi lên như một trào lưu mà còn là xu hướng tất yếu xuất hiện ở nhiều lĩnh vực khác nhau tại Việt Nam
Sự nở rộ của hai mô hình kinh doanh như trang web gọi món (gọi món ăn đến bất cứ nơi nào vào bất kỳ thời gian nào) và đặt chỗ nhà hàng trực tuyến (đặt chỗ trước khi đến nhà hàng thưởng thức) cũng góp phần thay đổi quy trình phân phối hàng hoá và phương thức kinh doanh trên thị trường ẩm thực Hai loại hình kinh doanh này đều hoạt động trên cơ sở hệ thống trang web có liên kết hợp tác với nhiều nhà hàng trong khu vực và khách hàng có thể sử dụng dịch vụ trực tuyến tùy theo mục đích của mình
Ưu điểm chung của hai dịch vụ này là khách hàng có thể tham khảo nhiều lựa chọn từ một trang web duy nhất nhằm tiết kiệm thời gian tìm kiếm, theo dõi ưu đãi của nhà hàng thường xuyên và tiếp cận thêm nhiều lựa chọn ẩm thực mới
Nghiên cứu tiến hành trên 474 đối tượng người tiêu dùng Mỹ (2011) của Tiến sĩ Sheryl E Kimes ghi nhận hơn một nửa đối tượng tham gia khảo sát đã từng đặt nhà hàng trực tuyến, 60% trong số này đặt chỗ nhà hàng qua một hệ thống của trang web đặt chỗ trực tuyến thay vì đặt trực tiếp tại trang web của nhà hàng
Những đối tượng tham gia phỏng vấn này cũng xem các trang web trực tuyến là công cụ hữu ích để tìm kiếm, tham khảo thông tin và chọn lựa nhà hàng Tại Việt Nam, trong khi các trang đặt chỗ nhà hàng trực tuyến vẫn còn nhen nhóm
Trang 21tiếp cận thị trường, mô hình trang web gọi món trực tuyến đã bắt đầu nở rộ mạnh
mẽ với những cái tên như foodpanda.vn, eat.vn và chonmon.vn
2.2 Phần mềm ngoài thị trường
2.2.1 Food panda
Cũng giống như các mô hình kinh doanh thương mại điện tử khác, giá trị cốt lõi của mô hình kinh doanh này là xây dựng hệ thống kết nối khách hàng và nhà hàng trên một nền tảng trực tuyến nhằm mang đến sự tiện lợi và đa dạng cho hai bên đối tác
Ông Salvador Martinez, Giám đốc điều hành foodpanda Việt Nam, Đồng sáng lập và giám đốc điều hành của công ty đặt hàng thức ăn trực tuyến foodpanda
chia sẻ “Ý tưởng của mô hình kinh doanh dịch vụ đặt hàng thức ăn trực tuyến được hình thành từ nhu cầu của thị trường Về phía nhà hàng, trang dịch vụ đặt hàng thức ăn trực tuyến là kênh phân phối và tiếp thị hiệu quả giúp họ tiếp cận khách hàng mới ở một địa bàn rộng lớn hơn đồng thời nâng cao chất lượng dịch vụ khách hàng bằng việc bỏ ra một chi phí hợp lý cho đối tác Các trang đặt hàng thức ăn trực tuyến sẽ cung cấp cho nhà hàng một hệ thống cơ sở hạ tầng có sẵn, mạng lưới phân phối và công cụ để triển khai dịch vụ giao hàng tận nơi một cách hiệu quả và kinh tế hơn Về phía khách hàng, gọi món trực tuyến mang đến cho khách hàng phương thức trải nghiệm ẩm thực tiện lợi, dễ dàng mà vẫn thoả mãn được nhu cầu tìm kiếm sự mới lạ của thực khách”
Mô hình kinh doanh trang web đặt hàng thức ăn trực tuyến của foodpanda (Nguồn: http://kinhdoanh.vnexpress.net/)
Trang 22Có thể thấy, gọi món trực tuyến chính là cánh cửa dẫn lối các đối tác ẩm thực gia nhập thị trường thương mại điên tử vốn đang làm mưa làm gió trên nhiều lĩnh vực khác như thời trang, điện tử, công nghệ và bán lẻ
Trên sân chơi trực tuyến, khách hàng sở hữu một công cụ tương tác trực tiếp với nhà hàng Họ có thể đưa ra nhận xét, đánh giá về chất lượng dịch vụ và món ăn trên cùng một nền tảng trực tuyến mà nhà hàng đang kinh doanh Bên cạnh đó, các thông tin về món ăn, giá cả và chất lượng dịch vụ của nhà hàng cũng được phổ biến rộng rãi với cộng đồng Điều này tạo cơ hội cho các nhà hàng nâng cao chất lượng dịch vụ và món ăn của mình để “ghi điểm” trong mắt người tiêu dùng
Mặt khác, sở hữu một lượng lớn cơ sở dữ liệu, các trang gọi món trực tuyến
có thể hoàn thành tốt vai trò định hướng thị trường ẩm thực thông qua nguồn cơ sở
dữ liệu hữu ích về thói quen và thị hiếu tiêu dùng của khách hàng Điều này sẽ giúp thúc đẩy và hoàn thiện quan hệ cung- cầu trên thị trường ẩm thực
2.2.2 Vietnammm
Vietnammm- một trong những đơn vị tiên phong trong thị trường đặt món ăn trực tuyến
Trang 23“Nắm bắt xu hướng phát triển và nhu cầu sử dụng dịch vụ đặt món ăn trực tuyến, vào tháng 2.2011, thị trường thương mại điện tử Việt Nam đón chào thương hiệu Vietnammm, 1 trong những thương hiệu Việt Nam đầu tiên mạnh dạn đầu tư vào lĩnh vực nhiều thách thức này Trang web hiện có hơn 400 nhà hàng và vẫn đang trong quá trình phát triển, với hơn 20,000 đơn hàng mỗi tháng Theo chia sẻ của ông Jochem Lisser, CEO của Vietnammm, trong thời điểm mới ra mắt thị trường, phần lớn khách hàng là người ngoại quốc tại Việt Nam “
Nhưng phân khúc khách hàng hiện đã chuyển dịch sang thị phần khách hàng Việt Nam, những người đang có thói quen tiêu dùng online nói chung và đặt món
ăn qua mạng nói riêng Vietnammm cũng như nhiều doanh nghiệp thương mại điện
tử khác, bắt đầu kinh doanh tại thành phố Hồ Chi Minh với lợi thế cạnh tranh của 1 thành phố trẻ, năng động Vietnammm đang mở rộng tại Hà Nội và Đà Nẵng, tạo thành
3 thị trường năng động, tập trung đông khách hàng và giàu tiềm năng phát triển
2.2.3 Eat.vn
eat.vn – được bắt đầu từ phần khúc khách hàng nước ngoài tại Việt Nam có nhu cầu đặt món ăn
Trang 24“Chỉ vài tháng sau khi Vietnammm ra mắt, thị trường đặt món ăn trực tuyến trở nên sôi động hơn với sự tham gia của eat.vn Eat.vn đang hợp tác với hơn 500 nhà hàng và tiếp tục mở rộng hợp tác Theo chia sẻ của ông Anders Palm, nhà sáng lập của Eat.vn, tổng doanh thu tại Hà Nội và Tp Hồ Chí Minh đạt khoảng “ vài chục tỷ đồng” mỗi tháng và đang duy trì đà phát triển theo hướng tăng tốc Năm bắt nhu cầu thị trường đặt món ăn trực tuyến còn nhiều tiềm năng, VC Corp
đã nhanh nhạy và mua lại Eat.vn trong thương vụ trị giá 2,6 tỷ đồng vào năm 2012 Thị trường phát triển của Eat.vn tập trung vào Hà Nội và Tp Hồ Chí Minh, với đối tượng chính là người nước ngoài tại Việt Nam.”
Trang 25chonmon.vn cho người Việt đã tận dụng tối đã tiềm lực tài chính và khả năng am hiểu tâm lý và xu hướng tiêu dùng trong nước để phát triển thương hiệu tại thị trường giàu tiềm năng và không kém phần thách thức này Hiện goimon.vn đang duy trì sức ảnh hưởng tại Hà Nội và Tp Hồ Chí Minh với hơn 200 cửa hàng
2.2.5 Kết Luận
Với những website đang có trên thị trường chúng ta có thể thấy thị trường đặt món trực tuyến giàu tiềm năng nhưng cũng không ít thách thức, để tăng sức cạnh tranh và thiết lập vị thế riêng, mỗi thương hiệu sẽ cần nỗ lực không ít Đặc biệt các website trên thị trường chưa chú ý đến hiện này là công nghệ, công nghệ phát triển không ngừng đã làm thay đổi thói quen của người sử dụng máy tính và mạng Internet để tìm kiếm thông tin, dịch vụ, sản phẩm Bây giờ, người dùng có thể không ngồi trước màn hình máy tính để tìm kiếm sản phẩm hay dịch vụ mà đã chuyển sang các thiết bị cầm tay như smartphone hay tablet để lướt web nhiều hơn Điều đó cho thấy việc website của bạn rất cần hỗ trợ giao diện di động, như thế khách hàng mới có thể truy cập vào thường xuyên và dễ dàng mọi lúc mọi nơi Tuy vậy, nhiều người không nhận ra rằng họ phải điều chỉnh trang web của mình cho phù hợp với sự thay đổi này Đây là một số bất lợi cho bạn nếu không có một website dành cho các thiết bị di động
“Theo tiết lộ từ một nghiên cứu của Google, khi người dùng điện thoại được hỏi về những gì họ mong đợi khi lướt web trên các thiết bị di động của họ thì:
- 81% người trả lời muốn tăng tốc độ duyệt web cao hơn
- 74% trong số họ muốn trang web của mình phải dễ dàng được truy cập và hoạt động hiệu quả,
- 64% mong muốn tìm kiếm thông tin liên lạc hoặc thông tin sản phẩm một cách dễ dành
- 50% muốn có khả năng đặt hàng liên tục
Nếu bạn không có một trang web hỗ trợ phiên bản mobile đáp ứng được những nhu cầu kể trên thì chẳng khác nào bạn nói với các khách hàng đang sử
Trang 26dụng trang web của cửa hàng mình rằng: “Dịch vụ khách hàng không phải là ưu tiên của tôi”
Trong thời đại bùng nổ CNTT như hiện nay, khách hàng luôn luôn đúng, còn bạn đang sai khi nghĩ rằng việc sở hữu 1 website không hỗ trợ giao diện di động không phải là một vấn đề lớn Thực tế thì việc sở hữu 1 website không tối ưu cho thiết bị di dộng có rất nhiều nhược điểm.”
Khi khách hàng đang ở trên địa bàn của mình, họ sẽ biết được những địa điểm mà họ có thể thưởng thức các món ăn mà không cần phải tham khảo trên Internet Thế nhưng nếu họ đang ở một nơi xa lạ, họ sẽ có xu hướng tìm kiếm các quán ăn thông qua công cụ tìm kiếm trên di động trước để tìm kiếm những món ăn hợp khẩu vị Với 4 ứng dụng ở trên, mới chỉ đáp ứng được website trên Internet, chưa có công cụ tìm kiếm trên di động
Nhiều nhà chuyên gia đã nhận định, nhìn thấy sự thay đổi trong thái độ của khách hàng Việt Họ đánh giá cao sự tiện lợi của thực phẩm đặt hàng trực tuyến và phát hiện rằng, họ sẽ phải trả cùng một mức giá để ăn món ăn yêu thích của họ ở nhà Nhiệm vụ của chúng ta là nghĩ ra cách đặt hàng trực tuyến phù hợp với lối sống năng động của giới trẻ Việt hiện nay Hiện nay, các phần mềm ứng dụng đặt món ăn trực tuyến chủ yếu là ứng dụng của nước ngoài thâm nhập vào Việt Nam và chưa có ứng dụng đặt món ăn trực tuyến trên di động cho người Việt bằng ứng dụng
của người Việt Nên em đã đề xuất đề tài “Xây dựng phần mềm đặt món ăn trực tuyến HMLFOOD cho điện thoại di động trên nền tảng hệ điều hành Android”
2.2.6 Thị trường kinh doanh món ăn trực tuyến
“Theo Foodpanda tại Việt Nam, năm 2014, số đơn đặt hàng của Foodpanda
đã tăng 800% Hiện tốc độ tăng trưởng mỗi tháng đạt từ 20-25% Trong đó, đơn
đặt hàng thông qua ứng dụng điện thoại Foodpanda tăng trưởng mỗi ngày, bởi sự thuận tiện, giúp mọi người có thể gọi món ở bất cứ nơi đâu Foodpanda nhanh chóng trở thành thương hiệu duy nhất tại Việt Nam triển khai dịch vụ tại 5 thành
Trang 27phố lớn: TP.HCM, Hà Nội, Cần Thơ, Nha Trang, Đà Nẵng, với hơn 1.000 nhà hàng
Nổi tiếng và rầm rộ trên toàn cầu và nhanh chóng lấy được vị thế tại Việt Nam, song Foodpanda lại gia nhập thị trường gọi món online của Việt Nam muộn hơn
cả Một trong những thương hiệu Việt đầu tiên đầu tư vào lĩnh vực nhiều thách thức này là Vietnammm.vn Với trang web hiện có hơn 1.000 nhà hàng, hơn 35.000 đơn hàng mỗi tháng, Việt Nam đang mở rộng tại Hà Nội, Đà Nẵng, TP.HCM, tạo thành 3 thị trường năng động, tập trung đông khách hàng và giàu tiềm năng phát triển
Với vị thế đáng gờm đó, năm 2013, Vietnammm lọt vào mắt xanh của một trong những website cung cấp thực phẩm lớn nhất trên thế giới Takeaway.com (Hà Lan) Họ mua Vietnammm để bước chân vào thị trường phân phối thực phẩm của Việt Nam Ngược lại, Vietnammm tận dụng lợi thế nền tảng của Takeaway.com, bao gồm các ứng dụng điện thoại iOS, Android và Windows, để đa dạng hóa dịch vụ với khách hàng
Đây là bước đột phá đầu tiên của Takeaway.com bên ngoài châu Âu Trong khi đó, Foodpanda, với sự hậu thuẫn tài chính mạnh từ Rocket Internet, đang không ngừng quảng cáo hình ảnh để chinh phục Việt Nam - một trong những thị trường được xác định là quan trọng nhất ở Đông Nam Á
Dĩ nhiên, điều đó với cả Takeaway.com và Foodpanda không hề dễ dàng, khi
họ gặp phải đối thủ trong nước là VC Crop Năm 2012, VC Corp bành trướng trên thị trường đặt món trực tuyến khi chi 2,6 tỷ đồng mua lại Eat.vn (được thành lập năm 2011 bởi Anders Palm, người Thụy Điển sống tại TP.HCM từ năm 2007), để phát triển dịch vụ cho người nước ngoài và đặt món trực tuyến.”
(Nguồn: http://kinhdoanh.vnexpress.net/)
Trang 282.3 Khảo sát hệ thống
2.3.1 Mô hình đặt món ăn trực tuyến của khách hàng
Hình 2.1 Mô hình đặt món của khách hàng
Khách hàng lựa chọn nhà hàng – món ăn trên website và đặt món trực tiếp
Website gửi thông tin đến nhà hàng (fax, email, điện thoại…)
Nhà hàng nhận thông tin, chế biến món ăn, giao hàng và thu tiền từ khách hàng (Hoặc có thể Website sẽ có đội ngũ thu tiền và giao hàng)
Nhà hàng trả hoa hồng trên mỗi order cho website
Có ba chủ thể chính tham gia trong mô hình này, bao gồm khách hàng, nhà hàng và website trong đó Multi-restaurant website đóng vai trò trung gian Trong kinh doanh hay trong bất kỳ sự hợp tác nào, muốn thành công đều phải dựa trên nguyên tắc win-win, tức là ai cũng phải có phần Ở đây cũng thế, cả 3 bên đều thu được lợi ích từ mô hình này:
Với khách hàng là sự tiện lợi khi chỉ cần với một vài click chuột là đã có người mang đồ ăn đến tận cửa nhà
Trang 29 Với nhà hàng là cơ hội tăng doanh thu, tăng database khách hàng
Với Multi-restaurant website: nhận được hoa hồng trên mỗi order thành công
Lưu ý:
Với nhà hàng, vấn đề đầu tiên bạn sẽ phải chuẩn bị kế hoạch thật cụ thể để ứng phó với trường hợp quá tải, số lượng order có thể tăng đột biến khi bắt đầu tham gia trên các trang Multi-restaurant website (cũng tương tự vấn đề mà các đơn
vị cung cấp dịch vụ tham gia trên các trang mua chung đang gặp phải) Hãy thử đặt câu hỏi xem liệu nhà hàng của bạn có thể đáp ứng một số lượng lớn các order mà vẫn đảm bảo chất lượng món ăn khi giao đến tay khách hàng hay không? Dịch vụ
ăn uống vốn rất nhạy cảm, khách hàng đã không hài lòng một lần thì họ khó có thể đến với bạn lần thứ 2
2.3.2 Khảo sát quy trình ship hàng của nhà hàng
Tên đơn vị: Pizza online thái nguyên
- Địa chỉ: Ngã Ba điểm hẹn
- Điện thoại: 01646626067
Mô tả hoạt động hoạt động ship hàng:
- Một ca làm việc sẽ có 2 người phục vụ, 2 nhân viên ship hàng, 1 thu ngân, một người là đồ ăn
- Khi khách hàng gọi điện có 2 trường hợp:
+ Trường hợp 1: Gọi điện đặt hàng yêu cầu ship đồ ngay
Khi nhân viên nhận được điện thoại ship hàng xong -> Ghi thông tin địa chỉ khách hàng và đồ khách hàng đặt-> Gửi thông tin cho người làm đồ ăn -> Tính tiền với thu ngân -> Ship đồ đến địa điểm
Khi ship đồ xong về đến cửa hàng -> Thanh toán tiền với thu ngân -> Xóa thông tin khách hàng đã đặt
Kết thúc quá trình ship đồ với khách hàng đó
+ Trường hợp 2: Gọi điện đặt hàng nhưng hẹn thời gian giao hàng
Trang 30 Khi nhân viên nhận được điện thoại ship hàng xong -> Ghi thông tin địa chỉ khách hàng và đồ khách hàng đặt-> Gửi thông tin cho người làm đồ ăn -> Gần đến giờ giao hàng vào lấy đồ giao hàng -> tính tiền với thu ngân -> Ship đồ đến địa điểm
Khi ship đồ xong về đến cửa hàng -> Thanh toán tiền với thu ngân -> Xóa thông tin khách hàng đã đặt
Kết thúc quá trình ship đồ với khách hàng đó
- Khi khách hàng đặt đồ ăn qua trang web hoặc FaceBook của cửa hàng:
Lấy thông tin khách hàng đặt hàng
Gọi điện xác nhận xem có đúng khách hàng đặt đồ không?
Thực hiện quy trình như với khách hàng đặt qua điện thoại
- Sau mỗi ngày nhân viên thu ngân sẽ tổng hợp tình hình kinh doanh và báo cáo lại doanh số trong ngày cho chủ cửa hàng
- Nhân viên Ship hàng sẽ tổng hợp lại bao nhiêu lần đi ship đồ và doanh số, báo cáo lại với chủ cửa hàng
Cơ sở hạ tầng :
+ Gồm có 16 bàn trong đó có 1 bàn lớn dành cho nhóm khách hàng khoảng 7-10 người , 9 bàn cỡ vừa dành cho nhóm khách hàng 4 người , 6 bàn cỡ nhỏ dành cho 2 người
+ Nhà hàng có hỗ trợ ghép nhiều bàn với nhau với nhóm khách hàng nhiều người + Có 2 xe để Ship đồ
- Ưu nhược điểm của hệ thống hiện tại: Hệ thống hiện tại của cửa hàng là ghi chép sổ sách nên vẫn còn 1 số bất cập:
+ Sổ sách cồng kềnh, khó khăn trong việc quản lí và theo dõi
+ Chính vì vậy việc xây dựng ứng dụng đặt món ăn trên mobile là giải pháp hiệu quả trong việc phục vụ thực khách cũng như trong quản lí nhà hàng
+ Khi đông khách gây chậm trễ trong phục vụ khiến khách hàng không hài lòng
Sơ đồ vật lí của nhà hàng
Trang 31Hình 2.2 Sơ đồ vật lý của nhà hàng
Trang 32* Phiếu yêu cầu :
- Pizza Online Thái Nguyên
Trang 332.4 Yêu cầu đặt ra và giải quyết yêu cầu
2.4.1 Yêu cầu đặt ra
Dựa trên ý tưởng, giao diện của những phần mềm em đã khảo sát như phần mềm Foodpanda và khảo sát thực tế, mà em có rút ra một số yêu cầu để xây dựng ứng dụng đặt món ăn trực tuyến HTML_FOOD có những chức năng sau:
- Khi có khách hằng đặt món sẽ báo về ngay tức thì ( tiện lợi cho khách hàng đặt món và cho cửa hàng quản lý khách hàng)
- Hiện thị danh sách khách hàng đặt món ăn
Tiện lợi cho khách hàng ở công sở, đang bận làm việc không thể ra ngoài ăn
2.4.2 Giải quyết yêu cầu
- Khảo sát cơ sở hạ tầng và mục đích của khách hàng từ đó đề xuất mô hình ứng dụng cho phù hợp
- Phân tích thiết kế ứng dụng
- Thu thập, đọc tài liệu nghiên cứu cách làm việc và lập trình trên nền tảng di động
- Tìm hiểu về Web Service và cách tạo một Web Service bằng PHP MYSQL
- Tạo cơ sở dữ liệu, tiến hành dùng Web Service truy suất đến cơ sở dữ liệu
- Nghiên cứu các thư viện trong Android để lập trình ứng dụng
Trang 34- Xem danh sách cửa hàng đã đăng ký
- Thêm khu vực cửa hàng được đăng ký
Trang 35Biểu đồ UC tổng quát:
Hình 2.3 Biểu đồ UC tổng quát
2.5.2 Đặc tả UC
a UC đăng nhập
- Mục đích: Use case dùng để cho phép adminshop đăng nhập vào hệ thống
để có được những quyền hạn mà adminshop có đối với hệ thống
- Tác nhân: admin cửa hàng
- Mô tả chung: Để đăng nhập người quản trị shop đi đến menu và mở giao diện
đăng nhập, sau đó nhập thông tin gồm username và password và nhấn nút đăng nhập Luồng sự kiện chính:
Bảng 2.2: Luồng sự kiện chính UC đăng nhập
Hành động của tác nhân Phản ứng của client Phản ứng của server
1 Chọn giao diện đăng nhập
3 Nhận phản hồi của server
và thông báo kết quả
1 Nhận dữ liệu đăng nhập từ client
2 Kiểm tra dữ liệu đăng nhập
3 Phản hồi kết quả cho client
Trang 36b, UC đăng ký
- Mục đích: Use case này dùng để cho phép một cửa hàng mới đăng ký một tài khoản với hệ thống để có được những quyền hạn mà chỉ người quản lý cửa hàng
mới có
- Tác nhân: quản trị cửa hàng
- Mô tả chung: Để thực hiện đăng ký người dùng đến menu và mở giao diện đăng nhập sau đó chọn nút đăng ký ( hoặc mở giao diện đăng ký ở menu) Nhập
thông tin hệ thống yêu cầu và nhấn đăng ký
- Luồng sự kiện chính:
Bảng 2.3: Luồng sự kiện chính UC đăng ký
Hành động của tác nhân Phản ứng của client Phản ứng của server
1 Chọn giao diện đăng
nhập
2 Chọn use case đăng ký
3 Nhập thông tin người
c) UC xem danh sách menu
Mục đích: Use case này dùng để tải về danh sách các menu của cửa hàng
hiện có trên server theo một điều kiện cụ thể nào đó hoặc tất cả và hiển thị lên giao
diện màn hình
- Tác nhân: người quản trị cửa hàng
- Mô tả chung: Khi người dùng đăng nhập thì client sẽ gửi dữ liệu tới server
để lấy danh sách dữ liệu yêu cầu và hiển thị lên giao diện cho người dùng
- Luồng sự kiện chính:
Trang 37Bảng 2.4: Luồng sự kiện chính UC xem danh sách menu
Hành động của tác nhân Phản ứng của client Phản ứng của server
1 Đăng nhập 1 Gửi dữ liệu mà người
dùng yêu cầu cho server
2 Nhận danh sách menu của cửa hàng trả về từ server và hiển thị lên giao diện
1 Nhận dữ liệu được gửi
Mục đích: Use case này dùng để thêm một menu của cửa hàng
- Tác nhân: người quản trị cửa hàng
- Mô tả chung: Khi người dùng click vào nút thêm, hiện ra giao diện thêm menu mới, nhập menu cần thêm vào và click vào nút thêm thì client sẽ gửi dữ liệu lên
server, inset vào cơ sở dữ liệu và hiển thị lên giao diện cho người dùng đã thành công
- Luồng sự kiện chính:
Bảng 2.5: Luồng sự kiện chính UC thêm Menu
Hành động của tác nhân Phản ứng của client Phản ứng của server 1.Click vào nút thêm 1.Gửi dữ liệu mà
người dùng yêu cầu cho server
2.Hiển thị thông báo lên giao diện
1.Nhận dữ liệu được gửi từ client
2.Truy vấn dữ liệu theo yêu cầu
3.Gửi phản hổi lại cho client
e) UC sửa menu
Mục đích: Use case này dùng để sửa một menu của cửa hàng
- Tác nhân: người quản trị cửa hàng
- Mô tả chung: Khi người dùng click vào nút sửa, hiện ra giao diện sửa menu, nhập thông tin cần sửa và click vào nút sửa thì client sẽ gửi dữ liệu lên server,
update vào cơ sở dữ liệu và hiển thị lên giao diện cho người dùng đã thành công
Trang 38- Luồng sự kiện chính:
Bảng 2.6: Luồng sự kiện chính UC sửa Menu
Hành động của tác nhân Phản ứng của client Phản ứng của server
2 Click vào nút sửa 3 Gửi dữ liệu mà người
dùng yêu cầu cho server
4 Hiển thị thông báo lên giao diện
4 Nhận dữ liệu được gửi
Mục đích: Use case này dùng để xóa một menu của cửa hàng
- Tác nhân: người quản trị cửa hàng
- Mô tả chung: Khi người dùng click vào menu cần xóa, hiện ra thông báo có muốn xóa không, click vào nút xóa thì client sẽ gửi dữ liệu lên server, xóa trên cơ
sở dữ liệu và hiển thị lên giao diện cho người dùng đã thành công
- Luồng sự kiện chính:
Bảng 2.7: Luồng sự kiện chính UC xóa Menu
Hành động của tác nhân Phản ứng của client Phản ứng của server
3 Click vào menu cần
g) UC xem danh sách order
Mục đích: Use case này dùng để tải về danh sách các order của cửa hàng hiện
có trên server theo một điều kiện cụ thể nào đó hoặc tất cả và hiển thị lên giao
diện màn hình
- Tác nhân: người quản trị cửa hàng
Trang 39- Mô tả chung: Khi người dùng click vào xem danh sách order thì client sẽ gửi dữ liệu tới server để lấy danh sách dữ liệu yêu cầu và hiển thị lên giao diện cho
người dùng
- Luồng sự kiện chính:
Bảng 2.8: Luồng sự kiện chính UC xem danh sách order
Hành động của tác nhân Phản ứng của client Phản ứng của server
4 Click vào nút xem
danh sách order
7 Gửi dữ liệu mà người dùng yêu cầu cho server
8 Nhận danh sách order của cửa hàng trả về từ server và hiển thị lên giao diện
10 Nhận dữ liệu được gửi từ client
11 Truy vấn dữ liệu theo yêu cầu
12 Gửi phản hổi lại cho client
2.5.3 Biểu đồ hoạt động
Đăng nhập
Hình 2.4 Biểu đồ hoạt động đăng nhập