Hầu hết các giao dịchthương mại điện tử trong lĩnh vực thức ăn đồ uống đượcthựchiện thông qua các thiết bị di động như điện thoại vàmáy tính bảng.. TạiViệtNam, các chuỗi nhà hàng, cửa hà
Trang 1VIỆN KỸ THUẬT & CÔNG NGHỆNGÀNHCÔNGNGHỆTHÔNGTIN
ĐỒÁNHỌCPHẦN Ứngdụngdiđộng
Nghệ An-12/2022
Trang 3LỜICẢM ƠN
Sau một thời gian thực hiện đồ án tốt nghiệp, đến nay mọi công việc liên quanđến
đồ án đã hoàn tất Trong suốt thời gian này, em đã nhận được rất nhiều sự giúp đỡ.Ởphần đầu tiên của luậnvăn, cho phép em có đôi điều gửi đến những ng ười em vôcùngbiếtơn
EmxinchânthànhcảmơnKhoaCôngnghệthôngtin,TrườngĐạihọcVinhđãtạođiềuk
iệnthuậnchochúngemthựctậpđểcócơ hộithực hiệnđềtài tốtnghiệpnày
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Trần Xuân Hào đã tận tìnhhướngdẫn,chỉ bảo chúngemtrongsuốt quátrình thựchiệnđềtàinày
Chúnge m x i n c h â n t h à n h c ả m ơ n q u ý T h ầ y C ô t r o n g K h o a C ô n g nghệthôngti
nđ ã tậntìnhgiảngdạy,trang bịchoemnhữngkiếnthứcquýbáu
Cũng xin gửi lời biết ơn đến ba, đến mẹ, những người đã luôn dành nhữngtìnhthương yêu nhất cho chúng em, những người đã luôn hỗ trợ, dõi theo những bướcđicủachúngem trongtấtcảcácnămhọcvừaqua
Cảm ơn tất cả bạn bè, những người đã sát cánh cùng nhau những niềm vui, cùngchia
sẻ những khó khăn của chúng em và giúp đỡ chúng em rất nhiều trong quá trìnhthực hiệnđồán
Trang 4LỜICẢM ƠN i
MỤCLỤC ii
DANHMỤC TỪVIẾTTẮT iv
DANHMỤC BẢNG BIỂU v
DANHMỤC HÌNHẢNH vi
MỞ ĐẦU 1
CHƯƠNG1 TỔNGQUAN VỀĐỀTÀI 3
1.1 GIỚITHIỆUVỀ FOODNOW 3
1.1.1 Tổnghợp,gợi ýănuốngtheoxuhướng 3
1.1.2 Thôngtin các chươngtrình khuyếnmãi 3
1.2 G I Ớ I THIỆU VỀCÔNGNGHỆSỬDỤNGCHOỨNGDỤNGFOODNOW5 1.2.1 Ngôn ngữ Java 5
1.2.2 Hệđiều hành android 7
1.3 MỤCĐÍCHCỦAĐỀ TÀI 12
1.4 Ý NGHĨACỦAĐỀ TÀI 13
CHƯƠNG 2.PHÂN TÍCHVÀTHIẾTKẾHỆTHỐNG 14
2.1 MÔTẢBÀITOÁN 14
2.2 CHỨCNĂNG CỦAĐỒÁN: 14
2.3 CÁCTÁCNHÂNVÀHƯỚNGGIẢI QUYẾT 14
2.4 SƠ ĐỒ 15
2.4.1 Biểuđồusecase 15
2.4.2 Biểuđồtuầntự 17
2.4.3 Biểuđồhoạtđộng 20
2.4.4 Biểuđồlớp 21
2.4.5 Sơ đồtriển khaivàyêucầucủa hệthống: 21
CHƯƠNG 3.TRIỂN KHAIVÀXÂYDỰNG ỨNGDỤNG 23
3.1 THIẾTKẾỨNGDỤNG 23
3.1.1 Môhình côngnghệứngdụng 23
3.1.2 Thiếtkếdữ liệuvậtlý 23
Trang 53.2 GIAO DIỆNỨNGDỤNG 24
KẾTLUẬN 29
DANHMỤC TÀILIỆUTHAMKHẢO 30
Trang 6Dom DocumentObjectModenpm NodePackageManagerHTML HypertextMarkupLanguageCSS CascadingStyleSheetsCLI CommandlineinterfaceJSON JavaScriptObjectNotation
Trang 7Bảng3.1.Bảnguser 23
Bảng3.2.Bảngaddress 23
Bảng3.3.BảngShop 24
Bảng3.4: BảngCategory 24
Bảng3.5.Môtảhoạtđộngchức năngđăngnhập 25
Trang 8Hình1.1:Ứngứngliêntụccậpnhậtvàgợiýmónăn 3
Hình1.2:Chươngtrìnhưuđãiđượcứngdụngcậpnhậtthườngxuyên 4
Hình1.3:Tạomónđặthàngnhanh chóng 5
Hình1.4:Cácthức hoạtđộngcủa HTML 6
Hình1.5.Biểuđồthống kêthờigiansửdụngsmartphonetrongmộtngày 11
Hình1.6.Biểuđồsựthayđổihàngnămcủagiáđiệnthoạithôngminhtrungbìnhtoàncầu 11
Hình1.7.Biểuđồ tổngdoanhthu từứngdụngtrên toànthế giới(2018) 12
Hình2.1.Sơ đồUsecase dànhchokháchhàng 15
Hình2.2.Sơ đồUsecase củaAdmin 16
Hình2.3.Usecasekhách hàng 16
Hình2.4.Sơ đồusecase quảnlýsản phẩm 17
Hình2.5.Sơ đồ tuầntựchochức năngđăng nhập 17
Hình2.6.Sơđồtuần tựchoAdministratorđăngnhập 18
Hình2.7.Sơ đồtuầntự Administratorthêmkháchhàng 18
Hình2.8.SơđồtuầntựAdministratorthêmsảnphẩm 19
Hình2.9.SơđồtuầntựAdministratorcậpnhậtthôngtindanhmục 19
Hình 2.10.Sơđồhoạtđộngkhách hàng tìmkiếmsảnphẩm 20
Hình2.11.Sơ đồhoạtđộngAdministrator quảnlýsảnphẩm 20
Hình2.12.Sơ đồlớp 21
Hình2.13.Sơđồtriển khai 21
Hình3.1.Giaodiệnđăngnhập 24
Hình3.2.Mànhìnhtrangchủ 25
Hình3.3.MànhìnhSetting 26
Hình3.4.Mànhìnhchitiếtsảnphẩm 26
Hình3.5.Truy cậptừchitiếtsảnphẩmđến giỏhàng 27
Hình3.6.Mànhìnhđưasản phẩmvàogiỏhàngvà đặtsảnphẩm 27
Hình3.7.Mànhìnhkhiđặthàng thànhcông 28
Hình3.8.Cácloại mónănkháchhàngtruy cậpvào 28
Trang 9Thời đại Công nghệ 4.0 tập trung vào sự phát triểncủa công nghệ Tức là tất cảnhững gì liên quan đến hệthống vật lý không gian mạng Internet Như chúng ta đềucóthể cảm nhận được, công nghệ đang và sẽ tạo ảnh hưởng to lớn lên tất cả các ngành vàlĩnhvựcđời sống.
Sự bùng nổ thương mại điện tử cũng đã đi sâu vàolĩnh vực thứcă n , đ ồ u ố n g Hầu hết các giao dịchthương mại điện tử trong lĩnh vực thức ăn đồ uống đượcthựchiện thông qua các thiết bị di động như điện thoại vàmáy tính bảng Nên em quyếtđịnh chọn đề tài “Xây dựngứng dụng giao đồ ăn, nước uống foodnow”, vớimongmuốngiúptránhảnhhưởngđếnsứckhỏecủakháchhàngtrongthờigiandịchbệnhkéodài
2 Đốitượngvàphạm vinghiên cứu
Nghiên cứu phát triển triển ứng dụng foodnow trên
2 nền tảng phổ biến nhất hiệnnaylàandroid vàios
3 Phươngphápnghiêncứu
Sử dụng kiến thức đã học và các tài liệu có liênquan trong và ngoài nước liênquanđếnđềtàinghiêncứuđặcbiệtlàcáctàiliệuvềpháttriểnứngdụng
Nghiêncứuvàtìmhiểutậptrung bámsátđềcươngdướisựhướngdẫncủathầy
giáo
4 Mụctiêunghiên cứuđềtài
Hiện nay, tinh hình dịch bênh đang tăng cao gây ảnhhưởng rất nhiều đến nênkinh tế, sức khỏe của mọi người
Trang 10Cho nên em đưa ra giải
pháp đặt đồ ăn và giao đồ
ănnhằm phục vụ nhu cầu
mọi người, tránh ảnh hưởng
Trang 12CHƯƠNG1.TỔNG QUANVỀĐỀTÀI
1.1 GIỚITHIỆUVỀFOODNOW
Ngành dịch vụ ăn uống luôn thịnh hành và là nhu cầu thiết yếu của xã hội TạiViệtNam, các chuỗi nhà hàng, cửa hàng ăn uống rất đông tại các thành thị, thành phốlớn.Theo như thống kê thu thập được, lượng khách hàng của các cửa hàng ăn uốngngoài giờcao điểm chiếm không quá 30% ghế ngồi của cửa hàng Tỉ lệ công nhân,nhân viênthường xuyên mua hàng mang về từ các chuỗi cửa hàng rất cao Lượngngười dùngsmartphone ở Việt Nam có đến 61,3 triệu người (nguồn: vov.vn) Vì thếtôi đã đưa ragiải pháp cải thiện điều đó, tôi cung cấp dịch vụ đặt món ăn cho ngườidùng bằng ứngdụng trên điện thoại thông minh Tôi đưa ra giải pháp phần mềmdànhchođiệnthoạithôngminhtênlà“FoodNow”ứng dụng giaohàngđồănvàthức uống
1.1.1 Tổnghợp,gợiýănuốngtheo xuhướng
FoodNow dựa vào xu hướng các món ăn, nước uống được nhiều người đặttrongngày và vị trí gần bạn để đưa ra gợi ý Các gợi ý, đề xuất giúp bạn tiết kiệm thờigiansuynghĩ hômnayăngì,uốnggì
Hình1.1:Ứng ứngliêntục cậpnhậtvàgợiý mónăn 1.1.2 Thôngtincácchươngtrìnhkhuyến mãi
Cũngnhư các ứ n g dụngđặt đồănkhá c, ứ ng dụ ng FoodNow có nhiềuchương trình khuyếnmãi,giảm giákhácnhauvàđược cậpnhất mớimỗi ngày
Trang 13Hỗtrợordertheonhómnhanhchóng, thuận tiện
Một trong những tính năng nổi bật trên FoodNow, chính là đặt đồ ăn theonhóm(Group order), dành cho những bạn muốn đặt đồ ăn cùng bạn bè Trong nhóm chỉcầnmột bạn sẽ là chủ nhóm, đứng ra tạo link đặt đồ ăn và chia sẻ link cho bạn bèchọnmón.Saukhimọingườichọnmónxongthìchủnhómsẽđứngtiếnhànhđặtđồăn,bạnkhôngcầnhỏitừngngười muốnăngìnhư trước
Trang 14Hình1.3:Tạomónđặthàngnhanh chóng
Hỗtrợtheodõicáctiếntrìnhcủađơnhàng
Saukhiđặthàngxong,FoodNowhỗtrợbạntheodõitiếntrìnhđơnhàng,bạnsẽbiếtđượcđơnhàngcủa bạn sắp đƣợcgiaotớihay chƣa, cònbaolâuthìtới
1.2 GIỚITHIỆUVỀCÔNGNGHỆSỬDỤNGCHOỨNGDỤNGFOODNOW
1.2.1 NgônngữJava
1.2.1.1 Javalàgì?
Javađượcbiếtđếnlàngônngữlậptrìnhbậccao, hướngđốitượngvàgiúpbảomậtmạnh mẽ, và còn được định nghĩa là một Platform Java được phát triển bởi SunMicrosystems, do James Gosling khởi xướng và ra mắt năm 1995 Java hoạt động trên rấtnhiềunềntảngnhưWindows,Mac và cácphiênbảnkhác nhaucủa UNIX
1.2.1.2 Cáctính năngcủaJava
Hướngđốitượng:Trong Java,tấtcảđềulàmộtObject.Javacóthểmởrộngvàbảotrìdễdàngbởinóđượcxâydựng dựatrênmô hìnhObject
Nền tảng độc lập: Khi được biên dịch, Java không được biên dịch thành ngônngữmáy trên nền tảng cụ thể mà thay vào mã byte – một nền tảng độc lập Mã byte này đượcthôngdịchtừmáyảo(JVM)trênmộtnềntảngnàođómànóđang chạy
Đơn giản: Java được thiết kế đơn giản, dễ học Chỉ hiểu khái niệm cơ bản vềOOPJava,đểtrởthànhmaster vềjavarất dễ
Trang 15Portable: Một loại kiến trúc trung lập, phụ thuộc vào việc thực hiện, là những
đặcđiểmchínhkhinóivềPortable củaJava.CáctrìnhbiêndịchtạiJavađược viếtbằngANSIC với ranh giới Portable gọn gàng, gọi là Subset POSIX, bạn có thể mang Byte Code củaJava lên bấtcứmột nềntảng nào
Mạnhmẽ:Javaluônnỗlựcloạitrừcác tìnhhuốngdễbịlỗithôngquaviệckiểmtralỗitạithời điểmbiêndịch và kiểm tralỗitại runtime
Đaluồng:Giúptạoracácchươngtrìnhthựchiệncùnglúcnhiềutácvụ,chophépcác
nhàpháttriển xâydựng ứng dụngtương tácchạytrơntruhơn
Thôngdịch:CácmãbyteJavađượcdịchtrực tiếptớicác máytínhgốcvàkhôngđược lưu trữởbất cứđâu
Hiệunăngcao:KhisửdụngtrìnhbiêndịchJust-In-Time,Javachophépthựchiệnhiệunăng cao.Phântán:Javađượcsửdụngthiếtkếchomôitrường phântáncủaInternet
Năng động: Java năng động hơn C hoặc C++ do được thiết kế với mục đích
thíchứng môi trường đang phát triển Các chương trình Java sở hữu lượng lớn thông tin tạiruntimecóthểđược sửdụngđểxácminhhaygiảiquyếtcác truycậpvàocácđốitượngtạiruntime
Trang 16Nhắcđếnkiếntrúc vàmôitrườngcủaJava, chúngtasẽnóiđến3thànhphầnchínhbao gồm: Máy
ảo Java (JVM), môi trường thời gian chạy Java (JRE) và bộ phát triển Java(JDK)
1.2.1.5 Máyảo Java(JVM)
JVMcungcấpmôitrườngthờigianchạytrongđóbytecodethựcthi.MáyảoJavaJVM thựchiện cácnhiệm vụsau:
JRE là tập hợp công cụ cho phép phát triển các ứng dụng và cung cấp môi
trườngthời gian chạy nhằm chạy các chương trình Java JVM là một phần của JRE và chính JREcũngphụthuộcvàonềntảng.ĐồngthờiJREcònhỗtrợthựcthinhữngchươngtrìnhJava,bao gồm JVM, bộ công cụ giao diện người dùng, Công nghệ triển khai hay plugin Java,v.v
1.2.1.7 BộpháttriểnJava(JDK)
JDK là viết tắt của Java Development Kit, một bộ cung cấp môi trường để
pháttriểnvàthựcthicácchươngtrìnhJava.JDKcũngchứaJREchạymãJavavàchứa
cáctàinguyênkhácnhưtrìnhthôngdịch/trìnhtải, trìnhbiêndịch,trìnhlưutrữvàtrìnhtạotài
Trang 17Tất cả các thành phần này hợp lại giúp xây dựng các chương trình Java Bộ
pháttriểnJavabaogồm:Appletviewer(đểxemcácappletJava),Javac(trình biêndịchJava),Java (trình thông dịch Java), Javap (trình tháo gỡ Java), Javah (dành cho tệp tiêu đề C),Java.doc(để tạotệpHTML) vàJdb(trình gỡlỗi Java)
Làngônngữcấpcaonênphảixửlýcácmứcbiêndịchvà trừutượngcủa mộtmáy
AndroidlàhệđiềuhànhnguồnmởdựatrênnềntảngLinux,chủyếudànhchocácthiếtbịcómànhìnhcảmứng nhưđiệnthoại,máytínhbảng
tácđộngtrựctiếplênmànhìnhnhưvuốt,chạm,phóngtovàthulại đểxửlý cácđốitượng trênmànhì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ểutượng(icon)vàtiệních(widget).GiaodiệncủaAndroidchophépngườidùngtựdosắp
Trang 18Tínhđếntháng10/2012,đã cóhơn700.000ứngdụngtrênAndroidvàsốlượttảivềtừcửa hàngứngdụngchínhcủaAndroid(GooglePlay)chiếmkhoảng25tỷlượt.
Đếnnay,consốnàyđã lêntới3triệuứng dụng
CácứngdụngchoAndroidđượcpháttriểnbằngngônngữJavavà sửdụngBộpháttriể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ầnmềm, hỗtrợvớicông suất
Trang 19SovớiiOS, AndroidtốiưuhóabộnhớRAM cóphầnkémhơn,dẫnđếnviệcnhiềuứngdụng chạyngầm gâychậmmáyhoặcthậmchí làđơmáy
+Mộtsốứngdụngchưađược tốiưuhóatốt
Do có quá nhiều mẫu mã khác nhau, các nhà phát triển không thể tối ưu hóa
ứngdụngchotấtcảcác mẫuthiếtbịAndroidtrênthịtrường,nêncácứngdụngcóthểgặpcáclỗi như không hiển thị được toàn màn hình hoặc không thể tận dụng hết sức mạnh phầncứngcủamáy
+Chấtlượngmộtsốứngdụngcònkém
Một số ứng dụng trên Google Play có chất lượng khá kém với hàng loạt các
quảngcáokhóchịuvàkhôngcócácchức nănghữudụng,gâycảntrởchocôngviệchaythờigiangiảitrí củabạn
Trang 20Thứ nhất là nghiên cứu các công nghệ lập trình: như lập trình ứng dụng vớiReactNavite.
Thứ hai là phát triển ứng dụng có tính thực tiễn cao, có khả năng triển khai ứngdụngvào thực tế, giúp những người có nhu cầu đặt đồ ăn, nước uống có thể thao tácdễdàngvàtiệnlợi
Em hy vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợpvới
sự tìm hiểu công nghệ của cá nhân, luân văn tốt nghiệp của em sẽ đạt đƣợcmụcđíchmongđợi
1.4 ÝNGHĨACỦAĐỀTÀI
Trước hết, đề tài” Xây dựng ứng dụng giao đồ ăn, nước uống FoodNow” là mộtứngdụng được xây dựng như một đề tài thể hiện việc áp dụng được những kiến thứcquý báu
từ thầy cô Trường đại học Vinh nhiệt tình truyền thụ lại cho em, đó cũng lànền móng để
em có thể hiểu và tiếp cận, hiểu nhanh hơn các nguồn tài liệu trên mạngnhờ đó để có thểhoàn thành tốt nhất đề tài tốt nghiệp này Và đặc biệt là sự theo dõiquantâmgiúpđỡtừthầyTrầnXuânHào trongsuốtthời gianem thựchiện đềtài này
Trang 21CHƯƠNG2 PHÂNTÍCHVÀTHIẾTKẾHỆTHỐNG
2.1 MÔTẢBÀITOÁN
Bài toán thương mại điện tử là một bài toán lớn và phức tạp với nhiềumodulekháchn h a u n h ư : t ì m k i ế m s ả n p h ẩ m , đ ư a h à n g v à o g i ỏ h à n g , đ ă n g n h ậ p , c
á c c h ứ c năng quản lý… Những khó khăn hiện tại của cửah à n g : c ù n g v ớ i s ự x u ấ t h i ệ n
n g à y một đổi mới của các món ăn đadạng khác nhau và yêu cầu về mở quy mô cũng nhưviệc cung cấp nhu cầu ăn uống nhanh nhất đến khách hàng, các cửa hàng phải đốimặtvớinhững vấn đềkhógiải quyếtdocơ cấucũ khôngđáp ứngđược:
∗Khách hàng phải tốn thời gian trực tiếp ến các cửađến các cửa h à n g đ ể m u a
m a n g v ề trong thờigian dịchbệnhcănthẳngsẽrất bất tiện
∗Khả năng phục vụ của cửa hàng khi lượng khách quá đông sẽ không đượcchuđáokhi lượng nhânviênkhôngđủvàkhônggianquánchậthẹp
Vì thế khi việc xây dựng ứng dụng FooNow sẽ giúp cho cửa hàng nắm bắtđượcthông tin của khách hàng đặt đồ ăn, nước uống nhanh chóng tiện lợi chỉ cần vàibướcđơn giản với chiếc smartphone trên tay, nhờ đó giúp cho cửa hàng bán ra đượclượngđồăn,nướcuốngvớisốlượngnhiềuhơntrongmộtngàymàkhôngcầnkhônggianquá quá rộng Với những tiện lợi trên thì em mong muốn hợp tác cùng các cửa hàng ănuống Mang đến cho người dùng những thức ăn, thứcuống giao hàng tận nơi thôngđiệnthoạithôngminh.Đemlạilợinhuận chođốitác
2.2 CHỨCNĂNGCỦAĐỒÁN:
FoodNow là một ứng dụng đặt món ăn trực tuyến và giao tận nơi theo yêu cầu tạibất
cứ hàng quán nào với thời gian tối đa 45 phút Tình hình dịnh bệnh khó khăn kéodài cũng đồng nghĩa với nhu cầu đặtmónm a n g v ề n g à y c à n g t ă n g c a o , v ì t h ế ứ n g dụng FoodNow làgiải pháp tốt nhất cho khách hàng có thể tận hưởng đượcnhữnghươngvịyêuthíchmàkhôngcầnrangoài
2.3 CÁC TÁC NHÂN VÀ HƯỚNG GIẢI
Trang 22 Tấtcả đốitượngphảiđăng nhập mớiđược sửdụng ứng dụng
Tàikhoảnngườidùngchỉcóquyềnthayđổicácthôngtincánhânvàđổimậtkhẩu,đăngxuất
Trang 24oTácnhân Administrator
Biểuđồ usecasequản lýsảnphẩm
Hình2.4.Sơđồusecasequản lýsảnphẩm 2.4.2 Biểuđồtuầntự
Tácnhân kháchhàng:
Hình2.5.Sơđồtuầntựchochứcnăngđăngnhập
Trang 25Hình2.6.Sơđồtuần tựchoAdministratorđăngnhập
Hình2.7.SơđồtuầntựAdministratorthêmkháchhàng
Trang 26Hình2.8.SơđồtuầntựAdministrator thêmsảnphẩm
Hình2.9.SơđồtuầntựAdministratorcậpnhậtthôngtindanhmục
Trang 282.4.4 Biểuđồlớp
Hình2.12 Sơđồlớp 2.4.5 Sơđồtriểnkhaivà yêucầucủahệthống:
Trang 29Thiếtbị:Sử dụngsmartphone hệ điềuhànhAndroid
Phầnmềm: CàiđặttừCH- Playđốivớikhách hàngcó
Trang 30CHƯƠNG3.TRIỂN KHAIVÀXÂY DỰNGỨNGDỤNG
3.1 THIẾTKẾỨNGDỤNG
3.1.1 Môhìnhcôngnghệứngdụng
Client ReactNativeDatabase JsonMôtả:
Sử dụngJsontíchhợpvớiServer–Website
Client(Front-end)đượcxâytrênframeworkReact-Native.Tạoracácgiaodiệntương tácphùhợpcho ngườidùng
3.1.2 Thiếtkếdữ liệuvậtlý
BảngUser
Bảng3.1.Bảnguser Tên cột Kiểu Ràngbuộc Ghichú
UserID(PK) String PK,NotNull ID
UserName String NotNull HọvàTên
UserPassword String NotNull MậtKhẩu
Bảngaddress
Bảng3.2.Bảngaddress Têncột Kiểu Ràngbuộc Ghichú
AdressID(PK) ID PK,NOTNULL ID ngườidùng
District String NOTNULL Quận
BảngShop
Bảng3.3.BảngShop Têncột Kiểu Ràngbuộc Ghichú