Vì nhu cầu cuộc sống mà các món ăn ngày càng phổ biến rộng rãi hơn, để có được những món ăn ngon các bà nội trợ hay những người thích vào bếp phải bỏ thời gian ra tìm các sách dạy nấu ăn
Trang 1TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC ĐÀ NẴNG
Trang 2LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốtthời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận đượcrất nhiều sự quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè Với lòng biết
ơn sâu sắc nhất, em xin gửi đến thầy Nguyễn Văn Nam cùng với các thầy cô
ngành công nghệ thông tin – Trường cao đẳng thực hành FPT polytechnic đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường Em xin chân thành cảm ơn thầy/cô đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu lập trình.Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ bài thu hoạch này của em rất khó có thể hoàn thiện được Một lần nữa, em xin chân thành cảm ơn thầy Bài thu hoạch được thực hiện trong khoảng thời gian gần 2 tháng Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực sáng tạo trong nghiên cứu lập trình, kiến thức của em còn hạn chế và còn nhiều bỡ ngỡ Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu của quý thầy để kiến thức của em trong lĩnh vực này được hoàn thiện hơn.
Mặc dù chúng em đã cố gắng nỗ lực để thực hiện đề tài này, song luận văn chắc chắn khó tránh khỏi những thiếu sót Do đó, chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý thầy cô.
Một lần nữa, chúng em xin chân thành cảm ơn!
Sinh viên
Bùi Việt PhiTrương Khánh Mậu
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Trang 42.5Kế hoạch thực hiện ( file excel )32.6Dự kiên kết quả đạt được3CHƯƠNG 1.CƠ SỞ LÝ THUYẾT4
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG72.2.3Biểu đồ triển khai132.2.4Ứng dụng tương đồng để phát triển ứng dụng của chúng ta142.2.5Bản triển khai công việc152.2.6Mockup cho ứng dụng15CHƯƠNG 3: XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ HÌNH ẢNH GIAO DIỆN CỦA ỨNG DỤNG 19
2.2.2Giao diện ứng dụng22CHƯƠNG 4 : HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI27
Trang 51.BỐI CẢNH ĐỀ TÀI
MỞ ĐẦU
Ngày nay việc ứng dụng và phát triển công nghệ thông tin đã giúp con người giải phóng sức mạnh vật chất, trí tuệ và tinh thần, thúc đẩy phát triển nền kinh tế góp phần nâng cao chất lượng cuộc sống của con người Giúp con người giải quyết các hoạt động ngoài đời sống một cách nhanh chóng và tiện lợi Vì nhu cầu cuộc sống mà các món ăn ngày càng phổ biến rộng rãi hơn, để có được những món ăn ngon các bà nội trợ hay những người thích vào bếp phải bỏ thời gian ra tìm các sách dạy nấu ăn, các món ăn trên trang web để nấu được các món ăn ngon, nếu như vậy sẽ tốn rất nhiều thời gian của anh – chị - em chúng ta.
Vì vậy thiết nghĩ cần phải có một ứng dụng trên di động giới thiệu về các món ăn và chia sẽ công thức giúp tiết kiệm thời gian hơn và không cần phải đắng đo suy nghĩ nên nấu gì và công thức như thế nào?
Chính vì vậy, ý tưởng của tôi đưa ra là: “Xây dựng ứng dụng giới thiệu các món ăn và chia
sẽ công thức chế biến cho từng món ăn trên di động mang tên“Cẩm nang ẩm thực””2.MỤC ĐÍCH VÀ H Ư ỚNG XÂY DỰNG ĐỀ TÀI
2.1 Mục đích của đề tài
" Ứng dụng giới thiệu các món ăn và chia sẽ công thức chế biến cho từng món ăn
trên di động " là ứng dụng được thiết kế để sử dụng trên các thiết bị di động Nhằm
cung cấp thông tin và hình ảnh các món ăn để người dùng học hỏi thông qua ứng dụng.Người dùng có thể tìm kiếm thông tin của các món ăn được giới thiệu trong app Ngoài ra, họ có thể đăng tải các chia sẽ về món ăn của họ thông qua chức năng đăng bài viết Quan trọng hơn, ứng dụng đem lại lợi ích cho đại đa số người dùng, với mỗi người dùng đều là người khai thác và người phát triển kho dữ liệu và ngoài ra còn giúp các khách hàng tiết kiệm được thời gian mà lại có được món ăn ưng ý như mình đang cần tìm.
2.2 Nhiệm vụ cần thực hiện
2.2.1 Nghiên cứu phát triển ứng dụng trên Android.2.2.2 Tìm hiểu về JSON trên firebase.
Trang 62.2.3 Tìm hiểu cách thức hoạt động của các phần mềm quản lý trao đổi thông
tin trên di động đã có.
2.2.4 Tạo thông tin món ăn.
2.2.5 Xây dựng phần mềm ứng dụng trên nền tảng Android.2.4.3 Gennymatio, nox, bluestark 2.5 Kế hoạch thực hiện ( file excel )2.6 Dự kiên kết quả đạt được
Dự kiến ứng dụng hoàn toàn có khả năng triển khai thực tiễn Các mục tiêu cần đạt được: Xây dựng thành công hệ thống kho dữ liệu ở Server với Firebase cung cấp việc giao
tiếp giữa ứng dụng với kho dữ liệu
Xây dựng thành công ứng dựng trên điện thoại di động Android
Triển khai thành công hệ thống chạy trên môi trường thực tiễn, cụ thể là: internet cho server và trên điện thoại di động chạy hệ điều hành Android cho ứng dụng
Qua lần thực hiện dự án có thể đúc kết những kiến thức lập trình, nâng cao khả năng xây dựng dự án trong tương lai,tổng hợp lại kiến thức đã được học tập từ trước đến nay để chuẩn bị cho kỳ thi tốt nghiệp sắp tới
Trang 71.1 HỆ ĐIỀU HÀNH ANDROID
1.1.1 Giới thiệu về hệ điều hành Android
Hình 1 Giới thiệu android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005 Android ra mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008.
Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phép Apache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã cho phép các nhà phát triển thiết bị, mạng di động và các lập trình viên nhiệt huyết được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt.
Trang 8Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công ty công nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng, Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác Bản chất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và những người đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòi hoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác.
1.1.2 Intent
Khái niệm Intend:
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity
Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư giúp các Activity có thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windows Form.
\
Trang 91.2 JSON
JSON là viết tắt của JavaScript Object Notation Chi tiết tại http://www.json.org/, nó là một chuẩn để định dạng dữ liệu, về mặt này có thể so sánh JSON với XML YAML… Nhưng khi JSON đi với JavaScript hoặc ActionScript thì nó có tính ưu việt hơn hẳn.
JSON có liên quan đến JavaScript, ActionScript Đơn giản là vì dữ liệu được định dạng thành chuỗi JSON chính là cách biểu diễn một đối tượng trong các Scripting Language này.
Khi sử dụng JSON với JavaScript hay ActionScript, không cần phải có các bước phân tích phức tạp như đối với XML Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON.
1.3 SERVER
Trang 11HƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 PHÂN TÍCH YÊU CẦU2.1.1 Mô tả bài toán
Xem thông tin từng món ăn trên toàn ứng dụng Truy cập thông tin
Đăng bài viết chia sẽ về món ăn và công thức (có hình ảnh minh họa món ăn) Khi có sự thay đổi về các món ăn đã chia sẽ phần mềm sẽ tự động cập
nhật thông tin thay đổi, chỉ cần thiết bị smartphone có kết nối mạng Wifi hoặc 3G
Quản lý bài đã đăng và thông tin tài khoản
Chia sẽ các món ăn đã được đăng trong ứng dụng Cơ sở dữ liệu
Danh sách thông tin các món ăn do người dùng cung cấp (có chức năng nhập dữ liệu từ ứng dụng lên sever) Mang tính chất dữ liệu mở
Danh sách thông tin các món ăn có sẵn trong ứng dụng.Mang tính chất dữ liệu mở
2.1.2 Phân tích hiện trạng
Việt Nam có đủ các yếu tố để phát triển ngành công nghệ thông tin và truyền thông trở thành ngành kinh tế mũi nhọn Với tiềm năng phát triển mạnh mẽ của công
Trang 12nghệ thông tin đa dạng và phong phú, đất nước trở thành điểm đến của các công ty CNTT nổi tiếng của thế giới Trong đó ngành phát triển và sử dụng các ứng dụng trên điện thoại di động ngày càng nhiều.
2.1.3 Phân tích yêu cầu bài toán
2.1.3.1 Người sử dụng
Đối tượng sử dụng: đối tượng sử dụng được chia thành hai loại: - Người chia sẽ
- Người sử dụng
Mục đích sử dụng: Mục đích lớn của hệ thống là hướng tới đại đa số người dùng Hệ thống đi kèm với việc xây dựng kho dữ liệu là phát triển một ứng dụng trên điện thoại di động, cụ thể là điện thoại chạy hệ điều hành Android Và người sử dụng sẽ được:
Cung cấp các thông tin từng món và công thức theo các tiêu chí khác nhau Thực hiện việc đăng tải thông tin trên ứng dụng hướng tới người dùng khác Hỗ trợ chia sẽ các món ăn đến người dùng khác.
2.1.3.2 Dữ liệu
Xây dựng
Kho dữ liệu được xây dựng dựa theo hai nguồn dữ liệu được cung cấp: Nguồn dữ liệu nhập từ người lập trình qua Firebase.
Nguồn dữ liệu nhập từ người dùng qua ứng dụng Cập nhật
Cập nhập dữ liệu mang yếu tố quan trọng cho hệ thống và kho dữ liệu Lương thông tin cập nhập càng nhiều thì sẽ tăng tính chất mở của kho dữ liệu Cập nhập dữ liệu thông qua các bước sau:
Bước 1: Người sử dụng sẽ xem thông tin các món được chia sẽ trên ứng dụng. Bước 2: Thông tin được tiến hành lưu trữ vào hệ quản trị cơ sở dữdữ liệu.
(thông tin được nhập bao gồm tên món ăn, công thức chế biến,hình ảnh minh họa và sửa đổi tùy ý người dùng đã đăng
Trang 13Công nghệ là yếu tố đưa các thông tin của kho dữ liệu tới với người dùng Công
Ngôn ngữ lập trình Java Android
Việc lựa chọn các công nghệ này để phát triển ứng dụng đều dựa trên tính phổ biến và thông dụng hiện nay Phần chính là server sẽ cung cấp các phương thức để truy xuất thông tin từ kho dữ liệu, phần ở điện thoại di động mang tính chất hiển thị trực quan Công nghệ sử dụng ở điện thoại di động được lựa chọn là nền tản di động Android, với bộ Android SDK Đây là một trong những nền tản công nghệ mạnh nhất trong lĩnh vực điện thoại thông minh (smartphone), bên cạnh đó các thiết bị Android đã được chuẩn hóa nên việc ảnh hướng lớn từ thay đổi công nghệ là rất nhỏ.
Vậy, khi công nghệ thay đổi thì với hệ thống ở server thì sẽ cung cấp các phương thức cần thiết đảm bảo việc viết ứng dụng trên các nên tảng công nghệ được diễn ra nhanh chóng Và sự thay đổi về mặt công nghệ sẽ không ảnh hưởng nhiều tới kho dữ liệu.
2.1.4 Phân tích khả thi
2.1.4.1 Tính khả dụng
Hệ thống hoàn toàn có thể triển khai trên thực tế Cộng đồng sử dụng điện thoại thông minh (cụ thể Android) rất đông đảo.
Nhu cầu trao đổi thông tin ngày càng lớn
Ứng dụng được cung cấp miễn phí cho mọi người dùng và hướng tới phát triển trên mọi nền tảng di động phổ biến hiện nay.
Trang 142.1.4.2 Chi phí phát triển
Điện thoại thông mình ngày nay đang phát triển các dòng điện thoại bình dân, nghĩa là chi phí cho một chiếc điện thoại hỗ trợ đầy đủ các tính năng mà chương trình yêu cầu thì hoàn toàn không đắt.
Chi phí cho Server Firebase với lượng người dùng ban đầu là thấp.
Ngoài ra, với việc thu phí cho một số tính năng nâng cao của hệ thống sau này sẽ là nguồn thu nhằm duy trì và tiếp tục phát triển hệ thống.
Từ các mô tả trên ta có các tác nhân của hệ thống như sau:
Trang 15 Người dùng trao đổi món ăn
UseCase trao đổi món ăn giữa những người dùng ứng dụng
Lập trình viên
Trang 16
2.2.1.1Yêu cầu phi chức năng
Hệ thống Web Server Tốc độ truy cập nhanh.
Đảm bảo tính bảo mật của người dùng, nếu có vị phạm thì tiến hành khóa tài khoản và thoát đăng nhập ở ứng dụng.
Một số chức năng yêu cầu đăng nhập chỉ có thể gọi được tại ứng dụng cho hệ thống cung cấp.
Ứng dụng trên điện thoại di động
Giao diện đơn giản, phù hợp với màn hình điện thoại (nhỏ) Tối ưu hóa các thao tác trên điện thoại.
Đảm bảo tính ổn định (không chết chương trình quá 5 lần/ 1 tuần).
2.2.2 Biểu đồ hoạt động
a) Đăng nhập
Biểu đồ hoạt động - Đăng nhập
Trang 17Biểu đồ tuần tự - Lấy thông tin từ Server sau khi đăng nhập thành công
2.2.3 Biểu đồ triển khai
Trang 18Biểu đồ triển khai
Trang 202.2.5 Bản triển khai công việc
Người đảm nhiệm
Bùi việt phiBùi việt phiBùi việt phiBùi việt phiBùi việt phi
Trương khánh mậuTrương khánh mậuBùi việt phi
Bùi việt phiBùi việt phi
Trương khánh mậuBùi việt phi
Bùi việt phi
Trang 24CHƯƠNG 3: XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ HÌNH ẢNH GIAO DIỆN CỦA ỨNG DỤNG
2.2.1 Cơ sở dữ liệu MY SQL DỰ ÁN 2
Bảng chi tiết đơn hàng: chứa các thông tin vế thể lại món ăn:
Trang 25 Bảng chứa danh sách hình ảnh món ăn:
Trang 26 Bảng danh sách bình luận món ăn:
Bảng danh sách người đăng ký:
Trang 27
Màn hình trang chủ(phải)và cộng đồng(trái)
Màn hình trang chủ hiện lên danh sách các thể loại món ăn sau khi click vào một thể loại sẽ hiện ra danh sách các món ăn còn màn hình cộng đồng sẽ hiện thị thẳng các món ăn được chia sẻ lên
Màn hình tab menu khi đăng nhập(phải) và chưa đăng nhập (phải)
Khi đăng nhập tài khoản vào ứng dụng , tab menu sẽ có thêm chức năng thôn tin tài khoản, đổi mật khẩu,bài viết đã đăng
Trang 28
Màn hình menu thể loại món ăn thu gọn(trái) và danh sách món ăn(phải)
Khi click vào màn hình menu thu gọn sẽ hiển thị ra màn hình chứa danh sách các món ăn trong cùng một thể loại
Màn hình chi tiêt món ăn khi tắt và bật floating button
Màn hình chi tiết món ăn khi tắt (trái) và bật (phải) Floating Action Button
Ở màn hình chi tiết các món ăn, nết ta bấm vào button dấu cộng sẽ hiện ra các button chưa các chức năng mới
Trang 29
Màn hình xem thông tin tài khoản (trái) và xem danh sách tài khoản đã đăng ký(phải) Tại màn hình xem thông tin tài khoản chúng ta có thể chỉnh sửa thông tin và xóa tài khoản nếu không muốn sử dụng nữa.
màn hình xem danh sách tài khoản đã đăng ký(chỉ có admin mới có chức năng này) dùng để hiển thị tất cả các tài khoản mà người dùng đã đăng ký
Màn hình đăng nhập và đăng ký tài khoản cá nhân
Trang 30
Màn hình quên mật khẩu (trái) và gửi về mật khẩu (phải)
ở màn hình quên mật khẩu để lấy lại mật khẩu chỉ cần nhật email và mã số bảo về khi lập tài khoản sau đó sẽ có thông báo gửi mật khẩu về cho bạn
Màn hình tìm kiếm món ăn (trái) và đổi mật khẩu(phải)
Chức năng tìm kiếm món ăn theo tên, bạn cần viết chữ hoa đầu tiên của món ăn cần tìm và tên món ăn không có dấu