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ốt thời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rấ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 Phi Trương Khánh Mậu
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Đà Nẵng, ngày … tháng … năm 2018
Giáo viên hướng dẫn
Trang 42.5 Kế hoạch thực hiện ( file excel ) 3 2.6 Dự kiên kết quả đạt được 3 CHƯƠNG 1.CƠ SỞ LÝ THUYẾT 4 1.1 HỆ ĐIỀU HÀNH ANDROID 4 1.1.1 Giới thiệu về hệ điều hành Android 4
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 7
2.1.2 Phân tích hiện trạng 7 2.1.3 Phân tích yêu cầu bài toán 8 2.1.4 Phân tích khả thi 9 2.1.5 Tác nhân hệ thống 10 2.2.2 Biểu đồ hoạt động 12 2.2.3 Biểu đồ triển khai 13 2.2.4 Ứng dụng tương đồng để phát triển ứng dụng của chúng ta 14 2.2.5 Bản triển khai công việc 15 2.2.6 Mockup cho ứng dụng 15 CHƯƠ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.2 Giao diện ứng dụng 22 CHƯƠNG 4 : HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 27
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ôngthứ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 ứngdụ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àiviế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ườidù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áckhá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ầntì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ácthiế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ảngBan đầ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àonă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ộigồ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áctiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạy Android đượcbá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épApache 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ứcnă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 10nă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 tycô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 tinhchỉ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ếtquả 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ủaAndroid 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ự ánnà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 đưaAndroid 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ộtActivity
Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiềuActivity, mỗi Activity hoạt động độc lập với nhau và thực hiện nhữngcô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ềunày cũng giống như việc di chuyển qua lại giữa các Forms trong lập trìnhWindows 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 XMLYAML… Nhưng khi JSON đi với JavaScript hoặc ActionScript thì nó có tính ưu việthơn hẳn
JSON có liên quan đến JavaScript, ActionScript Đơn giản là vì dữ liệu được địnhdạng thành chuỗi JSON chính là cách biểu diễn một đối tượng trong các ScriptingLanguage này
Khi sử dụng JSON với JavaScript hay ActionScript, không cần phải có các bướcphâ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ẦU
2.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 tyCNTT 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
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ươngthô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 độngAndroid, với bộ Android SDK Đây là một trong những nền tản công nghệ mạnhnhấ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ấtnhỏ
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
Ứ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 phi Bùi việt phi Bùi việt phi Bùi việt phi Bùi việt phi Trương khánh mậu Trương khánh mậu Bùi việt phi
Bùi việt phi Bùi việt phi Trương khánh mậu Bùi việt phi
Bùi việt phi Trương khánh mậu Bùi việt phi
Trương khánh mậu Bùi việt phi Trương khánh mậu Trương khánh mậu
2.2.6 Mockup cho ứng dụng
màn hình trang chủ(trái) và màn hình cộng đồng(phải)
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àikhoả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 ăntrong 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 buttonchư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àikhoả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