李緒遠(yuǎn) 陳云貴 何敏 盧穎彬
摘要:針對當(dāng)前基于微信小程序的美食服務(wù)平臺還相對匱乏,功能參差不齊等問題;且基于WEB端的美食服務(wù)平臺存在使用不便利等原因,設(shè)計了一個基于微信小程序的智能烹飪小助手。按照前后端分離架構(gòu)的要求,系統(tǒng)分為客戶端和服務(wù)端??蛻舳藶槲⑿判〕绦?,采用官方提供的原生UI組件庫構(gòu)建項(xiàng)目的前端頁面;服務(wù)端包括服務(wù)器和數(shù)據(jù)庫,項(xiàng)目選擇MySQL數(shù)據(jù)庫存儲數(shù)據(jù),并采用SpringBoot框架開發(fā)項(xiàng)目接口??蛻舳思次⑿判〕绦蛲ㄟ^向服務(wù)器端發(fā)送HTTP/HTTPS請求獲取服務(wù)數(shù)據(jù)。項(xiàng)目實(shí)現(xiàn)了美食識別、應(yīng)季食物推薦、熱門美食搜索、菜譜收藏等功能。性能測試結(jié)果表明,小程序運(yùn)行穩(wěn)定可靠,數(shù)據(jù)安全能夠得到有效保障。
關(guān)鍵詞:微信小程序;美食推薦平臺;圖片識別;菜譜管理;小程序設(shè)計
中圖分類號:TP311 ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)32-0081-03
Design and Implementation of Intelligent Cooking Assistant
LI Xu-yuan, CHEN Yun-gui, HE Min, LU Ying-bin
(Guangdong University of Science and Technology, Dongguan 523083, China)
Abstract: In view of the current food service platform based on wechat applet is still relatively scarce and its functions are uneven; Moreover, the existing WEB-based food service platform is inconvenient to use, We designed an intelligent cooking assistant based on wechat applet. According to the requirements of the front-end and back-end separation architecture, the system is divided into client and server. The client is a WeChat applet, which uses the official native UI component library to build the front-end page of the project; The server includes a server and a database, we select the MySQL database to store data, and use the SpringBoot framework to develop the project interface. The client obtains service data by sending HTTP/ HTTPS requests to the server. The project realizes the functions of food identification, seasonal food recommendation, popular food search, menu collection and so on. The performance test shows that the applet runs stably and reliably, and the data security can be effectively guaranteed.
Key words: WeChat mini program; food recommendation platform; picture recognition; recipe management; mini program design
1 背景
傳統(tǒng)的美食烹飪方法往往是通過口口相傳或者書籍傳承的方式實(shí)現(xiàn)。隨著互聯(lián)網(wǎng)的迅猛發(fā)展,通過網(wǎng)絡(luò)獲取美食烹飪的方式越來越受到年輕人的喜愛,因此基于WEB端的美食網(wǎng)站或者基于移動端的網(wǎng)絡(luò)菜譜App應(yīng)運(yùn)而生。另一方面,因?yàn)樾〕绦驌碛小盁o需下載”“無需安裝”“觸手可及”和“用完即走”的特性[1],加之小程序和微信的無縫對接特點(diǎn),使得很多服務(wù)類目的App產(chǎn)品都在“小程序化”。本文針對當(dāng)前互聯(lián)網(wǎng)發(fā)展趨勢以及滿足廣大用戶對美食文化向往的需求,設(shè)計實(shí)現(xiàn)一種基于移動端的、能夠有效傳承美食文化的小程序應(yīng)用。
為有效傳承美食文化以及滿足廣大用戶實(shí)際需求,“智能烹飪小助手”劃分為五大模塊[2]。分別為烹飪分類模塊、應(yīng)季食物推薦模塊、美食識別模塊、熱門搜索模塊、菜譜收藏模塊。項(xiàng)目采用前后端分離架構(gòu)[3],前端通過個性化界面設(shè)計和大量使用自定義組件,使得小程序UI風(fēng)格整潔統(tǒng)一,大大提升了用戶體驗(yàn)效果;另一方面也結(jié)合模塊化思想進(jìn)行開發(fā),在模塊劃分上遵循高內(nèi)聚、低耦合的準(zhǔn)則;后端則采用流行的SpringBoot+Maven+MyBatis開發(fā)框架實(shí)現(xiàn)項(xiàng)目所需的API接口,為前端小程序各個功能模塊提供服務(wù)。
2 系統(tǒng)相關(guān)技術(shù)可行性研究
2.1 微信小程序介紹
微信小程序框架的核心是一個相應(yīng)的數(shù)據(jù)綁定系統(tǒng)。整體架構(gòu)可分為 view(視圖層)、App Service(邏輯層)。其中view(視圖層)主要用來設(shè)計人機(jī)交互界面,而 App Service(邏輯層)主要是負(fù)責(zé)數(shù)據(jù)交互以及業(yè)務(wù)邏輯處理[4]。View(視圖層)和 App Service(邏輯層)分別在兩個進(jìn)程中運(yùn)行,通過系統(tǒng)層 JSBridge 實(shí)現(xiàn)通信,實(shí)現(xiàn)UI 的渲染、事件的處理。同時自微信小程序誕生之日起,其顯著的優(yōu)勢就充分展示出來。首先微信小程序是寄生于微信中,用戶使用時不需要在移動設(shè)備上安裝App,只需在微信中“搜索”或者“掃一掃”即可進(jìn)入應(yīng)用,用完退出即可,快捷又方便[5]。其次不管相對于原生 App 或者 webApp 而言,微信小程序的開發(fā)周期以及成本更短更少,維護(hù)起來更加簡單方便。
2.2 SpringBoot框架介紹
SpringBoot是一個簡化Spring開發(fā)的框架,是由Pivotal團(tuán)隊提供的全新框架。其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程[6]。從本質(zhì)上來說,SpringBoot就是Spring。在另一方面,SpringBoot采用 JavaConfig的方式對Spring進(jìn)行配置,并且提供了大量的注解,極大地提高了工作效率;其次SpringBoot通過使用特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置;同時SpringBoot內(nèi)置了三種Servlet容器,Tomcat、Jetty、undertow,我們只需要一個Java的運(yùn)行環(huán)境就可以運(yùn)行SpringBoot的項(xiàng)目。因此,SpringBoot框架使得編碼、配置、部署、監(jiān)控變得簡單[7],提高了廣大開發(fā)人員的開發(fā)效率。
2.3 MySQL數(shù)據(jù)庫介紹
MySQL是一個多用戶、多線程的關(guān)系型數(shù)據(jù)庫,是一個客戶機(jī)/服務(wù)器結(jié)構(gòu)的應(yīng)用,它由一個服務(wù)器守護(hù)程序和很多不同的客戶程序和庫組成。同時MySQL數(shù)據(jù)庫擁有許多優(yōu)勢,首先其體積小,可運(yùn)行在Windows平臺和大多數(shù)的Linux平臺;其次MySQL擁有快速、輕量級、易于擴(kuò)展、免費(fèi)、跨平臺等特點(diǎn)[8];再次,使用SQL語句,數(shù)據(jù)一致性高,冗余低,數(shù)據(jù)完整性好??傊摂?shù)據(jù)庫技術(shù)成熟,功能強(qiáng)大,支持很多復(fù)雜操作。
3 系統(tǒng)需求分析
3.1 系統(tǒng)需求及業(yè)務(wù)流程分析
3.1.1 系統(tǒng)需求分析表
3.1.2 系統(tǒng)業(yè)務(wù)流程分析
智能烹飪小助手普通用戶業(yè)務(wù)流程如上圖所示,用戶通過“搜索”或者“掃一掃”找到該小程序進(jìn)入即可。當(dāng)用戶成功進(jìn)入后即可正常使用“智能烹飪小助手”的全部功能。智能烹飪小助手一共分為五大功能模塊:烹飪分類模塊、應(yīng)季食物推薦模塊、美食識別模塊、熱門搜索模塊以及菜譜收藏模塊。
3.2 系統(tǒng)總體架構(gòu)分析
如圖2所示,“智能烹飪小助手”采用前后端分離架構(gòu)進(jìn)行開發(fā)。系統(tǒng)架構(gòu)主要分為四層,分別為view(視圖層)、App Service(邏輯層)、服務(wù)器、數(shù)據(jù)源。view(視圖層)和App Service(邏輯層)為客戶端,其中view(視圖層)主要用來展示人機(jī)交互界面,而App Service(邏輯層)主要是負(fù)責(zé)數(shù)據(jù)交互以及前端業(yè)務(wù)邏輯處理。項(xiàng)目采用前后端分離架構(gòu)進(jìn)行開發(fā),更有助于前端專注于 UI 設(shè)計以及前端業(yè)務(wù)邏輯的編寫,能夠有效提高頁面的交互效率以及用戶體驗(yàn)感。服務(wù)器和數(shù)據(jù)源為服務(wù)端,通過客戶端向服務(wù)端發(fā)送HTTP/HTTPS請求并成功接收到服務(wù)端返回的數(shù)據(jù)后,App Service(邏輯層)根據(jù)業(yè)務(wù)需求對數(shù)據(jù)進(jìn)行處理并將最終處理的結(jié)果集渲染到view(視圖層)中。
3.3 系統(tǒng)需求具體概述
智能烹飪小助手總體功能結(jié)構(gòu)圖如圖3所示。
3.3.1 烹飪分類
烹飪分類模塊為用戶提供多種常見食物種類的推薦做法,比如“口味特色”“水產(chǎn)”“肉類”等各種各樣的食物種類,用戶可以根據(jù)自己喜好選擇查看某個食物類型的各種推薦做法以及做法詳情。
3.3.2 應(yīng)季食物
應(yīng)季食物模塊為用戶量身定做,根據(jù)用戶所在地的季節(jié)隨機(jī)推送應(yīng)季食物的功能模塊。該功能模塊會獲取用戶所在城市以及城市的天氣等信息,同時根據(jù)用戶所在地當(dāng)前的季節(jié)推送多種應(yīng)季食物的推薦做法。
3.3.3 美食識別
美食識別模塊為用戶提供一種快速獲取某種食物推薦做法以及做法詳情的途徑。用戶可以選擇“拍照”或者“上傳照片”對食物進(jìn)行識別,“烹食智能小助手”會將AI識別的結(jié)果返回給用戶進(jìn)行瀏覽查看。
3.3.4 熱門搜索
熱門搜索模塊為用戶提供另一種快速獲取某種食物推薦做法以及做法詳情的途徑。用戶可以通過輸入食物的名稱進(jìn)行搜索即可獲取該食物的推薦做法以及相關(guān)做法詳情。
3.3.5 菜譜收藏
菜譜收藏模塊為用戶提供一種收藏心儀菜譜的功能。當(dāng)用戶在瀏覽烹食智能小助手推薦的做法過程中,可以將自己心儀的菜譜進(jìn)行收藏。當(dāng)后期需要再次瀏覽時,只需要打開“我的收藏”即可查看歷史收藏菜譜,同時也可以將某個菜譜從收藏記錄中移除。
4 系統(tǒng)總體設(shè)計
4.1 系統(tǒng)數(shù)據(jù)庫設(shè)計
針對智能烹飪小助手的實(shí)際需求,分別對烹飪分類模塊、應(yīng)季食物模塊、美食識別模塊、熱門搜索模塊、菜譜收藏模塊進(jìn)行分析,分析得出如下需求信息:在烹飪分類模塊中,根據(jù)項(xiàng)目實(shí)際需要將各種食物分別進(jìn)行歸類劃分,因此烹飪分類模塊需要分類表;在應(yīng)季食物模塊中,由于該模塊需要展示用戶所在省份省會城市的圖片以及推薦應(yīng)季食物,所以需要有省會表和城市菜品表;在熱門搜索模塊、美食識別模塊以及做法詳情中,根據(jù)項(xiàng)目實(shí)際需求調(diào)用了第三方接口來獲取數(shù)據(jù),因此無需設(shè)計數(shù)據(jù)表。
4.2 系統(tǒng)人機(jī)交互界面設(shè)計
5 結(jié)束語
就目前微信小程序發(fā)展趨勢而言,無論是速度還是規(guī)模,發(fā)展都是非常快速的。同時相對App而言,微信小程序存在“不用安裝,即開即用,即用即走”等優(yōu)勢,這也正是“智能烹飪小助手”選擇基于微信平臺的原因。智能烹飪小助手為廣大用戶提供了美食做法推薦、應(yīng)季食物推薦、菜譜收藏、今日熱點(diǎn)等功能。用戶可以通過小程序快速查看相關(guān)美食的推薦做法。
參考文獻(xiàn):
[1] 陳云貴,高旭.微信小程序開發(fā)從入門到實(shí)戰(zhàn)(微課視頻版)[M].北京:清華大學(xué)出版社,2020.
[2] 鮮易洲,楊蕊,吳蓉,等.時食美食分享系統(tǒng)的設(shè)計與分析[J].電腦知識與技術(shù),2021,17(9):85-87.
[3] 吳昌政.基于前后端分離技術(shù)的web開發(fā)框架設(shè)計[D].南京:南京郵電大學(xué),2020.
[4] 朱敏.基于微信小程序的美食服務(wù)平臺的設(shè)計與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2021(8):50-51.
[5] 李晶.基于微信小程序的美食推薦系統(tǒng)[D].蘭州:蘭州大學(xué),2020.
[6] 邱璐璐,陳俊仁.基于SpringBoot和Vue框架的高校代領(lǐng)系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].信息技術(shù)與信息化,2021(4):25-27.
[7] 齊保峰,張毛毛,蔡鯤鵬,等.基于SpringBoot的自助洗車店運(yùn)營系統(tǒng)設(shè)計[J].電腦知識與技術(shù),2021,17(12):33-35.
[8] 劉建國,段炬霞,劉學(xué)工.體驗(yàn)式教學(xué)在MySQL課程中應(yīng)用探索[J].電腦知識與技術(shù),2021,17(9):121-122.
【通聯(lián)編輯:謝媛媛】
收稿日期:2021-06-25
作者簡介:李緒遠(yuǎn)(1998—),男,廣東汕頭人,學(xué)士,主要研究方向?yàn)橛嬎銠C(jī)軟件開發(fā);陳云貴(1986—),男,廣東東莞人,講師,碩士,主要研究方向?yàn)閰^(qū)塊鏈、人工智能和新媒體營銷;何敏(1996—),男,廣東高州人,學(xué)士,主要研究方向?yàn)橛嬎銠C(jī)軟件開發(fā);盧穎彬(1996—),男,廣東廣州人,學(xué)士,主要研究方向?yàn)橛嬎銠C(jī)軟件開發(fā)。