VIỆN KỸ THUẬT CÔNG NGHỆ NGÀNH CÔNG NGHỆ THÔNG TIN ĐỒ ÁN HỌC PHẦN Ứng dụng di động XÂY DỰNG HỆ THỐNG ĐIỂM DANH SINH VIÊN BẰNG NHẬN DIỆN KHUÔN MẶT Giảng viên hướng dẫn TS Trần Xuân Hào Sinh viên thực.VIỆN KỸ THUẬT CÔNG NGHỆ NGÀNH CÔNG NGHỆ THÔNG TIN ĐỒ ÁN HỌC PHẦN Ứng dụng di động XÂY DỰNG HỆ THỐNG ĐIỂM DANH SINH VIÊN BẰNG NHẬN DIỆN KHUÔN MẶT Giảng viên hướng dẫn TS Trần Xuân Hào Sinh viên thực.
Trang 1VIỆN KỸ THUẬT & CÔNG NGHỆ NGÀNH CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN HỌC PHẦN Ứng dụng di động
XÂY DỰNG HỆ THỐNG ĐIỂM DANH SINH VIÊN
BẰNG NHẬN DIỆN KHUÔN MẶT
Giảng viên hướng dẫn: TS Trần Xuân Hào
Sinh viên thực hiện: Nguyễn Đức Mạnh – 1755248020100122
Nguyễn Thế Vũ – 1755248020100057 Nguyễn Viết Đức – 1755248020100225
Nghệ An -12/2022
Trang 3Cả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 4MỤC LỤC
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC TỪ VIẾT TẮT iv
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH ẢNH vi
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 3
1.1 GIỚI THIỆU VỀ FOODNOW 3
1.1.1 Tổng hợp, gợi ý ăn uống theo xu hướng 3
1.1.2 Thông tin các chương trình khuyến mãi 3
1.2 GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG CHO ỨNG DỤNG FOODNOW5 1.2.1 Ngôn ngữ Java 5
1.2.2 Hệ điều hành android 7
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI 12
1.4 Ý NGHĨA CỦA ĐỀ TÀI 13
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 14
2.1 MÔ TẢ BÀI TOÁN 14
2.2 CHỨC NĂNG CỦA ĐỒ ÁN: 14
2.3 CÁC TÁC NHÂN VÀ HƯỚNG GIẢI QUYẾT 14
2.4 SƠ ĐỒ 15
2.4.1 Biểu đồ usecase 15
2.4.2 Biểu đồ tuần tự 17
2.4.3 Biểu đồ hoạt động 20
Trang 53.2 GIAO DIỆN ỨNG DỤNG 24
KẾT LUẬN 29
DANH MỤC TÀI LIỆU THAM KHẢO 30
Trang 6DANH MỤC TỪ VIẾT TẮT
HTML Hypertext Markup Language
CSS Cascading Style Sheets
CLI Command line interface
JSON JavaScript Object Notation
Trang 7DANH MỤC BẢNG BIỂU
Bảng 3.1 Bảng user 23
Bảng 3.2 Bảng address 23
Bảng 3.3 Bảng Shop 24
Bảng 3.4: Bảng Category 24
Bảng 3.5 Mô tả hoạt động chức năng đăng nhập 25
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1: Ứng ứng liên tục cập nhật và gợi ý món ăn 3
Hình 1.2: Chương trình ưu đãi được ứng dụng cập nhật thường xuyên 4
Hình 1.3: Tạo món đặt hàng nhanh chóng 5
Hình 1.4: Các thức hoạt động của HTML 6
Hình 1.5 Biểu đồ thống kê thời gian sử dụng smartphone trong một ngày 11
Hình 1.6 Biểu đồ sự thay đổi hàng năm của giá điện thoại thông minh trung bình toàn cầu 11
Hình 1.7 Biểu đồ tổng doanh thu từ ứng dụng trên toàn thế giới (2018) 12
Hình 2.1 Sơ đồ Usecase dành cho khách hàng 15
Hình 2.2 Sơ đồ Usecase của Admin 16
Hình 2.3 Usecase khách hàng 16
Hình 2.4 Sơ đồ usecase quản lý sản phẩm 17
Hình 2.5 Sơ đồ tuần tự cho chức năng đăng nhập 17
Hình 2.6 Sơ đồ tuần tự cho Administrator đăng nhập 18
Hình 2.7 Sơ đồ tuần tự Administrator thêm khách hàng 18
Hình 2.8 Sơ đồ tuần tự Administrator thêm sản phẩm 19
Hình 2.9 Sơ đồ tuần tự Administrator cập nhật thông tin danh mục 19
Hình 2.10 Sơ đồ hoạt động khách hàng tìm kiếm sản phẩm 20
Hình 2.11 Sơ đồ hoạt động Administrator quản lý sản phẩm 20
Hình 2.12 Sơ đồ lớp 21
Hình 2.13 Sơ đồ triển khai 21
Hình 3.1 Giao diện đăng nhập 24
Hình 3.2 Màn hình trang chủ 25
Trang 91 Lý do chọn đề tài
MỞ ĐẦU
Thương mại điện tử (TMĐT) là lĩnh vực tương đối mới ở Việt Nam rất đượcquan tâm và ngày càng quan trọng cho sự phát triển kinh tế Đối với các cửa hàng hayshop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhucầu của khách hàng sẽ là cần thiết
Thời đại Công nghệ 4.0 tập trung vào sự phát triển củ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 đều có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ĩnh vực đời sống
Sự bùng nổ thương mại điện tử cũng đã đi sâu vào lĩnh vực thức ăn, đồ uống.Hầu hết các giao dịch thương mại điện tử trong lĩnh vực thức ăn đồ uống được thự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ới mongmuốn giúp tránh ảnh hưởng đến sức khỏe của khách hàng trong thời gian dịch bệnhkéo dài
2 Đối tượng và phạm vi nghiê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ệnnay là android và ios
3 Phương pháp nghiên cứu
Sử dụng kiến thức đã học và các tài liệu có liên quan trong và ngoài nước liênquan đến đề tài nghiên cứu đặc biệt là các tài liệu về phát triển ứng dụng
Nghiên cứu và tìm hiểu tập trung bám sát đề cương dưới sự hướng dẫn của thầygiáo
4 Mục tiêu nghiên cứu đề tài
Hiện nay, tinh hình dịch bênh đang tăng cao gây ảnh hưởng rất nhiều đến nênkinh tế, sức khỏe của mọi người Cho 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 đến sức khỏe khách hàng khi rangoài trong thời gian dịch bệnh này Đó là “FoodNow” ứng dụng giao đồ ăn và đồuống
Trang 105 Cấu trúc của để tài
Mở đầu
Chương 1: Tổng quan về đề tài
Chương 2: Phân tích và thiết kế hệ thống
Chương 3: Triển khai và xây dựng website
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 GIỚI THIỆU VỀ 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ệt Nam, 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ên thường xuyên mua hàng mang về từ các chuỗi cửa hàng rất cao Lượngngười dùng smartphone ở Việt Nam có đến 61,3 triệu người (nguồn: vov.vn) Vì thếtôi đã đưa ra giả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 ứng dụng trên điện thoại thông minh Tôi đưa ra giải pháp phần mềm dànhcho điện thoại thông minh tên là “Food Now” ứng dụng giao hàng đồ ăn và thức uống
1.1.1 Tổng hợp, gợi ý ăn uống theo xu hướng
FoodNow dựa vào xu hướng các món ăn, nước uống được nhiều người đặt trongngà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ời giansuy nghĩ hôm nay ăn gì, uống gì
Hình 1.1: Ứng ứng liên tục cập nhật và gợi ý món ăn 1.1.2 Thông tin các chương trình khuyến mãi
Cũng như các ứng dụng đặt đồ ăn khác, ứng dụng FoodNow có nhiều chươngtrình khuyến mãi, giảm giá khác nhau và được cập nhất mới mỗi ngày
Trang 12Hình 1.2: Chương trình ưu đãi được ứng dụng cập nhật thường xuyên
Hỗ trợ order theo nhóm nhanh chó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 theo nhó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 Sau khi mọi người chọn món xong thì chủ nhóm sẽ đứng tiến hành đặt đồ ăn,bạn không cần hỏi từng người muốn ăn gì như trước
Trang 13Hình 1.3: Tạo món đặt hàng nhanh chóng
Hỗ trợ theo dõi các tiến trình của đơn hàng
Sau khi đặt hàng xong, FoodNow hỗ trợ bạn theo dõi tiến trình đơn hàng, bạn sẽbiết được đơn hàng của bạn sắp đƣợc giao tới hay chƣa, còn bao lâu thì tới
1.2 GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG CHO ỨNG DỤNG FOODNOW 1.2.1 Ngôn ngữ Java
1.2.1.2 Các tính năng của Java
Hướng đối tượng: Trong Java, tất cả đều là một Object Java có thể mở rộng và bảotrì dễ dàng bởi nó được xây dựng dựa trên mô hình Object
Nền tảng độc lập: Khi được biên dịch, Java không được biên dịch thành ngôn ngữ 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 được thông dịch từ máy ảo (JVM) trên một nền tảng nào đó mà nó đang chạy
Trang 14Bảo mật: Tính năng an toàn của Java cho phép phát triển các hệ thống không virus, không giả mạo, việc xác thực dựa trên mã hoá khóa công khai
Kiến trúc – trung lập: Trình biên dịch của Java tạo ra các định dạng tệp đối tượng kiến trúc trung lập, khiến mã biên dịch được thực thi trên nhiều bộ vi xử thông qua hệ điều hành Java
Portable: 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ểm chính khi nói về Portable của Java Các trình biên dịch tại Java được viết bằng ANSI
C với ranh giới Portable gọn gàng, gọi là Subset POSIX, bạn có thể mang Byte Code của Java lên bất cứ một nền tảng nào
Mạnh mẽ: Java luôn nỗ lực loại trừ các tình huống dễ bị lỗi thông qua việc kiểm tralỗi tại thời điểm biên dịch và kiểm tra lỗi tại runtime
Đa luồng: Giúp tạo ra các chương trình thực hiện cùng lúc nhiều tác vụ, cho phép các nhà phát triển xây dựng ứng dụng tương tác chạy trơn tru hơn
Thông dịch: Các mã byte Java được dịch trực tiếp tới các máy tính gốc và không được lưu trữ ở bất cứ đâu
Hiệu năng cao: Khi sử dụng trình biên dịch Just-In-Time, Java cho phép thực hiện hiệu năng cao
Phân tán: Java được sử dụng thiết kế cho môi trường phân tán của Internet
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ại runtime có thể được sử dụng để xác minh hay giải quyết các truy cập vào các đối tượng tại runtime
Trang 15Web App như javatpoint.com, irctc.co.in, …
Enterprise App như một vài ứng dụng về xử lý các nghiệp vụ ngân hàng, …
Thiết bị Mobile như các ứng dụng IOS hay Android
Hệ thống nhúng
Smart Card
Robot
Game App
Java sử dụng rộng rãi trong nhiều lĩnh vực
1.2.1.4 Kiến trúc và môi trường của Java là gì?
Nhắc đến kiến trúc và môi trường của Java, chúng ta sẽ nói đến 3 thành phần chính bao 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)
JVM cung cấp môi trường thời gian chạy trong đó bytecode thực thi Máy ảo Java JVM thực hiện các nhiệm vụ sau:
Tải mã
Xác minh mã
Thực thi mã
Tạo môi trường thời gian chạy
1.2.1.6 Môi trường thời gian chạy Java – JRE
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ường thờ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 JRE cũng phụ thuộc vào nền tảng Đồng thời JRE còn hỗ trợ thực thi những chương trình Java, 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át triển Java (JDK)
JDK là viết tắt của Java Development Kit, một bộ cung cấp môi trường để phát
Trang 16Tấ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át triển Java bao gồm: Appletviewer (để xem các applet Java), Javac (trình biên dịch Java), 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ạo tệp HTML) và Jdb (trình gỡ lỗi Java)
1.2.1.8 Ưu, nhược điểm của Java
Để có thể được nhiều người đón nhận sử dụng và đánh giá tích cực, chắc chắn Java
đã có những ưu điểm nhất định Cụ thể:
Java là ngôn ngữ độc lập với nền tảng vì chúng ta có thể chạy mã Java ở bất kỳ máynào mà không cần phần mềm đặc biệt
Là ngôn ngữ lập trình cấp cao dễ học và dễ hiểu
Là ngôn ngữ hướng đối tượng làm tăng khả năng phát triển mã dễ dàng và tăng hiệu quả
Là ngôn ngữ an toàn vì Java không sử dụng con trỏ
Quản lý bộ nhớ hiệu quả
Hỗ trợ đa luồng, người dùng có thể thực hiện cùng lúc nhiều chương trình
Có nhiều tính năng: tự động thu gom rác, không sử dụng con trỏ, xử lý ngoại lệ… Nhược điểm của Java là gì?
Là ngôn ngữ cấp cao nên phải xử lý các mức biên dịch và trừu tượng của một máy ảo
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
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
Với mã nguồn mở và giấy phép không có nhiều ràng buộc nên Android ngày càng
Trang 17xế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
Đối với những ứng dụng mất phí tải về, nếu người dùng mua một ứng dụng mà họ
cảm thấy không hài lòng thì họ được hoàn trả tiền sau 15 phút kể từ lúc tải về
Tính đến tháng 10/2012, đã có hơn 700.000 ứng dụng trên Android và số lượt tải về
từ cửa hàng ứng dụng chính của Android (Google Play) chiếm khoảng 25 tỷ lượt
Đến nay, con số này đã lên tới 3 triệu ứng dụng.
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ị
1.2.2.3 Ư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
+ Mẫu mã đa dạng
Với nhiều nhà sản xuất lớn như Samsung, OPPO, Xiaomi, Huawei, Sony, Nokia,
bạn có thể lựa chọn giữa nhiều mẫu mã thiết bị khác nhau, từ các mẫu giá rẻ cho đến các mẫu cao cấp
+ 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, 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
+ Khả năng tùy biến cao có thể chỉnh sửa mà không có sự can thiệp hay cấm cản từ
Do bản chất nguồn mở của hệ điều hành Android, ai cũng có thể lấy được mã
nguồn của hệ điều hành này
Điều này cũng đồng nghĩa là các nhà sản xuất, cũng như là các lập trình viên độc
lập, có thể tự do tùy biến Android để có được hiệu năng tốt nhất hoặc bỏ đi những tính năng không cần thiết
+ 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
Trang 18+ 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
+ Một số ứng dụng chưa được tối ưu hóa tố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 ứng
dụng cho tất cả các mẫu thiết bị Android trên thị trường, nên các ứng dụng có thể gặp các lỗ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ần cứng của máy
+ Chất lượng một số ứng dụng còn ké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ảng
cáo khó chịu và không có các chức năng hữu dụng, gây cản trở cho công việc hay thời giangiải trí của bạn
+ 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
1.3 MỤC ĐÍCH CỦA ĐỀ TÀI
Ứng dụng mua bán FoodNow chạy trên nền Adroid và ios được thực hiện dựatrên 2 mục đích sau:
Trang 19Thứ 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ới ReactNavite.
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ụng vào thực tế, giúp những người có nhu cầu đặt đồ ăn, nước uống có thể thao tác dễdàng và tiện lợ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 đƣợc mụcđích mong đợi
1.4 Ý NGHĨA CỦ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ứng dụ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õiquan tâm giúp đỡ từ thầy Trần Xuân Hào trong suốt thời gian em thực hiện đề tài này