ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel. (84-511) 736 949, Fax. (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115

ĐỀ TÀI :

XÂY DỰNG HỆ THỐNG TRỢ GIÚP ẨM THỰC

TRÊN ĐIỆN THOẠI DI ĐỘNG

Mã số : 09T3 - 121

Ngày bảo vệ : 18-20/06/2014

SINH VIÊN : NGUYỄN THỦY LỘC LỚP : CBHD :

09T3 ThS. VÕ ĐỨC HOÀNG

ĐÀ NẴNG, 06/2014

LỜI CẢM ƠN

Em xin chân thành cám ơn thầy ThS. Võ Đức Hoàng đã tận tình hướng

dẫn và giúp đỡ em trong suốt quá trình thực hiện đồ án tốt nghiệp này. Em

cũng xin gởi lời cám ơn chân thành đến toàn thể quý thầy cô trường Đại học

Bách khoa Đà Nẵng, đặc biệt là các thầy cô trong khoa Công nghệ Thông

Tin trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã tận tình giảng dạy,

truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt quá trình học

tập vừa qua.

Trong suốt quá trình làm đồ án tốt nghiệp chắc chắn không tránh khỏi

những thiếu sót, em rất mong sự giúp đỡ và góp ý của quý thầy cô để em

hoàn thiện hơn đề tài của mình.

Một lần nữa, em xin chân thành cám ơn.

Đà Nẵng, ngày 30 tháng 05 năm 2014

Sinh viên,

Nguyễn Thủy Lộc – 09T3

Trang i

LỜI CAM ĐOAN

Tôi xin cam đoan :

- Những nội dung trong luận văn này là do tôi thực hiện dưới sự

hướng dẫn trực tiếp của thầy ThS. Võ Đức Hoàng.

- Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên

tác giả, tên công trình, thời gian, địa điểm công bố.

- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi

xin chịu hoàn toàn trách nhiệm.

Sinh viên,

Nguyễn Thủy Lộc – 09T3

Trang ii

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………………………………………………………………………………………….

………………………………………………………………………………………………….

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

…………………………………………………………………………………………………

………………….………………………………………………………………………………

………………….………………………………………………………………………………

………………….………………………………………………………………………………

………………….………………………………………………………………………………

………………….………………………………………………………………………………

………………….………………………………………………………………………………

Trang iii

………………….………………………………………………………………………………

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

Trang iv

………………………………………………………………………………………………

MỤC LỤC

1.3.2.1 1.3.2.2

1.3.4

1.3.3.1

1.3.4.1 1.3.4.2

1.3.7.1 1.3.7.2

MỞ ĐẦU .......................................................................................................... 1 1.1 GIỚI THIỆU .................................................................................................. 1 1.1.1 Bối cảnh đề tài ........................................................................................ 1 1.1.2 Mục đích ................................................................................................. 1 1.1.3 Ý nghĩa .................................................................................................... 2 1.2 PHẠM VI ĐỀ TÀI ......................................................................................... 2 1.3 TRIỂN KHAI ĐỀ TÀI ................................................................................... 2 1.3.1 Các bước thực hiện ................................................................................. 2 1.3.2 Mục tiêu cần đạt được ............................................................................. 3 1.4 KẾT QUẢ DỰ KIẾN ..................................................................................... 3 CHƯƠNG 1. CƠ SỞ LÝ THUYẾT ............................................................ 4 1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG .................................................. 4 1.1.1 Ios ............................................................................................................ 4 1.1.2 Android ................................................................................................... 5 1.1.3 Windowphone ......................................................................................... 5 1.1.4 BlackBerry .............................................................................................. 6 1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID .................................................. 6 1.2.1 Giới thiệu ................................................................................................ 6 1.2.2 Lịch sử phát triển .................................................................................... 7 1.2.3 Kiến trúc của hệ điều hành Android ....................................................... 8 1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID ......................................... 10 1.3.1 Công cụ hỗ trợ ...................................................................................... 10 1.3.2 Các thành phần chính trong android project ......................................... 10 Các thành phần chính trong android ..................................................... 10 AndroidManifest ..................................................................................... 10 1.3.3 Activity ................................................................................................. 11 Các phương thức trong chu kỳ sống của một activity ............................ 12 Intent ..................................................................................................... 13 Các thuộc tính của một đối tượng intent ................................................ 14 Sử dụng Intent ......................................................................................... 14 1.3.5 Adapter trong andoid ............................................................................ 15 1.3.6 Lưu trữ dữ liệu trong android ............................................................... 15 1.3.7 Giao diện trong android ........................................................................ 15 View ........................................................................................................ 15 ViewGroup .............................................................................................. 16 1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE ................................................. 19 1.4.1 Giới thiệu .............................................................................................. 19 1.4.2 Đặc điểm ............................................................................................... 19 Phiên bản ............................................................................................... 20 1.4.3 1.5 WEB SERVICE ............................................................................................... 20 1.5.1 Giới thiệu .............................................................................................. 20

Trang v

1.6.2

1.5.2.1 1.5.2.2

1.7

1.6.2.1 1.6.2.2 1.6.2.3

2.1.3

2.1.2.1 2.1.2.2

2.2.1

2.1.3.1 2.1.3.2

2.2.2

2.2.1.1 2.2.1.2 2.2.1.3 2.2.1.4 2.2.1.5

1.5.2 Đặc điểm webservice ............................................................................ 20 Ưu điểm .................................................................................................. 21 Nhược điểm ............................................................................................. 22 1.6 RESTFUL WEB SERVICE ......................................................................... 22 1.6.1 Khái niệm .............................................................................................. 22 REST ....................................................................................................... 22 1.6.1.1 Kiến trúc ................................................................................................. 22 1.6.1.2 RESTFul Web Service ............................................................................. 23 1.6.1.3 1.6.1.4 Cơ chế hoạt động .................................................................................... 23 1.6.1.5 Một số thành phần của RESTful Web Service ........................................ 24 Json và Gson ......................................................................................... 25 Sơ lược về json ........................................................................................ 25 So sánh với XML..................................................................................... 25 Sơ lược về Gson ...................................................................................... 27 JSP VÀ SERVLET ...................................................................................... 28 JSP ........................................................................................................ 28 1.7.1 SERVLET ............................................................................................. 28 1.7.2 1.7.3 MÔ HÌNH MVC TRONG JAVA WEB JSP SERVLET ..................... 29 1.7.3.1 Khái niệm cơ bản về mô hình MVC ........................................................ 29 1.7.3.2 Mô hình MVC trong ứng dụng web với JSP Servlet ............................... 29 CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG....................... 30 2.1 PHÂN TÍCH YÊU CẦU .............................................................................. 30 2.1.1 Mô tả bài toán ....................................................................................... 30 Phân tích hiện trạng ẩm thực Việt Nam ................................................ 31 2.1.2 Giới thiệu sơ lược về ẩm thực Việt Nam ................................................ 31 Đặc điểm ................................................................................................. 31 Phân tích yêu cầu bài toán .................................................................... 32 Yêu cầu chức năng .................................................................................. 32 Yêu cầu phi chức năng ........................................................................... 33 Phân tích tính khả thi ............................................................................ 33 2.1.4 2.1.5 Công nghệ ............................................................................................. 33 2.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG .................................................. 34 Phân tích và thiết kế ứng dụng di động Android ................................. 34 Usecase ................................................................................................... 34 Biểu đồ hoạt động ................................................................................... 42 Biểu đồ tuần tự ....................................................................................... 49 Biểu đồ lớp .............................................................................................. 54 Thiết kế cơ sở dữ liệu .............................................................................. 54 Phân tích và thiết kế Web Server .......................................................... 58 2.2.2.1 Web admin .............................................................................................. 58 Sơ đồ lớp ................................................................................................. 65 2.2.2.2 Thiết kế cơ sở dữ liệu .............................................................................. 65 2.2.2.3 CHƯƠNG 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ ....................... 67 3.1 KẾT QUẢ .................................................................................................... 67 3.1.1 Kết quả triển khai Web Service ............................................................ 67

Trang vi

3.2.1.1 3.2.1.2

3.2.2.1 3.2.2.2

3.1.2 Kết quả triển khai Web Admin ............................................................. 67 3.1.3 Kết quả triển khai ứng dụng trên di động ............................................. 78 3.2 ĐÁNH GIÁ .................................................................................................. 85 3.2.1 Bảng đánh giá kết quả thực hiện ........................................................... 85 Ứng dụng trên điện thoại di động .......................................................... 85 Hệ thống Server ...................................................................................... 85 3.2.2 Những điều đạt được............................................................................. 85 Hệ thống Web server .............................................................................. 86 Ứng dụng trên điện thoại di động .......................................................... 86 3.2.3 Những điều chưa đạt được .................................................................... 86 3.3 HƯỚNG PHÁT TRIỂN ............................................................................... 86 TÀI LIỆU THAM KHẢO ............................................................................ 87 TÓM TẮT LUẬN VĂN TỐT NGHIỆP ...................................................... 88 PHỤ LỤC ......................................................................................................... 1

Trang vii

DANH SÁCH HÌNH VẼ

Hình 1: Giới thiệu mobile ..................................................................................................... 4 Hình 2: Giới thiệu android .................................................................................................... 6 Hình 3: Kiến trúc hệ điều hành android ................................................................................ 8 Hình 4: Sơ đồ hoạt động activity trong android ................................................................. 11 Hình 5: Sơ đồ Intent ............................................................................................................ 13 Hình 6: Sơ đồ giao diện trong android................................................................................ 16 Hình 7: Framelayout android .............................................................................................. 17 Hình 8: Relativelayout android ........................................................................................... 18 Hình 9; Tablelayout android ............................................................................................... 18 Hình 10: Quản trị SQLite .................................................................................................... 19 Hình 11: Kiến trúc REST .................................................................................................... 22 Hình 12: Cơ chế hoạt động của REST ................................................................................ 23 Hình 13: Use case của ứng dụng android ........................................................................... 34 Hình 14: Biểu đồ hoạt động xem văn hóa ẩm thực............................................................. 42 Hình 15: Biểu đồ hoạt động cập nhật dữ liệu ..................................................................... 42 Hình 16: Biểu đồ hoạt động tìm kiếm món ăn .................................................................... 43 Hình 17: Biểu đồ hoạt động gửip hản hồi cho từng món ăn ............................................... 43 Hình 18: Biểu đồ hoạt động tạo ghi chú cho từng món ăn ................................................. 44 Hình 19: Biểu đồ hoạt động chỉnh sửa ghi chú cho từng món ăn ....................................... 44 Hình 20: Biểu đồ hoạt động chia sẻ món ăn trên facebook ................................................ 45 Hình 21: Biểu đồ hoạt động xem danh sách món ăn .......................................................... 45 Hình 22: Biểu đồ hoạt động thêm món ăn yêu thích .......................................................... 46 Hình 23: Biểu đồ hoạt động xóa món ăn yêu thích ............................................................ 46 Hình 24: Biểu đồ hoạt động chỉnh sửa hẹn giờ .................................................................. 47 Hình 25: Biểu đồ hoạt động đặt giờ .................................................................................... 47 Hình 26: Biểu đồ hoạt động xóa hẹn giờ ............................................................................ 48 Hình 27: Biểu đồ hoạt động gửi phản hồi cho ứng dụng .................................................... 48 Hình 28: Biểu đồ tuần tự xem văn hóa ẩm thực ................................................................. 49 Hình 29: Biểu đồ tuần tự cập nhật dữ liệu .......................................................................... 49 Hình 30: Biểu đồ tuần tự tìm kiếm món ăn ........................................................................ 49 Hình 31: Biểu đồ tuần tự xem danh sách món ăn ............................................................... 50 Hình 32: Biểu đồ tuần tự gửi phản hồi cho từng món ăn.................................................... 50 Hình 33: Biểu đồ tuần tự tạo ghi chú cho từng món ăn ...................................................... 50 Hình 34: Biểu đồ tuần tự chỉnh sửa chi chú cho từng món ăn ............................................ 51 Hình 35: Biểu đồ tuần tự chia sẻ món ăn trên facebook ..................................................... 51 Hình 36: Biểu đồ tuần tự thêm món ăn yêu thích ............................................................... 51 Hình 37: Biểu đồ tuần tự xem món ăn yêu thích ................................................................ 52 Hình 38: Biểu đồ tuần tự chỉnh sửa hẹn giờ ....................................................................... 52 Hình 39: Biểu đồ tuần tự thêm hẹn giờ ............................................................................... 52 Hình 40: Biểu đồ tuần tự xóa hẹn giờ ................................................................................. 53 Hình 41: Biểu đồ tuần tự gửi phản hồi cho ứng dụng ........................................................ 53 Hình 42: Biểu đồ lớp ........................................................................................................... 54 Hình 43: Biểu đồ lớp chi tiết............................................................................................... 54 Hình 44: Quan hệ giữa các bảng trong cơ sở dữ liệu .......................................................... 55 Hình 45: Sơ đồ usecase web admin .................................................................................... 58

Trang viii

Trang ix

Hình 46: Biểu đồ hoạt động đăng nhập .............................................................................. 61 Hình 47: Biểu đồ hoạt động xem dữ liệu ........................................................................... 61 Hình 48: Biểu đồ hoạt động thêm dữ liệu .......................................................................... 62 Hình 49: Biểu đồ hoạt động sửa dữ liệu ............................................................................ 62 Hình 50: Biểu đồ hoạt động xóa dữ liệu ............................................................................. 63 Hình 51: Biểu đồ tuần tự đăng nhập ................................................................................... 63 Hình 52: Biểu đồ tuần tự xem dữ liệu ................................................................................. 63 Hình 53: Biểu đồ tuần tự thêm dữ liệu ............................................................................... 64 Hình 54: Biểu đồ tuần tự xóa dữ liệu .................................................................................. 64 Hình 55: Biểu đồ tuần tự sửa dữ liệu ................................................................................. 64 Hình 56: Sơ đồ lớp web admin ........................................................................................... 65 Hình 57: Sơ đồ lớp chi tiết web admin ............................................................................... 65 Hình 58: Dữ liệu Json trả về từ Web Service ..................................................................... 67 Hình 59: Đăng nhập ............................................................................................................ 67 Hình 60: Quản lý món ăn .................................................................................................... 68 Hình 61: Thêm món ăn ....................................................................................................... 68 Hình 62: Xem, sửa món ăn ................................................................................................. 69 Hình 63: Xóa món ăn .......................................................................................................... 69 Hình 64: Quản lý loại món ăn ............................................................................................. 70 Hình 65: Thêm mới loại món ăn ......................................................................................... 70 Hình 66: Xem và sửa loại món ăn ...................................................................................... 71 Hình 67: Xóa loại món ăn ................................................................................................... 71 Hình 68: Quản lý vùng ........................................................................................................ 72 Hình 69: Thêm mới vùng .................................................................................................... 72 Hình 70: Xem và sửa vùng ................................................................................................. 73 Hình 71: Quản lý xuất xứ.................................................................................................... 73 Hình 72: Thêm mới xuất xứ ................................................................................................ 74 Hình 73: Xem và sửa xuất xứ ............................................................................................. 74 Hình 74: Xóa xuất xứ .......................................................................................................... 75 Hình 75: Quản lý nguyên liệu ............................................................................................. 75 Hình 76: Thêm mới nguyên liệu ......................................................................................... 76 Hình 77: Xem và sửa nguyên liệu....................................................................................... 76 Hình 78: Xóa nguyên liệu ................................................................................................... 77 Hình 79: Quản lý bình luận ................................................................................................. 77 Hình 80: Màn hình main ..................................................................................................... 78 Hình 81: Màn hình văn hóa ẩm thực .................................................................................. 78 Hình 82: Màn hình dialog chọn vùng ................................................................................. 79 Hình 83: Màn hình dialog chọn xuất xứ ............................................................................. 79 Hình 84: Màn hình danh sách món ăn ................................................................................ 80 Hình 85: Màn hình chi tiết món ăn ..................................................................................... 80 Hình 86: Màn hình chi tiết công thức món ăn .................................................................... 81 Hình 87: Màn hình ghi chú món ăn .................................................................................... 81 Hình 88: Màn hình bình luận món ăn ................................................................................. 82 Hình 89: Màn hình hẹn giờ nấu ăn ..................................................................................... 82 Hình 90: Màn hình danh sách yêu thích ............................................................................. 83 Hình 91: Màn hình danh sách hẹn giờ ................................................................................ 83

DANH SÁCH BẢNG BIỂU

Bảng 1: Các thuộc tính của đối tượng intent ...................................................................... 14 Bảng 2: Các hàm thực thi Activity ..................................................................................... 14 Bảng 3: Các method của HTTP được hỗ trợ....................................................................... 24 Bảng 4: Đối tượng Json ...................................................................................................... 26 Bảng 5: Mảng Json ............................................................................................................. 26 Bảng 6: Ví dụ sử dụng Gson ............................................................................................... 27 Bảng 7: Mô tả usecase xem văn hóa ẩm thực ..................................................................... 34 Bảng 8: Mô tả usecase cập nhật dữ liệu .............................................................................. 35 Bảng 9: Mô tả usecase tìm kiếm món ăn ............................................................................ 35 Bảng 10: Mô tả usecase xem chi tiết món ăn ..................................................................... 36 Bảng 11: Mô tả usecase gửi phản hồi cho từng món ăn ..................................................... 36 Bảng 12: Mô tả usecase tạo ghi chú cho món ăn ................................................................ 37 Bảng 13: Mô tả usecase chỉnh sửa ghi chú món ăn ............................................................ 37 Bảng 14: Mô tả usecase chia sẻ món ăn trên facebook ...................................................... 38 Bảng 15: Mô tả usecase xem danh sách món ăn ................................................................. 38 Bảng 16: Mô tả usecase thêm món ăn yêu thích ................................................................. 39 Bảng 17: Mô tả usecase xóa món ăn yêu thích ................................................................... 39 Bảng 18: Mô tả usecase chỉnh sửa hẹn giờ ......................................................................... 40 Bảng 19: Mô tả usecase xóa hẹn giờ .................................................................................. 40 Bảng 20: Mô tả usecase đặt giờ .......................................................................................... 41 Bảng 21: Mô tả usecase gửi phản hồi cho ứng dụng .......................................................... 41 Bảng 22: Bảng định mức .................................................................................................... 55 Bảng 23: Loại món ăn ......................................................................................................... 56 Bảng 24: Bảng Vùng ........................................................................................................... 56 Bảng 25: Xuất xứ ................................................................................................................ 56 Bảng 26: Nguyên liệu ......................................................................................................... 56 Bảng 27: Món ăn ................................................................................................................. 57 Bảng 28: Món ăn Nguyên liệu ............................................................................................ 57 Bảng 29: Hẹn giờ ................................................................................................................ 57 Bảng 30: Mô tả usecase đăng nhập ..................................................................................... 58 Bảng 31: Mô tả usecase thêm dữ liệu ................................................................................. 59 Bảng 32: Mô tả usecase sửa dữ liệu .................................................................................... 59 Bảng 33: Mô tả usecase xóa dữ liệu ................................................................................... 60 Bảng 34: Mô tả usecase xem dữ liệu .................................................................................. 60 Bảng 35: user ...................................................................................................................... 66 Bảng 36: RateAndBinhLuan ............................................................................................... 66 Bảng 37: Bảng đánh giá kết quả thục hiện trên điện thoại di động .................................... 85 Bảng 38: Bảng đánh giá kết quả thực hiện trên hệ thống server ........................................ 85

Trang x

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

MỞ ĐẦU

1.1 GIỚI THIỆU

1.1.1 Bối cảnh đề tài

Trong bối cảnh xã hội ngày càng phát triển, chất lượng cuộc sống của con người ngày càng được cải thiện, đi liền với đó là vấn để ăn uống ngày càng được nâng cao, từ chỗ đủ cái ăn, chúng ta hướng đến là làm thế nào để có thể có món ăn ngon, bổ dưỡng. Tất bật với cuộc sống mưu sinh, với nhịp sống nhộn nhịp của xã hội, quỹ thời gian của chúng ta ngày càng eo hẹp đi. Thật khó để có thể dành được một lượng thời gian lân la các quán sách tìm hiểu về các món ăn, hay lang thang Internet tìm hiểu về các chương trình dạy nấu ăn. Từ đó nảy sinh vấn đề làm thế nào để có được một công cụ như một cuốn sổ tay mini chỉ dẫn về nấu ăn, về nghệ thuật ẩm thực có thể mang theo mọi lúc, tiện lợi giúp chúng ta có thể tự mình nấu những món ăn ngon cho chính mình, cho bạn bè, người thân hay gia đình thưởng thức sau những giờ làm việc hút thể lực và chất xám.

Đi kèm với đó, sự phát triển của khoa học công nghệ ngày càng nhanh chóng. Điện thoại di động không còn đơn thuần là thiết bị liên lạc, mà trở thành một công cụ giải trí đa phương tiện và một vật không thể thiếu của mọi người. Chính sự phát triển và phổ biến mạnh mẽ của di động nên ngày càng có nhiều ứng dụng cho di động được phát triển. Chính vì những ưu thế trên của điện thoại thông minh, ý tưởng kết hợp sổ tay nấu ăn truyền thống và điện thoại thông minh được nghĩ đến. Một ứng dụng trên điện thoại thông minh có chức năng như một cuốn sổ tay mini hướng dẫn về ẩm thực, gọn nhẹ và dễ mang theo gần như mọi lúc mọi nơi giúp mọi người có thể dễ dàng chế biến các món ăn ngon, đa dạng mà không phải mất nhiều công sức, thì giờ tìm hiểu.

Vì những lý do đó tôi quyết định đưa ra ý tưởng làm một cuốn sổ tay mini giới

thiệu về ẩm thực Việt Nam trên thiết bị di động để nghiên cứu và triển khai.

1.1.2 Mục đích

Tạo ra một ứng dụng giống như một cuốn sổ tay mini về ẩm thực trên điện thoại di động, một ứng dụng tiện lợi, nhỏ gọn có thể bỏ túi mang theo, có thể đem ra dùng trong nhiều trường hợp. Giúp bạn có thể chế biến được những món ăn ngon khi cần thiết hoặc nâng cao trình độ nấu ăn, hiểu biết về văn hóa ẩm thực mà không cần phải bỏ ra nhiều công sức tìm kiếm bên đống sách vở dạy nấu ăn hay những chương trình dạy nấu ăn vốn tiêu tốn rất nhiều thời gian quý báu.

Ứng dụng sẽ cung cấp cho người dùng các thông tin về văn hóa ẩm thực các vùng miền, cách chế biến các món ăn hay là nguồn gốc, lịch sử ra đời của các món ăn cùng nhiều tính năng hữu ích khác.

Trang 1

Xây dựng một website quản lý dữ liệu về thông tin ẩm thực và một webservice

cung cấp thông tin về ẩm thực cho ứng dụng di động.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.1.3 Ý nghĩa

- Cung cấp một ứng dụng hữu ích hỗ trợ người dùng về vấn đề ẩm thực, tiết

kiệm thời gian, công sức và chi phí mà vẫn có thể dễ dàng chế biến được những

món ăn ngon như ý.

- Tạo được một website quản lý thông tin dữ liệu ẩm thực và một webservice

cung cấp dữ liệu về ẩm thực.

- Thông qua quá trình xây dựng ứng dụng, em có thể tổng hợp lại những kiến

thức mà mình đã được tích lũy trong thời gian học tập tại trường.

- Tích lũy thêm được nhiều kinh nghiệm thực tế, học thêm được nhiều công

nghệ mới.

1.2 PHẠM VI ĐỀ TÀI

Ứng dụng di động được xây dựng dựa trên nền tảng hệ điều hành di động Android. Ứng dụng có thể cập nhật sữ liệu từ webservice và lưu về bộ nhớ cục bộ trên thiết bị.

Kho dữ liệu ẩm thực được xây dựng và phát triển trên mạng Internet, cung cấp web service và các phương thức để sử dụng và khai thác dữ liệu từ kho dữ liệu ẩm thực.

1.3 TRIỂN KHAI ĐỀ TÀI

1.3.1 Các bước thực hiện

- Đọc hiểu đề tài, tìm kiếm các tài liệu liên quan.

- Phân tích yêu cầu.

- Phân tích và thiết kế hệ thống.

- Xây dựng cơ sở dữ liệu

- Xây dựng Web admin quản lý cơ sỡ dữ liệu

- Xây dựng Web service cung cấp dữ liệu

- Xây dựng ứng dụng trên thiết bị di động Android

- Triển khai hoạt động cho kho dữ liệu và ứng dụng, đồng thời tiến hành kiểm

thử đảm bảo chất lượng sản phẩm.

- Viết báo cáo tổng kết đề tài và đề ra hướng phát triển.

Trang 2

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3.2 Mục tiêu cần đạt được

- Xây dựng thành công Web admin và Web service cho kho dữ liệu ẩm thực.

- Xây dựng thành công ứng dụng trên điện thoại di động Android.

- Triển khai ứng dụng, phối hợp trao đổi dữ liệu giữa ứng dụng di động và ứng

dụng web thành công.

1.4 KẾT QUẢ DỰ KIẾN

Với mục đích đề ra thì kết quả cần đạt được trong đề tài luận văn tốt nghiệp này: - Tìm hiểu nền tảng di động Android. - Tìm hiểu Web service. - Phân tích yêu cầu người dùng và thiết kế hệ thống. - Xây dựng và triển khai hệ thống trong thực tế.

Trang 3

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

CHƯƠNG 1.

CƠ SỞ LÝ THUYẾT

1.1 GIỚI THIỆU CÁC NỀN TẢNG DI ĐỘNG

Ngày này, thị trường di động đang phát triển mạnh mẽ chưa từng thấy với vô vàn các nhãn hiệu, kiểu dáng, tính năng...Đã biến chiếc điện thoại thành một thiết bị giải trí đa phương tiện không thể thiếu. Với lợi thế nhỏ gọn, được mọi người sử dụng đem theo mọi lúc mọi nơi, nhưng cũng vì nhỏ gọn như vậy cũng là một bất lợi về xử lý và tốc độ. Để đảm bảo một chiếc điện thoại thông minh hoạt động tốt thì nó cần có một hệ điều hành quản lý thiết bị.

Hình 1: Giới thiệu mobile

Đi kèm với sự phát triển phần cứng trên thiết bị động thì cuộc chiến của các nhà phát triển các hệ điều hành trên điện thoại di động cũng diễn ra hết sức khốc liệt. Hiện nay, các nền tảng di động lớn được biết đến như sau

1.1.1 Ios

Nền tảng di động iOS với điện thoại di động thông minh iPhone, với thiết kế đẹp, thời trang, cảm ứng mượt mà, màn hình đẹp và sắc nét cùng với tài năng của "thánh" Steve Jobs đã khiến cho iPhone trở thành hiện tượng trên mọi thị trường, đặc biệt là ở Mỹ. Doanh số bán ra của iPhone tăng dần qua các năm, và dần dần thống lĩnh thị trường của nhiều nước. iPhone dù mỗi năm chỉ ra một phiên bản mới nhưng sức nóng đủ lan tỏa khắp làng di động, do đó, iOS vẫn chưa bao giờ "già".

iOS là hệ điều hành "đóng" hoạt động trên iPhone, iPad, iPod. iOS đã quyết định rất nhiều đối với sự thành công của Apple, với giao diện bóng bẩy, đẹp mắt, và dễ sử dụng. Tất cả chỉ là chạm và vuốt để thực thi. Cùng với chính sách hợp lý để thu hút các lập trình viên viết ứng dụng, kho ứng dụng Appstore ngày càng lớn khiến cho người dùng càng thêm thích thú, mọi nhu cầu của từng người đều có thể được đáp ứng. Cũng như việc Apple cũng tung ra cập nhật, vá các lỗi liên tục khi phát hiện, khiến cho iOS ngày càng trở nên "thông minh" hơn, an toàn hơn.

Nhưng nếu gọi iOS là thống trị năm 2012 thì điều đó cũng là chưa thể. Vì iOS chỉ được cài giới hạn trên thiết bị của Apple gồm những thiết bị như iPhone, iPad, iPod... Thị phần của thiết bị Apple trên thế giới nói chung là không lớn, số liệu các bạn thấy trên các báo đa số chỉ thống kê tại Mỹ, nhưng đã gọi là thống trị thì phải là thống trị trên thị trường di động toàn thế giới.

Trang 4

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.1.2 Android

Mặc dù sinh sau đẻ muộn, nhưng Android đang có những bước tiến thần tốc, trong thời gian ngắn đã đạt được nhiều điều khiến mọi hệ điều hành di động mơ ước: khoảng 700.000 điện thoại Android được kích hoạt mỗi ngày.

Khi mà iOS ngày càng bành trướng mà Symbian lại không đủ sức để cạnh tranh. Các lập trình viên, các nhà sản xuất điện thoại chú ý đến Android. Hệ điều hành di động mở được Google phát triển dựa trên nền tảng Linux.

Android ngày càng lớn mạnh về số lượng và chất lượng bởi sự linh hoạt từ nền tảng Google, phù hợp với cả smartphone tầm thấp lẫn giá cao. Hàng loạt các nhà sản xuất điện thoại di động sử dụng Android làm hệ điều hành chính cho các sản phẩm của mình. Như HTC, Samsung, LG, Motorola, Sony Ericsson... Từ điện thoại, cho đến máy tính bảng của các hãng này đều dùng hệ điều hành Android. Các nhà lập trình viết ứng dụng ngày càng nhiều trên Android Market. Kho ứng dụng đang cạnh tranh trực tiếp với AppStore của Apple. Chính vì điều này mà đã khiến Android ngày càng bành trướng trên thị trường khắp các châu lục, và dần dần Android sẽ là hệ điều hành thống trị.

Nhưng các bạn có thể thấy, dường như Android đang ở trên đỉnh cao của mình. Chính vì có quá nhiều thiết bị, mỗi thiết bị có cấu hình riêng, nhà sản xuất tùy biến riêng và việc có quá nhiều ứng dụng, nhưng lại không theo một chuẩn cụ thể nào. Khiến Android ngày càng bị phân mảnh và rời rạc.

Android được cập nhật quá thường xuyên, dẫn đến tình trạng trên thị trường có nhiều phiên bản cùng tồn tại, được phát hành song song với nhau. Google đang dần muốn kiểm soát và hạn chế sự phân mảnh, nhưng đồng thời cũng làm mất dần tính "mở" vốn là triết lý cơ bản của Android.

1.1.3 Windowphone

Windows Phone là hệ điều hành của Microsoft dành cho smartphone kế tục nền tảng Windows Mobile, mặc dù chúng không tương thích với nhau. Khác với Windows Mobile, Windows Phone tập trung vào sự phát triển của Marketplace - nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng. Windows Phone được bán vào tháng 10 năm 2010 và đầu năm 2011 tại Châu Á.

Phiên bản mới nhất hiện tại là Windows Phone 8.1 (Tên mã Blue) tiếp nối Windows Phone 8 (Apollo), hiện vẫn ở phiên bản thử nghiệm cho nhà phát triển (Preview for Developers). Với Windows Phone, Microsoft đã phát triển giao diện người dùng mới mang tên Modern (trước đây tên là Metro) - tích hợp khả năng liên kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng.

Trang 5

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.1.4 BlackBerry

Là dòng máy Smartphone cao cấp và nổi tiếng trên thế giới do hãng Research In Motion cung cấp. Ngoài những tính năng thông thường, điểm tạo nên sự khác biệt của máy BlackBerry là kiểu thiết kế rất đặc trưng; pin tốt và hơn cả là dịch vụ Push Mail nổi tiếng và thương hiệu BlackBerry được xây dựng rất thành công.

BlackBery OS 6 được RIM công bố tại sự kiện Wireless Enterprise Symposium (diễn ra từ 27 đến 29/4 tại Mỹ). RIM chưa đưa ra chi tiết về hệ điều hành mới, ngoài một đoạn video quảng cáo khá ấn tượng. Theo những thông tin đầu tiên, nhiều cải tiến từ giao diện, màn hình Home mới, menu pop-up, khả năng chuyển dịch, trình duyệt web mới dựa trên nền tảng WebKit tương thích HTML5. Ngoài ra, BlackBerry OS 6 hỗ trợ khả năng điều khiển trên màn hình cảm ứng đa điểm tốt hơn.

1.2 GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID

1.2.1 Giới thiệu

Hình 2: Giới thiệu android

Android là hệ điều hành trên điện thoại di động phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005). Theo nghiên cứu của công ty nghiên cứu thị trường NPD (National Purchase Diary), thiết bị di động sử dụng hệ điều hành android bán được tại Mỹ trong quý I năm 2012 xếp vị trí đầu tiên với 51%, thứ 2 là iOS ở vị trí với 30.7%. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển cực kì rộng lớn. Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai. Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache.

Trang 6

Android được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng di động hấp dẫn tận dụng tất cả chức năng một chiếc điện thoại đã cung cấp. Nó được xây dựng để thực sự mở. Ví dụ, một ứng dụng có thể kêu gọi bất kỳ chức năng lõi của điện thoại như thực hiện cuộc gọi, gửi tin nhắn văn bản hoặc bằng cách sử dụng máy ảnh, cho phép các nhà phát triển tạo ra nhiều phong cách khác nhau.

Android được xây dựng trên hệ điều hành mở Linux. Vì thế, nền tảng Android

luôn được cộng đồng quan tâm và phát triển liên tục.

Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng dụng của bên thứ ba. Tất cả các ứng dụng đều có thể giao tiếp được với nhau, và sử dụng một cách tối đa nhờ vào khả năng của nhà phát triển

Android đang dần phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo. Ví dụ, một nhà phát triển có thể kết hợp thông tin từ các trang web với dữ liệu trên điện thoại di động của cá nhân, hoặc chỉ ra địa chỉ hiện tại của một người nào đó khi họ nằm trong một phạm vi cố định…

Android cung cấp một loạt các thư viện công cụ hữu ích và có thể được sử dụng

xây dựng các ứng dụng phong phú.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.2.2 Lịch sử phát triển

- Tháng 10-2003: Android, inc được thành lập tại Palo Alto, California bởi

Andy Rubin, Rich Miners, Nick Sears và Chris White.

- Tháng 8-2005: Google mua lại Android inc.

- Tháng 11-2007: Phát hành Android beta SDK (Software Development Kit).

- Tháng 9-2008: Chiếc điện thoại chạy trên hệ điều hành Android lần đầu tiên

được giới thiệu, chiếc HTC Dream(G1) chạy Android 1.0.

- Tháng 2-2009: Phát hành bản cập nhật Android 1.1 dành riêng cho T-Mobile

G1.

- Tháng 4-2009: Phát hành bản cập nhật Android 1.5(Cupcake) dựa trên nhân

linux 2.6.27.

- Tháng 9-2009: Phát hành bộ SDK dành cho Android 1.6 (Donut) dựa trên nhân

Linux 2.6.29.

- Tháng 10-2009: Phát hành bộ SDK dành cho Android 2.0(Eclair) dựa trên

nhân Linux 2.6.29.

- Tháng 12-2009: Phát hành bộ SDK 2.0.1.

- Tháng 1-2010: Phát hành bộ SDK 2.1.

- Tháng 5-2010: Phát hành bộ SDK Android 2.2 (Froyo).

Trang 7

- Tháng 12-2010: Phát hành bộ SDK Android 2.3 (Gingerbread).

- Tháng 2-2011: Phát hành Android 2.3.3 dựa trên nhân Linux 2.6.35.

- Tháng 2-2011: Phát hành SDK Android 3.0 dành cho tablet được phát hành

dựa trên nhân linux 2.6.36.

- Tháng 5-2011: Phát hành bộ SDK Android 3.1.

- Tháng 7-2011: Phát hành bộ SDK Android 3.2.

- Tháng 12-2011: Phát hành bộ SDK Android 4.0 (Ice Cream Sandwich) .

- Tháng 7-2012: Phát hành bộ SDK Android 4.1 (Jelly Bean).

- Tháng 12-2012: Phát hành bộ SDK Android 4.2 (Vẫn là Jelly Bean)

- Tháng 6-2013: Phát hành bộ SDK Android 4.3 (Vẫn là Jelly Bean)

- Tháng 10-2013: Phát hành bộ SDK Android 4.4 (KitKat)

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.2.3 Kiến trúc của hệ điều hành Android

Hình 3: Kiến trúc hệ điều hành android

Có 5 tầng cơ bản trong hệ điều hành Android: Application, Framework, Android Runtime, Native Libraries, Linux Kernel. Mỗi tầng làm việc đều nhờ sự giúp đỡ của tầng dưới.

Trang 8

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Tầng Application: bao gồm tất cả các ứng dụng có trong thiết bị chạy Android như: phone, contact, game, browser,… và một số ứng dụng chạy ngầm.Người dùng có quyền gỡ bỏ hay cài đặt các ứng dụng tùy thích ở tầng này. Tất cả các ứng dụng được viết bằng cách sử dụng ngôn ngữ lập trình Java.

Tầng Application Framework: tầng Google xây dựng cho các nhà phát triển xây dựng ứng dụng của họ trên Android,bằng cách gọi các API có sẵn mà Google đã viết để sử dụng các tính năng của phần cứng mà không cần hiểu cấu trúc bên dưới.

Tầng Native Libraries: Android bao gồm một bộ thư viện C/C++, được sử dụng bởi các thành phần khác nhau của hệ thống Android. Những khả năng tiếp xúc với các nhà phát triển thông qua các khuôn khổ ứng dụng Android. Một số các thư viện lõi được liệt kê dưới đây:

System C library: thực hiện các hệ thống thư viện chuẩn C (LIBC – Library C),

điều chỉnh cho nhúng dựa trên Linux các thiết bị

Media Libraries: dựa trên OpenCORE PacketVideo's; sự hỗ trợ các thư viện phát lại và ghi âm của âm thanh và phổ biến nhiều định dạng video, cũng như các tập tin hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG

Surface Manager: quản lý quyền truy cập vào hệ thống con hiển thị và hoàn toàn

phù hợp chất 2D và 3D lớp từ nhiều ứng dụng đồ họa

LibWebCore: một trình duyệt web hiện đại, động cơ có quyền hạn cả hai trình

duyệt web của Android và một xem nhúng

SGL: các công cụ đồ họa 2D tiềm ẩn

3D libraries:một việc thực hiện dựa trên OpenGL ES 1,0 API; các thư viện, hoặc sử dụng phần cứng tăng tốc 3D (nếu có) hoặc bao gồm, cao tối ưu rasterizer phần mềm 3D

SQLite: một quan hệ cơ sở dữ liệu mạnh mẽ và nhẹ có sẵn cho tất cả các ứng dụng

Tầng Runtime: Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầu hết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java. Tất cả các ứng dụng Android đều chạy trong tiến trình riêng. Máy ảo Dalvik đã được viết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả. Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex). Định dạng được tối ưu hóa cho bộ nhớ tối thiểu. VM là dựa trên register-based, và chạy các lớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như luồng và quản lý bộ nhớ thấp.

Tầng Linux Kernel: đây là nhân của hệ điều hành Android, mọi xử lý hệ thống đều phải thông qua tầng này. Linux Kernel cung cấp các trình điều khiển thiết bị phần cứng như: camera, USB, bluetooth… Kernel hoạt động như một lớp trừu tượng giữa phần cứng và phần mềm còn lại của hệ thống.

Trang 9

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3 LẬP TRÌNH ỨNG DỤNG TRONG ANDROID

1.3.1 Công cụ hỗ trợ

- Bộ Android SDK của Google

- Bộ JDK 5 trở lên

- IDE: eclipse hoặc netBean…

1.3.2 Các thành phần chính trong android project

1.3.2.1 Các thành phần chính trong android

Một ứng dụng android được xây dựng từ các thành phần cơ bản sau:

- Activity: hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi

động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển

thị màn hình giao diện của ứng dụng cho phép người dùng tương tác.

- Service: thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu,

đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy.

- Content Provider: kho dữ liệu chia sẻ. Content Provider được sử dụng để

quản lý và chia sẻ dữ liệu giữa các ứng dụng.

- Intent: nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các

thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong

muốn.

- Broadcast Receiver: thành phần thu nhận các Intent bên ngoài gửi tới.

- Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng

hoạt động.

Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest

1.3.2.2 AndroidManifest

Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, các permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản SDK cũng như main activity sẽ chạy đầu tiên. File này được tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ cũng có 3 thành phần chính đó là: application, permission và version.

Trang 10

- Application: bên trong thẻ này chứa các thuộc tính được định nghĩa cho ứng

dụng Android như:

android:icon = “drawable resource” : Ở đây đặt đường dẫn đến file icon của ứng

dụng khi cài đặt.

android:name = “string” : thuộc tính này để đặt tên cho ứng dụng Android.

Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.

android:theme = “drawable theme” : thuộc tính này để đặt theme cho ứng dụng.

Các theme là các cách để hiển thị giao diện ứng dụng.

Ngoài ra còn nhiều thuộc tính khác…

- Permission: Bao gồm các thuộc tính chỉ định quyền truy xuất và sử

dụng tài nguyên của ứng dụng. Đây là cơ chế bảo mật của android, mặc định ứng

dụng android không được cấp quyền nào, để cấp quyền cho ứng dụng ta sử dụng

thuộc

tính , định dạng như

sau:

android:name="string" />. Trong đó: android:name dùng xác định tên quyền hạn.

- SDK version: chỉ ra phiên bản SDK nhỏ nhất và chuẩn nhất mà ứng dụng hiện

đang sử dụng.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3.3 Activity

Actitvity là thành phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng

dụng Android.

Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng.

Hình 4: Sơ đồ hoạt động activity trong android

Trang 11

Các trạng thái trong Activity:

- Running: Activity đang hiển thị trên màn hình (foreground).

- Paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus)

- Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái

stop.

- Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó.

Vòng đời của một activity bao gồm 3 vòng chính:

- Entire lifetime: từ phương thức onCreate() đến onDestroy().

- Visible lifetime: từ phương thức onStart() đến onStop().

- Foreground lifetime: từ phương thức onResume() đến onPause().

1.3.3.1 Các phương thức trong chu kỳ sống của một activity

- onCreate()

Được gọi khi activity lần đầu tiên được tạo

Đây là nơi ta nên thực hiện khởi tạo tĩnh thông thường — tạo giao diện người

dùng (các view), nối dữ liệu với các danh sách, v.v..

Tham số được truyền một đối tượng Bundle chứa trạng thái cũ của activity, nếu

như trạng thái đã được ghi lại.

onStart() luôn được gọi sau đó.

- onRestart()

Được gọi ngay trước khi activity được khởi động lại sau khi đã bị dừng (stopped).

onStart() luôn được gọi sau đó.

- onResume()

Được gọi ngay trước khi activity bắt đầu tương tác với người dùng.

Tại thời điểm này, activity nằm trên đỉnh activity stack và nhận input của người

dùng.

Tiếp theo bao giờ cùng là onPause().

- onPause()

Được gọi khi hệ thống chuẩn bị chuyển sang một activity khác.

Trang 12

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Phương thức này thường dùng để ghi các thay đổi chưa được lưu, dừng hoạt hình

và những công việc tốn CPU khác, v.v..

Nó nên làm công việc của mình thật nhanh vì activity tiếp theo phải đợi nó kết

thúc thì mới resume được.

Tiếp theo là onResume() nếu activity quay lại, hoặc onStop() nếu nó không còn

được hiển thị đối với người dùng.

Activity trong trạng thái này có thể bị hệ thống kill.

- onStop()

Được gọi khi activity không còn hiển thị đối với người dùng.

Việc này có thể xảy ra khi nó bị hủy (destroyed), hoặc do một activity khác (cũ

hoặc mới) đã được resume và che nó.

Tiếp theo là onRestart() nếu activity tương tác trở lại với người dùng, hoặc

onDestroy() nếu nó không quay lại.

Hệ thống có thể kill activity trong trạng thái này.

- onDestroy()

Được gọi trước khi activity bị hủy.

Đây là lời gọi hàm cuối cùng mà activity nhận được.

Nó có thể được gọi vì activity đang kết thúc (hàm finish() của activity được gọi), hoặc vì hệ thống đang tạm thời hủy thực thể hiện tại của activity để tiết kiệm không gian bộ nhớ.

Ta có thể phân biệt hai tình huống trên bằng cách dùng phương thức isFinishing().

Hệ thống có thể kill activity trong trạng thái này.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3.4 Intent

Intent là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện một Activity.

Intent là cầu nối giữa các Activity trong ứng dụng. Intent chính là người đưa thư, giúp chúng ta triệu gọi cũng như truyền dữ liệu cần thiết để thực hiện một Activity từ một Activity khác

Hình 5: Sơ đồ Intent

Trang 13

Intent là một khái niệm then chốt và đặc trưng của Android Platform. Có thể nói

lập trình Android chính là lập trình intent-base.

Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong

lớp

android.content.Intent.

1.3.4.1 Các thuộc tính của một đối tượng intent

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 1: Các thuộc tính của đối tượng intent

Thuộc tính chính Thuộc tính phụ

Action: tên(string) của action mà Intent sẽ yêu cầu thực hiện, có thể là các action được định nghĩa sẵn hoặc do người lập trình tự định nghĩa. Data: là dữ liệu mà Activity sẽ gọi xử lý, định dạng Uri( thông qua hàm Uri.parse(data))

1.3.4.2 Sử dụng Intent

Category:thông tin về nhóm các action Type:định nghĩa kiểu dữ liệu. Thường được tự động xác định Component: chỉ định cụ thể lớp sẽ thực thi activity Extras:chứa tất cả các cặp (key, value) do ứng dụng thêm vào để truyền qua Intent( chứa cấu trúc Bundle)

Các hàm thực thi Activity Bảng 2: Các hàm thực thi Activity

Tên hàm Mô tả

startActivity(intent) Thực thi activity như mô tả trong intent nhưng không lấy kết quả trả về.

startActivityResult Thực thi activity như mô tả trong intent, có kết quả trả về.

sendBroadcast(intent) Chạy một service

Intent tường minh: Intent có thể dùng các thuộc tính phụ component để chỉ định đích danh tên lớp sẽ thực thi Activity. Để thực hiện điều này, lớp Intent cung cấp các hàm đó là setComponent(ComponentName) và setClass(Context, Class) và setClassName (Context, String) setClassName(String, String). Là intent được dùng để gọi các Activity trong cùng một app

Intent không tương minh: Intent không chỉ định một lớp cụ thể mà thay vào đó dùng các dữ liệu khác (action, data, type..) để hệ thống tự quyết định xem lớp nào sẽ thích hợp để đáp ứng intent đó. Thông tin action và category của activity trong một app đáp ứng intent đó phải được khai báo trong Manifest của app dưới dạng Intent- filter. Truyền nhận thông tin giữa các Activity sử dụng intent

Trang 14

bindService(intent.ServiceConnection,int) Bind service

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.3.5 Adapter trong andoid

Adapter là cầu nối để liên kết dữ liệu với giao diện người dùng.

Một số Adapter cơ bản :

- ArrayAdapter: là một lớp chung để gắn các Adapter Views vào một mảng

đối tượng, theo mặc định thì ArrayAdapter liên kết cá giá trị toString của từng đối

tượng ra TextView trong layout, chúng ta có thể thay thế TextView bằng các điều

khiển khác phức tạp hơn bằng cách sử dụng kỹ thuật Overriding phương thức

getView()

- SimpleCursorAdapter: dùng để liên kết các View với con trỏ để trả về câu

truy vấn cho Content Provider, nó được định nghĩa trong file XML layout và liên

kết các giá trị ràng buộc bên trong mỗi cột kết quả với View trong layout.

1.3.6 Lưu trữ dữ liệu trong android

Các kỹ thuật duy trì dữ liệu trong Android nhanh chóng, gọn nhẹ, hiệu quả và

mạnh mẽ:

- Shared Preferences: Khi muốn lưu trữ UI state ,user preferences hay

application setting, chúng ta muốn có một cơ chế gọn nhẹ để lưu trữ một tập hợp

các giá trị được biết đến, Shared Preferences cho phép chúng ta lưu trữ nhóm của

key/value của dữ liệu gốc.

Files: Android cho phép tạo và tải các tập tin trên thiết bị di động.

- SQLite Databases: quản lý cấu trúc dữ liệu là cách tốt nhất. Android cung

cấp thư viện quan hệ cơ sở dữ liệu SQLite, mỗi ứng dụng có thể tạo ra một cơ sở

dữ liệu của mình để nó kiểm soát hoàn toàn trên đó.

- Content Providers: Thay vì theo cơ chế lưu trữ riêng ,Content Providers cung

cấp nội dung cho phép đưa ra một giao diện để sử dụng và chia sẻ dữ liệu cá nhân.

Chúng ta có thể truy cập Content Providers để sử dụng hệ thống được phép.

1.3.7 Giao diện trong android

1.3.7.1 View

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là một hậu duệ của class View và tất cả các kiểu đó được gọi là các Widget. Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí, background,

Trang 15

kích thước, lề,… Tất cả những thuộc tính chung này được thể hiện hết ở trong đối tượng View.

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân cấp như hình dưới. Một screen là một tập hợp các Layout và các widget được bố trí có thứ tự. Để thể hiện một screen thì trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao diện từ file XML lên để phân tích thành mã bytecode.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 6: Sơ đồ giao diện trong android

1.3.7.2 ViewGroup

ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là các widget Layout được dùng để bố trí các đối tượng khác trong một screen. Có một số loại ViewGroup như sau:

- LinearLayout: với LinearLayout, các view bên trong nó được đặt cạnh nhau

theo hàng ngang hoặc hàng dọc. LinearLayout làm cho các thành phần trong nó

không bị phụ thuộc vào kích thước của màn hình. Các thành phần trong

LinearLayout được dàn theo những tỷ lệ cân xứng dựa vào các ràng buộc giữa các

thành phần.

- FrameLayout: FrameLayout được dùng để bố trí các đối tượng theo kiểu

giống như là các Layer trong Photoshop. Những đối tượng nào thuộc Layer bên

dưới thì sẽ bị che khuất bởi các đối tượng thuộc Layer nằm trên. FrameLayer thường

được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngoài chẳng hạn

như contact image button.

Trang 16

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 7: Framelayout android

- AbsoluteLayout: Layout này được sử dụng để bố trí các widget vào một vị trí

bất kì trong layout dựa vào 2 thuộc tính toạ độ x, y. Tuy nhiên, kiểu layout này rất

ít khi được dùng bởi vì toạ độ của các đối tượng luôn cố định và sẽ không tự điều

chỉnh được tỷ lệ khoảng cách giữa các đối tượng. Khi chuyển ứng dụng sang một

màn hình có kích thước với màn hình thiết kế ban đầu thì vị trí của các đối tượng

sẽ không còn được chính xác như ban đầu.

- RetaliveLayout: Layout này cho phép bố trí các widget theo một trục đối

xứng ngang hoặc dọc. Để đặt được đúng vị trí thì các widget cần được xác định một

mối ràng buộc nào đó với các widget khác. Các ràng buộc này là các ràng buộc trái,

phải, trên, dưới so với một widget hoặc so với layout parent. Dựa vào những mối

ràng buộc đó mà RetaliveLayout cũng không phụ thuộc vào kích thước của screen

thiết bị. Ngoài ra, nó còn có ưu điểm là giúp tiết kiệm layout sử dụng nhằm mục

đích giảm lượng tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử lý.

Trang 17

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 8: Relativelayout android

- TableLayout: Layout này được sử dụng khi cần thiết kế một table chứa dữ

liệu hoặc cần bố trí các widget theo các row và column. Chẳng hạn như, giao diện

của một chiếc máy tính đơn giản hoặc một danh sách dữ liệu.

Hình 9; Tablelayout android

Trang 18

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE

1.4.1 Giới thiệu

SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm người sử dụng, password hay quyền hạn trong SQLite database.

Hình 10: Quản trị SQLite

SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm và là sự lưa chọn phù hợp cho những người bắt đầu học database.

1.4.2 Đặc điểm

- Cơ sở dữ liệu dạng quan hệ (RDBMS), hỗ trợ chuẩn SQL-92

- Sử dụng dưới dạng thư viện nhúng, không chạy ở theo kiểu server độc lập

- Hỗ trợ các ngôn ngữ phổ biến: C, C++, C#, Basic, Python, PHP, Java ...

- Không cần chỉ định kiểu dữ liệu (SQLite is typeless)

- Hỗ trợ mã UTF-8.

- Hỗ trợ hiển thị.

- Hỗ trợ C extensions.

- Có các công cụ quản lý bằng đồ hoạ.

- Download & sử dụng miễn phí.

Trang 19

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.4.3 Phiên bản

Hiện tại SQLite có 2 nhánh khác nhau là version 2.x và version 3.x, do cấu tạo dữ liệu nội bộ khác nhau nên tên lệnh và tên thư viện của từng nhánh khác nhau. Lệnh sqlite là của version 2.x, sqlite3 là lệnh của version 3.x. Địa chỉ trang chủ http://sqlite.org

1.5 Web service

1.5.1 Giới thiệu

Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web (Web- based applications). Các ứng dụng có thể sử dụng các thành phần khác nhau để tạo thành một dịch vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết nối với cổng thanh toán điện tử qua một API - Application Programming Interface ( tạo bởi công nghệ .NET thì web service chính là nền máy chủ (IIS - Internet Information Services), và các thành phần thanh toán, các thành phần .NET được coi là component (các thành phần bên ngoài). Các thành phần này được gọi bởi phương thức SOAP (Khác phương thức POST, GET) nên không bị gặp phải firewall khi truy xuất các thành phần bên ngoài máy chủ. Và toàn bộ các thành phần đó gọi là một Web Services.

Các Web Services cho phép các tổ chức thực hiện truyền thông dữ liệu mà không cần phải có kiến thức về hệ thống IT phía sau tường lửa. Một số Web Services hiện nay có sẵn miễn phí và càng ngày càng hướng dần vào các doanh nghiệp.

Một ví dụ về Web Service sẵn có là dịch vụ được cung cấp bởi PayPal cho phép những người có tài khoản có thể thanh toán hoặc trả một phần hoặc thực hiện các giao dịch tìm kiếm, và lấy lại các thông tin của từng giao dịch cụ thể.

Ngày này, web service được phát triển trên hầu hết các nên tảng web server hiện

tại, như là :

- Apache với PHP

- Tomcat với JSP, Java

- IIS với .Net, ASP

- ...

1.5.2 Đặc điểm webservice

- Độc lập về ngôn ngữ, nền tảng: dịch vụ web cho phép Client và Server tương

tác được với nhau ngay cả trong những môi trường khác nhau. Đó là vì web service

sử dụng XML, một chuẩn mở đã được công nhận và có thể được hiểu bởi bất kỳ

ngôn ngữ lập trình nào.

Trang 20

- Khả năng tự mô tả: giao diện của dịch vụ web được xuất bản thông qua tài liệu

WSDL. Tài liệu này định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử

dụng trong thông điệp đó.

- Tách biệt giữa mô tả và nội dung: đây là một trong những đặc tính then chốt

làm nên thành công cho Web Services.

- Web service không đòi hỏi phía client phải cài đặt bất cứ một thành phần mới

nào. Còn ở phía server, để triển khai Web service thì chỉ cần có Servlet engine,

Apache hoặc .NET Runtime,… Khi đã được triển khai thì client có thể sử dụng ngay

các dịch vụ. Điều này khác với các công nghệ khác như DCOM hay RMI, khi mà

client phải cài đặt Client stub để có thể truy cập dịch vụ.

- Dựa trên các chuẩn mở: XML, SOAP, WSDL, UDDI.

- Truy cập thông qua môi trường Web: web services được phát hành, xác định

và gọi đều thông qua môi trường Web. Trong đó các mô tả về dịch vụ được xuất

bản sử dụng WSDL, người dùng tìm kiếm và xác định dịch vụ nhờ sự trợ giúp của

UDDI và yêu cầu dịch vụ bằng SOAP. Tất cả các giao thức này đều dựa trên Web.

1.5.2.1 Ưu điểm

- Web service cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần

mềm khác nhau chạy trên những nền tảng khác nhau.

- Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên

văn bản (text), giúp các lập trình viên dễ dàng hiểu được.

- Nâng cao khả năng tái sử dụng.

- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các

tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service.

- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ

thống, dễ dàng cho việc phát triển các ứng dụng phân tán.

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt

động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh

nghiệp khác.

Trang 21

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.5.2.2 Nhược điểm

- Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service, giao

diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các

giao thức cho việc vận hành.

- Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt.

- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.6 RESTFUL WEB SERVICE

1.6.1 Khái niệm

1.6.1.1 REST

REST viết tắt của chữ Representational State Transfer – theo nghĩa cho phép người dùng truy cập tài nguyên – resources (có thể là dữ liệu trước và sau xử lý hay chức năng của ứng dụng) - của ứng dụng trên web services thông qua uri.

Thực hiện cơ chế nói chuyện giữa server và client là điểm điểm – point to point.

Dữ liệu được truyền trực tiếp trên HTTP và được truy cập thông qua HTTP theo đúng định dạng MIME mà không cần thông qua dạng SOAP – giảm bớt sự phức tạp – vì đơn giản chúng ta sẽ coi dữ liệu và chức năng như là tham số truyền hay dữ liệu đính kèm trong HTTP.

Cho phép thao tác dữ liệu dưới 4/7 phương thức được định nghĩa trong HTTP đó là GET, POST, PUT, DELETE để qui định rõ cách thao tác dữ liệu trên server, cái nào được truy cập, các nào được sửa đổi, cái nào được hiển thị và dấu ẩn …

1.6.1.2 Kiến trúc

Hình 11: Kiến trúc REST

Trang 22

- Client-Server:

Phân tách giao diện của client ra khỏi dữ liệu.

Cho phép mỗi thành phần phát triển độc lập.

Hỗ trợ đa nền.

- Stateless:

Mỗi yêu cầu của client phải đầy đủ thông tin cần thiết để server có thể hiểu được

mà không cần phải lưu trữ thêm thông tin nào trước đó.

- Cache:

Dữ liệu phản hồi từ yêu cầu gán nhãn rõ ràng ngầm định được dùng lại hoặc

không.

- Uniform interface:

Tất cả các tài nguyên được truy cập qua một interface thống nhất.

- Layered System:

Cho phép thêm các lớp (proxy server, cache server, gateway,…)

- Code on Deman :

Cho phép client mở rộng chức năng bằng cách tải mã nguồn theo dạng applet hoặc

script.

1.6.1.3 RESTFul Web Service

Là một web service đơn giản dùng HTTP và tính chất của REST.

Là một tập tài nguyên giữa các thành phần được định nghĩa:

- URI gốc cho web service.

- MIME type hỗ trợ bởi web service.

- Tập hỗ trợ hành động sử dụng HTTP method (GET,PUT,POST,DELETE).

1.6.1.4 Cơ chế hoạt động

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 12: Cơ chế hoạt động của REST

Trang 23

Client gửi request yêu cầu resources thông qua HTTP

Web services dựa trên request để đáp ứng yêu cầu và response kết quả trả về

Response được trả về theo đúng định dạng yêu cầu của client

Client xử lý kết quả từ response để đáp ứng yêu cầu của mình

1.6.1.5 Một số thành phần của RESTful Web Service

- Resources: có thể là chuỗi, hình ảnh, xml, tập tin …

- JAX-RS: Cung cấp chức năng và API cho việc xây dựng ứng dụng với

RESTful Web Services.

- JAX-RS API:

o Một API của JavaEE

o Sử dụng tạo web service với các hàm API với annotations

o Định nghĩa Java class như là một Resource class

o Định nghĩa 02 loại resources: root resource và sub resource thông qua

@Path.

Trong đó, sub resource được truy cập thông qua root

o Root resource thông thường là được khai báo ở đầu class

o Sub resource được khai báo trên các method, nghĩa là các method được

truy cập thông qua root theo đường dẫn trên server

o Cú pháp của @Path: @Path(“resourcePath/{param1}/…/{paramN}”)

o Package chứa các thành phần là javax.ws.rs

o Các method của HTTP được hỗ trợ thông qua các khai báo annotations

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 3: Các method của HTTP được hỗ trợ

Annotation Mô tả

@GET Dùng cho HTTP GET method

@POST Dùng cho HTTP POST method

@PUT Dùng cho HTTP PUT method

Trang 24

@DELETE Dùng cho HTTP DELETE method

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.6.2 Json và Gson

1.6.2.1 Sơ lược về json

JSON là cú pháp để lưu trữ và trao đổi thông tin văn bản. Cũng giống như XML.

JSON là nhỏ hơn so với XML, và nhanh hơn và dễ dàng hơn để phân tích (parse)

JSON sử dụng cú pháp JavaScript để mô tả đối tượng dữ liệu, nhưng JSON là ngôn ngữ và nền tảng độc lập. Trình phân tích cú pháp(parsers) JSON và các thư viện JSON tồn tại cho nhiều ngôn ngữ lập trình khác nhau.

- JSON là viết tắt của JavaScript Object Notation.

- JSON là định dạng trao đổi dữ liệu văn bản dung lượng nhẹ.

- JSON là ngôn ngữ độc lập .

- JSON được "tự mô tả" và dễ hiểu.

1.6.2.2 So sánh với XML

- Giống nhau :

o JSON là văn bản trơn (không có định dạng(màu sắc, cỡ chữ,…))

o JSON là "tự mô tả" (người dùng có thể hiểu được)

o JSON là phân cấp (có cấu trúc cây)

o JSON có thể được phân tích cú pháp (parse) bởi JavaScript

o Dữ liệu JSON có thể được truyền đi bằng AJAX

- Khác nhau :

o Không có thẻ kết thúc

o Ngắn hơn

o Nhanh hơn để đọc và ghi

o Sử dụng mảng (Array)

Cú pháp JSON : Cú pháp JSON là một tập hợp con của cú pháp JavaScript

Các quy luật cú pháp JSON : Cú pháp JSON là một tập hợp con của cú pháp

đối tượng JavaScript.

- Dữ liệu là các cặp tên/giá trị (name/values)

- Dữ liệu được phân cách bằng dấu phẩy

- Đối tượng nằm trong cặp ngoặc nhọn ‘{}’

- Dấu ngoặc vuông giữ mảng ‘[]’

Trang 25

- Cặp Tên/Giá trị của JSON : Một cặp Tên/Giá trị chứa tên 1 trường (trong dấu

nháy đôi “”), theo sau là dấu phẩy, cuối cùng là giá trị:

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Các kiểu giá trị của JSON:

o Kiểu số nguyên (int) hay số thực (float)

o Kiểu chuỗi (String)

o Kiểu Boolean (true or false)

o Kiểu mảng (nằm trong dấu ngoặc vuông [])

o Kiểu đối tượng (được đặt trong dấu ngoặc nhọn {})

o Kiểu null

- Các đối tượng JSON : Các đối tượng được đặt trong dấu ngoặc nhọn {}. Đối

tượng có thể chứa nhiều cặp Tên/Giá trị (Name/Values):

"firstName" : "John"

Bảng 4: Đối tượng Json

- Mảng của JSON : Mảng JSON nằm trong dấu ngoặc vuông [].

- Mảng có thể chứa nhiều đối tượng:

{ "firstName":"John" , "lastName":"Doe" }

Bảng 5: Mảng Json

{ "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" }

{ "employees": [ ]

Trích xuất thông tin từ JSON : Trong Android hỗ trợ 2 kỹ thuật trích xuất thông

tin và thấy thông tin về từ webservice lưu theo kiểu JSON.

Trang 26

}

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Cách 1 : Sử dụng đối tượng JSONObject.

Thiết lập 1 kiểu key/value. Key phải là duy nhất và không được null. Value của JSONObject, JSONArray phải là 1 trong các kiểu cơ bản sau : String, Boolean, Integer, Long, Double, NULL.

Cách 2 : Sử dụng đối tượng GSON. Được cung cấp và sử dụng khi Android

Application làm việc với file JSON.

1.6.2.3 Sơ lược về Gson

GSON là 1 thư viện được viết bằng ngôn ngữ Java được sử dụng để chuyển đổi đối tượng Java vào trong file JSON và chuyển đổi chuối JSON thành đối tượng Java. JSON là mã nguồn mở được cung cấp tại địa chỉ : http://code.google.com/p/google- gson.

Mục đính của GSON: Cung cấp dễ dàng sử dụng các phương thức như toString()

và các phương thức chuyển đổi giữa đối trượng trong Java và JSON và ngược lại.

Tạo đối tượng trong GSON : Có thể sử dụng câu lệnh sau :

Và dùng đối tượng gson vừa tạo ra gọi các phương thức của nó.

Ví dụ đơn giản như sau :

Gson gson = new Gson();

Bảng 6: Ví dụ sử dụng Gson

Gson gson = new Gson();

// Chuyển giá trị sang chuỗi gson.toJson(1); ==> in ra 1 gson.toJson("abcd"); ==> in ra "abcd" gson.toJson(new Long(10)); ==> in ra 10 int[] values = { 1 }; gson.toJson(values); ==> in ra [1] // Chuyển chuỗi sang giá trị có kiểu tương ứng int one = gson.fromJson("1", int.class); Integer one = gson.fromJson("1", Integer.class); Long one = gson.fromJson("1", Long.class); Boolean false = gson.fromJson("false", Boolean.class);

Trang 27

String str = gson.fromJson("\"abc\"", String.class); String anotherStr = gson.fromJson("[\"abc\"]", String.class);

Lấy giá trị của lớp.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

class DemoJson { private int value1 = 1; private String value2 = "abc"; DemoJson () { }

} DemoJson obj = new DemoJson (); Gson gson = new Gson(); String json = gson.toJson(obj); ==> Chuỗi Json là {"value1":1,"value2":"abc"}

1.7 JSP VÀ SERVLET

1.7.1 JSP

JSP (viết tắt của tiếng Anh Java Server Pages) còn được biết đến với một cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang.

Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP. Những "hành động JSP" này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng).

Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte code cho servlet từ trang JSP.

1.7.2 SERVLET

thuật

Java Servlet API cho phép nhà phát triển phần mềm thêm những nội dung động vào Web server sử dụng Java platform. Nó phát sinh nội dung thông thường là HTML, đôi khi cũng có thể là các ngôn ngữ khác như XML. Servlets là bản sao Java của các kỹ trình bày nội dung Web động khác như là PHP, CGI và ASP.NET. Servlets có thể duy trì tình trạng thông qua các giao dịch

Trang 28

của máy chủ bằng việc sử dụng HTTP cookies, các giá trị session hoặc URL rewriting.

Servlet API, được chứa trong gói Java kế thừa từ Bản mẫu:Javadoc, định nghĩa những tương tác cần thiết giữa một Web container và một servlet. A Web container là một thành phần cơ bản và cần thiết của Web Server để tương tác với các Servlet. The Web container chịu trách nhiệm quản lý vòng đời của các Servlet, ánh xạ đường dẫn đến một Servlet cụ thể và đảm bảo rằng có thể truy cập vào.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

1.7.3 MÔ HÌNH MVC TRONG JAVA WEB JSP SERVLET

1.7.3.1 Khái niệm cơ bản về mô hình MVC

Tên gọi Mô hình MVC xuất phát từ tên gọi của mô hình này. Tên đầy đủ của mô

hình này là: Mô hình (Model – View – Controller). Trong đó:

Model: Là thành phần hỗ trợ việc ánh xạ dữ liệu vật lý lên bộ nhớ, lưu trữ dữ liệu tạm thời trên bộ nhớ, hỗ trợ cấc cách thức xử lý dữ liệu, hỗ trợ khả năng giao tiếp và trao đổi dữ liệu giữa các đối tượng khác trong bộ nhớ và cơ sở dữ liệu.

View: Là thành phần hỗ trợ trình bày kết xuất ra màn hình, hỗ trợ thao tác vơi

người dùng

Controller: Là thành phần hỗ trợ kết nối người dùng, server, đón nhập yêu cầu người dùng, thực hiện chuyển xử lý, lựa chọn và cập nhật model và view tương ứng để view trình bày về phía người dùng.

1.7.3.2 Mô hình MVC trong ứng dụng web với JSP Servlet

Trong lập trình Web với Java, với những dự án lớn hay Web site lớn người ta sử dụng mô hình MVC để việc phân chia module, phân chia công việc, thiết kế giao diện, chỉnh sửa và bảo trì nâng cấp được thuận tiện hơn. Trong đó:

Model: Thành phần JavaBeans đảm nhiệm ( lớn hơn có Enterprise JavaBeans hay

Web Service)

View: các trang jsp

Controller : sử dụng servlet

Trang 29

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

CHƯƠNG 2.

PHÂN TÍCH VÀ 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

- Đối tượng: Những người có nhu cầu tìm hiểu, nghiên cứu về đời sống văn hóa

ẩm thực Việt Nam.

- Mục đích:

o Cung cấp một ứng dụng giống như sổ tay mini về nấu ăn trên điện thoại

di động. Là một công cụ hữa ích cho việc tìm hiểu về nét đặc trưng của

văn hóa ẩm thực từng vùng miền, tra cứu cách chế biến các món ăn.

Thông qua việc sử dụng ứng dụng, người dùng sẽ nâng tầm hiểu biết

của mình về ẩm thực, chế biến được nhiều món ăn ngon, bổ dưỡng phù

hợp với khẩu vị của mỗi người.

o Tạo một Web Service cung cấp thông tin cho ứng dụng, ứng dụng có

thể cập nhật những thay đổi từ Web Service. Một Web Admin cho phép

nhập, chỉnh sửa dữ liệu và tổng hợp các ý kiến phản hổi từ khách hàng

về các món ăn như: chấm điểm, bình luận. Từ đó sẽ là một nguồn tham

khảo bổ ích cho những người nội trợ và bất kỳ ai muốn tự tay vào bếp

chế biến các món ăn yêu thích.

- Nguồn cung cấp cơ sở dữ liệu:

o Dữ liệu sẽ được quản lý bởi một Web admin, ứng dụng sẽ truy xuất dữ

liệu thông qua một Web service. Khi lần đầu tiên khởi chạy ứng dụng,

dữ liệu sẽ được cập nhật tự động, vì vậy cần phải có kết nối mạng cho

lần khởi chạy đầu tiên. Từ lần thứ hai sử dụng, người sử dụng có thể

tùy chọn cập nhật dữ liệu từ bên trong ứng dụng.

- Triển khai:

o Một Web admin cung cấp dữ liệu và giao diện cho phép nhập, chỉnh

sửa dữ liệu.

o Một Web service lấy dữ liệu từ Web admin và trả về định dạng phù hợp

cho ứng dụng trên điện thoại di động có thể truy xuất.

Trang 30

o Một ứng dụng đi động được xây dựng dựa trên nền tảng Android, cho

phép lấy dữ liệu từ Web service trả về và hiển thị một cách trực quan

cho người sử dụng có thể dễ dàng tìm hiểu.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

2.1.2 Phân tích hiện trạng ẩm thực Việt Nam

2.1.2.1 Giới thiệu sơ lược về ẩm thực Việt Nam

Việt Nam – đất nước với hơn 4000 năm văn hiến không chỉ tự hào bởi những chiến tích hào hùng của cha ông, dãy đất thanh bình được quá nhiều ưu đãi từ thiên nhiên, mà còn hãnh diện bởi nền ẩm thực truyền thống Việt Nam phong phú, đa dạng đã ghi sâu vào tâm thức của bạn bè quốc tế.

Với đặc điểm địa lý là một nước nông nghiệp thuộc vùng nhiệt đới gió mùa, lãnh thổ Việt Nam được chia thành ba vùng rõ rệt: Bắc – Trung – Nam. Chính vì thế, ẩm thực Việt cũng chịu ảnh hưởng ít nhiều từ đặc trưng văn hóa của mỗi vùng miền, để từ đó kết tinh thành hương vị rất riêng, mang đến ẩm thực truyền thống Việt Nam ngày càng phong phú, đặc sắc.

2.1.2.2 Đặc điểm

Việt Nam là một nước nông nghiệp thuộc về xứ nóng, vùng nhiệt đới gió mùa. Ngoài ra lãnh thổ Việt Nam được chia ra ba miền rõ rệt là Bắc, Trung, Nam. Chính các đặc điểm về địa lý, văn hóa, dân tộc, khí hậu đã quy định những đặc điểm riêng của ẩm thực từng vùng - miền. Mỗi miền có một nét, khẩu vị đặc trưng. Điều đó góp phần làm ẩm thực Việt Nam phong phú, đa dạng. Đây là một văn hóa ăn uống sử dụng rất nhiều loại rau (luộc, xào, làm dưa, ăn sống); nhiều loại nước canh đặc biệt là canh chua, trong khi đó số lượng các món ăn có dinh dưỡng từ động vật thường ít hơn. Những loại thịt được dùng phổ biến nhất là thịt lợn, bò, gà, ngan, vịt, các loại tôm, cá, cua, ốc, hến, trai, sò v.v. Những món ăn chế biến từ những loại thịt ít thông dụng hơn như thịt chó, thịt dê, thịt rùa, thịt rắn, thịt ba ba... thường không phải là nguồn thịt chính, nhiều khi được coi là đặc sản và chỉ được sử dụng trong một dịp liên hoan nào đó với rượu uống kèm. Người Việt cũng có một số món ăn chay theo đạo Phật được chế biến từ các loại thực vật, không có nguồn thực phẩm từ động vật. Tuy nhiên, trong cộng đồng thì lại có rất ít người ăn chay trường, chỉ có các sư sãi trong các chùa hoặc người bị bệnh nặng buộc phải ăn kiêng.

Một đặc điểm ít nhiều cũng phân biệt ẩm thực Việt Nam với một số nước khác: ẩm thực Việt Nam chú trọng ăn ngon tuy đôi khi không đặt mục tiêu hàng đầu là ăn bổ. Bởi vậy trong hệ thống ẩm thực người Việt ít có những món hết sức cầu kỳ, hầm nhừ ninh kỹ như ẩm thực Trung Hoa, cũng không thiên về bày biện có tính thẩm mỹ cao độ như ẩm thực Nhật Bản, mà thiên về phối trộn gia vị một cách tinh tế để món ăn được ngon, hoặc sử dụng những nguyên liệu dai, giòn thưởng thức rất thú vị dù không thực sự bổ béo (ví dụ như các món măng, chân cánh gà, phủ tạng động vật ...).

Trang 31

Trong thực tế nhiều người nhận thấy, một cách cảm tính, đặc trưng ẩm thực Việt Nam toát lộ trong sự đối sánh với các nền văn hóa ẩm thực khác trên thế giới: món ăn Trung Hoa ăn bổ dưỡng, món ăn Việt ăn ngon miệng, món ăn Nhật nhìn thích mắt. Tuy nhiên, đặc điểm này ngày càng phai nhòa trong thời hội nhập.

Theo ý kiến của tiến sĩ sử học Hãn Nguyên Nguyễn Nhã, cho rằng ẩm thực Việt

Nam có 9 đặc trưng:

- Tính hoà đồng hay đa dạng

- Tính ít mỡ.

- Tính đậm đà hương vị

- Tính tổng hoà nhiều chất, nhiều vị.

- Tính ngon và lành

- Tính dùng đũa.

- Tính cộng đồng hay tính tập thể

- Tính hiếu khách

- Tính dọn thành mâm.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

2.1.3 Phân tích yêu cầu bài toán

2.1.3.1 Yêu cầu chức năng

Hệ thống được xây dựng phục vụ cho những người dùng quan tâm đến ẩm thực, có nhu cầu tìm hiểu về ẩm thực Việt Nam. Hệ thống được xây dựng gồm 3 phần chính là: Ứng dụng chạy trên nền điện thoại di động Android, một web server gồm web admin và web service. Các chứng năng chính của mỗi phần gồm có:

- Ứng dụng trên nền điện thoại di động android

o Hiển thị văn hóa ẩm thực theo từng vùng.

o Hiển thị danh sách món ăn theo khu vực.

o Tìm kiếm món ăn theo nhiều tiêu chí.

o Hiển thị chi tiết món ăn.

o Đánh dấu món ăn, tào và chỉnh sửa danh sách món ăn yêu thích.

o Tạo ghi chú cho từng món ăn.

o Hẹn giờ nấu ăn.

o Chia sẻ món ăn trên mạng xã hội facebook.

o Gửi phản hồi về món ăn.

o Gửi phản hồi về ứng dụng

Trang 32

- Web service

o Cung cấp các phương thức để trao đổi dữ liệu giữa web admin và ứng

dụng trên điện thoại di động.

- Web admin

o Cung cấp giao diện để admin có thể nhập, chỉnh sửa dữ liệu trực tiếp.

2.1.3.2 Yêu cầu phi chức năng

o Giao diện thân thiện, dễ sử dụng, bố trí hợp lý để có thể hiển thị tốt

thông tin trên màn hình di động.

o Hệ thống có thể chạy được trên các máy điện thoại android mà không

đòi hỏi cấu hình cao.

o Dễ sửa chửa, cập nhật, bảo trì. o Hệ thống hoạt động ổn định, nhanh chóng. o Không hao tổn nhiều tài nguyên hệ thống.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

2.1.4 Phân tích tính khả thi

Trong cuộc sống bộn bề tất bật với nhiều công việc, thật khó để bạn có thể làm chu toàn mọi việc. Ứng dụng ra đời như là một cuốn sổ ghi nhớ về ẩm thực, một công cụ có thể giúp bạn dễ dàng chế biến các món ăn mà không cần phải dành thời gian để học hỏi, tìm hiểu cách nấu các món ăn.

Với xu thế điện thoại thông minh ngày càng phát triển, đem lại nhiều giá trị thiết thực trong cuộc sống. Ứng dụng được xây dựng trên nền tảng hệ điều hành di động android, một hề điều hành đang rất phổ biến hiện nay, nên hoàn toàn có thể triển khai trên thực tế.

2.1.5 Công nghệ

Công nghệ để xây dựng ứng dụng gồm 2 phần chính:

- Ứng dụng trên nền điện thoại di động android.

o Ngôn ngữ lập trình Java. o Công cụ IDE eclipse, SDK. o Quản lý cơ sở dữ liệu Sqlite Manager.

- Phần Web service và Web admin

o Ngôn ngữ Java, Jsp, Servlet. o Công cụ IDE Eclipse J2EE. o Hệ quản trị cơ sở dữ liệu MS SQL Server 2012.

- Một số công cụ hỗ trợ như MS Visio dùng để phân tích và thiết kế hệ thống,

photoshop dùng để thiết kế giao diện.

Trang 33

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

2.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

2.2.1 Phân tích và thiết kế ứng dụng di động Android

2.2.1.1 Usecase

a) Use case tổng quát của ứng dụng android

Hình 13: Use case của ứng dụng android

b) Đặc tả usecase

- Xem văn hóa ẩm thực

Bảng 7: Mô tả usecase xem văn hóa ẩm thực

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước

Điều kiện sau Hiển thị văn hóa ẩm thực ương ứng.

Mô tả Người dùng chọn vùng, xuất xứ. Hệ thống hiển thị ra văn hóa ẩm thực của vùng miền tương ứng.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Hệ thống sẽ chuyển sang trang xem văn hóa ẩm thực. Người dùng click vào button [Văn hóa ẩm thực] trên giao diện màn hình chính

Trang 34

Chọn vùng, xuất xứ Hiển thị ra văn hóa ẩm thực tương ứng

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Cập nhật dữ liệu

Bảng 8: Mô tả usecase cập nhật dữ liệu

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Ứng dụng chạy lần đầu hoặc người dùng click vào button [Cập nhật]

Điều kiện sau Hiển thị thông báo, cập nhật cơ sở dữ liệu vào ứng dụng

Mô tả

Khi ứng dụng chạy lần đầu hoặc người dùng click vào button [Cập nhật]. Ứng dụng sẽ kiểm tra kết nối mạng. Nếu có kết nối mạng thì tải dữ liệu từ Server và cập nhật vào cơ sở dữ liệu.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Chạy ứng dụng lần đầu hoặc click vào button [Cập nhật] Kiểm tra kết nối mạng, gửi yêu cầu đến server

Nếu thành công thì hiển thị thông báo “Cập nhật dữ liệu thành công” và cập nhật vào cơ sở dữ liệu. Nếu không thành công thì hiển thị thông báo “Cập nhật dữ liệu thất bại”

- Tìm kiếm món ăn

Bảng 9: Mô tả usecase tìm kiếm món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước

Điều kiện sau Hiển thị danh sách món ăn.

Mô tả Người dùng chọn tiêu chí tìm kiếm, điền từ khóa để tìm kiếm, click button [search]. Hệ thống hiển thị kết quả là danh sách món ăn cần tìm

Kịch bản Hành động của tác nhân Hành động của hệ thống

Người dung click vào button [Tìm kiếm] Hệ thống chuyển đến giao diện tìm kiếm

Chọn tiêu chí tìm kiếm, điền từ khóa để tìm kiếm, click button [Tìm kiếm].

Trang 35

Thực hiện truy vấn và trả về danh sách kết quả tìm kiếm tương ứng với từ khóa tìm kiếm.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Xem chi tiết món ăn

Bảng 10: Mô tả usecase xem chi tiết món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước

Điều kiện sau Hiển thị chi tiết món ăn.

Mô tả Từ danh sách món ăn, người dùng chọn món ăn bất kỳ. Hệ thống hiển thị thông tin chi tiết của món ăn đó.

Kịch bản Hành động của hệ thống Hành động của tác nhân

Chọn món ăn từ danh sách món ăn Hiển thị thông tin chi tiết của món ăn theo một giao diện trực quan.

- Gửi phản hồi cho từng món ăn

Bảng 11: Mô tả usecase gửi phản hồi cho từng món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Người dùng đang ở trang xem chi tiết một món ăn, thiết bị phải có kết nối mạng.

Điều kiện sau

Mô tả

Từ giao diện trang xem chi tiết món ăn, người dùng click vào tab gửi phản hồi, sau đó click vào button [Gửi], phản hồi của người dùng sẽ được tổng hợp trên server và được duyệt bởi admin

Kịch bản Hành động của hệ thống Hành động của tác nhân

Chọn món ăn từ danh sách món ăn Hiển thị thông tin chi tiết của món ăn theo một giao diện trực quan.

Viết phản hồi cho món ăn, sau đó click vào button [Gửi]

Trang 36

Hệ thống sẽ kiểm tra kết nội mạng và yêu cầu gửi đi của người dùng. Nếu thành công hệ thống sẽ hiển thị thông báo [Phản hồi thành công] và dữ liệu người dùng gửi sẽ được tổng hợp lại ở server. Nếu thất bại hệ thống sẽ hiển thị thông báo [Phản hồi thất bại].

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Tạo ghi chú cho từng món ăn

Bảng 12: Mô tả usecase tạo ghi chú cho món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình chi tiết món ăn, món ăn chưa có bất kỳ ghi chú nào.

Điều kiện sau Thêm ghi chú của món ăn vào cơ sở dữ liệu.

Mô tả Người dùng nhập vào ghi chú của món ăn, click button [Lưu ghi chú]. Hệ thống lưu ghi chú của món ăn vào cơ sở dữ liệu

Kịch bản Hành động của tác nhân Hành động của hệ thống

Nhập vào ghi chú, click button [Lưu ghi chú] Lưu ghi chú của món ăn vào cơ sở dữ liệu và thông báo “Cập nhật ghi chú thành công” nếu thành công.

- Chỉnh sửa ghi chú cho từng món ăn

Bảng 13: Mô tả usecase chỉnh sửa ghi chú món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình chi tiết món ăn

Điều kiện sau Cập nhật ghi chú của món ăn vào cơ sở dữ liệu.

Mô tả Người dùng chỉnh sửa ghi chú của món ăn, click button [Lưu]. Hệ thống lưu ghi chú của món ăn vào cơ sở dữ liệu

Kịch bản Hành động của tác nhân Hành động của hệ thống

Trang 37

Chỉnh sửa ghi chú, click button [Lưu ghi chú] Lưu ghi chú của món ăn vào cơ sở dữ liệu và thông báo “Cập nhật ghi chú thành công” nếu thành công

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Chia sẻ món ăn trên facebook

Bảng 14: Mô tả usecase chia sẻ món ăn trên facebook

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình chi tiết món ăn, người dùng cần có tài khoản facebook và kết nối mạng.

Điều kiện sau Chia sẻ món ăn trên Facebook

Mô tả Người dùng click vào button [Chia sẻ] hệ thống tiến hành lấy dữ liệu và chia sẽ dữ liệu về chi tiết món ăn lên trang facebook của người dùng.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Click vào button [Chia sẻ]

Hệ thống tiến hành kiểm tra kết nối mạng và tài khoản facebook của người dùng sau đó sẽ đẩy thông tin về chi tiết món ăn mà người dùng muốn chia sẻ lên trang facebook của người dùng nếu thành công. Nếu không sẽ hiển thị thông báo [Chia sẻ thất bại].

- Xem danh sách món ăn

Bảng 15: Mô tả usecase xem danh sách món ăn

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đã cập nhật cơ sở dữ liệu nếu lần đầu chạy ứng dụng.

Điều kiện sau Hiển thị danh sách món ăn.

Mô tả Người dùng chọn vùng, xuất xứ. Hệ thống hiển thị ra danh sách món ăn tương ứng.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Người dùng click vào button [Danh sách món ăn] trên giao diện Hệ thống sẽ chuyển đến trang xem xem danh sách món ăn cho người dùng lựa chọn.

Trang 38

Chọn vùng, xuất xứ Hiển thị ra danh sách món ăn tương ứng với lựa chọn của người dùng.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

- Quản lý danh sách món yêu thích o Thêm món ăn yêu thích.

Bảng 16: Mô tả usecase thêm món ăn yêu thích

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình chi tiết món ăn

Điều kiện sau Thêm món ăn vào danh sách yêu thích nếu chưa có.

Mô tả Người dùng click vào button [Yêu thích]. Hệ thống kiểm tra nếu món ăn chưa có trong danh sách yêu thích thì thêm vào

Kịch bản Hành động của tác nhân Hành động của hệ thống

Click button [Yêu thích] Kiểm tra nếu món ăn chưa có trong danh sách yêu thích thì thêm vào

o Xóa món ăn yêu thích.

Bảng 17: Mô tả usecase xóa món ăn yêu thích

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình danh sách món ăn yêu thích

Điều kiện sau Xóa món ăn khỏi danh sách yêu thích

Mô tả Người dùng click button [Xóa] tại dòng của món ăn yêu thích cần xóa. Hệ thống xóa món ăn yêu thích khỏi cơ sở dữ liệu

Kịch bản Hành động của tác nhân Hành động của hệ thống

Click button [Xóa] tại dòng của món ăn yêu thích Xóa món ăn yêu thích khỏi cơ sở dữ liệu

- Hẹn giờ nấu ăn

Trang 39

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

o Chỉnh sửa hẹn giờ

Bảng 18: Mô tả usecase chỉnh sửa hẹn giờ

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình danh sách hẹn giờ

Điều kiện sau Hệ thống chỉnh sửa hẹn giờ vào cơ sở dữ liệu và thời gian.

Mô tả

Người dùng click vào lịch hẹn bất kỳ ở danh sách hẹn giờ. Chỉnh sửa thông tin ngày, giờ. Click button [Lưu]. Hệ thống chỉnh sửa hẹn giờ vào cơ sở dữ liệu và thời gian hiển thị thông báo.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Hiển thị màn hình chỉnh sửa hẹn giờ Click vào dòng bất kỳ ở danh sách lịch hẹn.

Chỉnh sửa thông tin ngày, giờ Kiểm tra thông tin chỉnh sửa nêu đúng

thì tiến hành chỉnh sửa hẹn giờ vào cơ sở dữ liệu và thời gian hiển thị thông báo. Thông báo “Cập nhật thành công”. Nếu không hiển thị thông báo “Cập nhật thất bại”.

o Xóa hẹn giờ

Bảng 19: Mô tả usecase xóa hẹn giờ

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình danh sách nhắc nhở

Điều kiện sau Hệ thống xóa hẹn giờ khỏi cơ sở dữ liệu và tháo bỏ hẹn giờ.

Mô tả Người dùng click vào button [Xóa] tại dòng của hẹn giờ muốn xóa. Hệ thống xóa hẹn giờ khỏi cơ sở dữ liệu và tháo bỏ hẹn giờ.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Click vao button [Hẹn giờ] Chuyển sang giao diện cho phép người dùng xem danh sách hẹn giờ

Click vào button [Xóa] của hẹn giờ cần xóa

Trang 40

Xóa hẹn giờ khỏi cơ sở dữ liệu, tháo bỏ hẹn giờ của nhắc nhở tại dòng tương ứng. Thông báo “Xóa hẹn giờ thành công” nếu thành công, hoặc “Xóa hẹn giờ thất bại” nếu thất bại.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

o Đặt giờ

Bảng 20: Mô tả usecase đặt giờ

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Đang ở màn hình chi tiết món ăn

Điều kiện sau Thêm hẹn giờ vào cơ sở dữ liệu và hẹn giờ thông báo nấu ăn

Mô tả

Người dùng click vào button [Hẹn giờ]. Điền vào thông tin ngày, giờ, nội dung thông báo. Hệ thống lưu hẹn giờ vào cơ sở dữ liệu. Đồng thời kích hoạt một tác vụ hẹn giờ để hiển thị thông báo hẹn giờ nấu món ăn tương ứng.

Kịch bản Hành động của tác nhân Hành động của hệ thống

Lưu hẹn giờ vào cơ sở dữ liệu.

Click vào button [Hẹn giờ]. Điền vào thông tin ngày, giờ, nội dung hẹn giờ.

c) Gửi phản hồi cho ứng dụng

Kích hoạt một tác vụ hẹn giờ để hiển thị thông báo hẹn giờ nấu món ăn tương ứng.

Bảng 21: Mô tả usecase gửi phản hồi cho ứng dụng

Thuộc tính Mô tả

Tác nhân Người dùng

Điều kiện trước Người dùng đang ở trang chính của ứng dụng, thiết bị phải có kết nối mạng.

Điều kiện sau

Mô tả

Từ giao diện trang chính của ứng dụng người dùng click vào tab gửi phản hồi, sau đó click vào button [Gửi], phản hồi của người dùng sẽ được tổng hợp trên server và được duyệt bởi admin

Kịch bản Hành động của tác nhân Hành động của hệ thống

Chọn gửi phản hồi từ màn hình giao diện chính của ứng dụng Hiển thị giao diện để người dùng viết phản hồi.

Viết phản hồi cho món ăn, sau đó click vào button [Gửi]

Trang 41

Hệ thống sẽ kiểm tra kết nội mạng và yêu cầu gửi đi của người dùng. Nếu thành công hệ thống sẽ hiển thị thông báo [Phản hồi thành công]. Nếu thất bại hệ thống sẽ hiển thị thông báo [Phản hồi thất bại].

2.2.1.2 Biểu đồ hoạt động

a) Xem văn hóa ẩm thực.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 14: Biểu đồ hoạt động xem văn hóa ẩm thực

b) Cập nhật dữ liệu.

Hình 15: Biểu đồ hoạt động cập nhật dữ liệu

Trang 42

c) Tìm kiếm món ăn.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 16: Biểu đồ hoạt động tìm kiếm món ăn

d) Xem chi tiết món ăn.

- Gửi phản hồi cho từng món ăn.

Hình 17: Biểu đồ hoạt động gửip hản hồi cho từng món ăn

Trang 43

- Tạo ghi chú cho từng món ăn.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 18: Biểu đồ hoạt động tạo ghi chú cho từng món ăn

- Chỉnh sửa ghi chú cho từng món ăn.

Hình 19: Biểu đồ hoạt động chỉnh sửa ghi chú cho từng món ăn

Trang 44

- Chia sẻ món ăn trên facebook.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 20: Biểu đồ hoạt động chia sẻ món ăn trên facebook

- Xem danh sách món ăn.

Hình 21: Biểu đồ hoạt động xem danh sách món ăn

Trang 45

e) Quản lý danh sách món ăn yêu thích.

- Thêm món ăn yêu thích

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 22: Biểu đồ hoạt động thêm món ăn yêu thích

- Xóa món ăn yêu thích

Hình 23: Biểu đồ hoạt động xóa món ăn yêu thích

Trang 46

f) Hẹn giờ nấu ăn.

- Chỉnh sửa hẹn giờ.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 24: Biểu đồ hoạt động chỉnh sửa hẹn giờ

- Đặt giờ

Hình 25: Biểu đồ hoạt động đặt giờ

Trang 47

- Xóa hẹn giờ

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 26: Biểu đồ hoạt động xóa hẹn giờ

g) Gửi phản hồi cho ứng dụng

Hình 27: Biểu đồ hoạt động gửi phản hồi cho ứng dụng

Trang 48

2.2.1.3 Biểu đồ tuần tự

a) Xem văn hóa ẩm thực

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 28: Biểu đồ tuần tự xem văn hóa ẩm thực

b) Cập nhật dữ liệu

Hình 29: Biểu đồ tuần tự cập nhật dữ liệu

c) Tìm kiếm món ăn

Hình 30: Biểu đồ tuần tự tìm kiếm món ăn

Trang 49

d) Xem danh sách món ăn

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 31: Biểu đồ tuần tự xem danh sách món ăn

e) Xem chi tiết món ăn

- Gửi phàn hồi cho từng món ăn.

Hình 32: Biểu đồ tuần tự gửi phản hồi cho từng món ăn

- Tạo ghi chú cho từng món ăn

Hình 33: Biểu đồ tuần tự tạo ghi chú cho từng món ăn

Trang 50

- Chỉnh sửa ghi chú cho từng món ăn

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 34: Biểu đồ tuần tự chỉnh sửa chi chú cho từng món ăn

- Chia sẻ món ăn trên facebook

Hình 35: Biểu đồ tuần tự chia sẻ món ăn trên facebook

f) Quản lý danh sách món ăn yêu thích

- Thêm món ăn yêu thích

Hình 36: Biểu đồ tuần tự thêm món ăn yêu thích

Trang 51

- Xóa món ăn yêu thích

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 37: Biểu đồ tuần tự xem món ăn yêu thích

g) Hẹn giờ nấu ăn

- Chỉnh sửa hẹn giờ

Hình 38: Biểu đồ tuần tự chỉnh sửa hẹn giờ

- Đặt giờ

Hình 39: Biểu đồ tuần tự thêm hẹn giờ

Trang 52

- Xóa hẹn giờ

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 40: Biểu đồ tuần tự xóa hẹn giờ

h) Gửi phản hồi cho ứng dụng

Hình 41: Biểu đồ tuần tự gửi phản hồi cho ứng dụng

Trang 53

2.2.1.4 Biểu đồ lớp

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 42: Biểu đồ lớp

2.2.1.5 Thiết kế cơ sở dữ liệu

a) Biểu đồ lớp chi tiết

Hình 43: Biểu đồ lớp chi tiết

Trang 54

b) Quan hệ giữa các bảng cơ sở dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 44: Quan hệ giữa các bảng trong cơ sở dữ liệu

c) Chi tiết các bảng

- DinhMuc

Bảng 22: Bảng định mức

STT Tên Kiểu dữ liệu Chú thích Khóa

1 DinhMucID Int ID định mức Chính

Trang 55

2 TenDinhMuc nvarchar(50) Tên định mức

- LoaiMonAn

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 23: Loại món ăn

STT Tên Kiểu dữ liệu Chú thích Khóa

LoaiMonAnID Int ID loại món ăn Chính 1

- Vung

TenLoaiMonAn nvarchar(50) Tên loại món ăn 2

Bảng 24: Bảng Vùng

STT Tên Kiểu dữ liệu Chú thích Khóa

VungID Int ID vùng Chính 1

TenVung nvarchar(50) Tên định mức 2

VanHoa Ntext Văn hóa ẩm thực 3

HinhAnh nvarchar(1000) Đường dẫn hình ảnh 4

- XuatXu

Bảng 25: Xuất xứ

STT Tên Kiểu dữ liệu Chú thích Khóa

XuatXuID Int ID xuất xứ Chính 1

VungID Int ID vùng 2

TenXuatXu nvarchar(50) Tên xuất xứ 3

VanHoa ntext Văn hóa ẩm thực 4

- NguyenLieu

HinhAnh nvarchar(1000) Đường dẫn hình 5 ảnh

Bảng 26: Nguyên liệu

STT Tên Kiểu dữ liệu Chú thích Khóa

NguyenLieuID int ID nguyên liệu Chính 1

Trang 56

TenNguyenLieu nvarchar(50) Tên nguyên liệu 2

- MonAn

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 27: Món ăn

STT Tên Kiểu dữ liệu Chú thích Khóa

MonAnID ID Món ăn Chính int 1

TenMonAn nvarchar(100) Tên món ăn 2

int XuatXuID ID xuất xứ 3

int LoaiMonAnID ID loại món ăn 4

int DinhMucID ID định mức 5

int SoNguoiAn Số người ăn 6

int ThoiGianChuanBi Thời gian chuẩn bị 7

int ThoiGianNau Thời gian nấu 8

ntext GioiThieu Giới thiệu 9

ntext CongThuc Công thức 10

ntext GhiChu Ghi chú 11

YeuThich boolean Yêu thích 12

- MonAn_NguyenLieu

HinhAnh nvarchar(200) Hình ảnh 13

Bảng 28: Món ăn Nguyên liệu

STT Tên Kiểu dữ liệu Chú thích Khóa

MonAnID int ID món ăn Chính 1

- HenGio

NguyenLieuID int ID nguyên liệu Chính 2

Bảng 29: Hẹn giờ

STT Tên Kiểu dữ liệu Chú thích Khóa

HenGioID int ID nhắc nhở Chính 1

MonAnID int ID món ăn 2

ThoiGianHenGio nvarchar(50) Thời gian nhắc nhở 3

Trang 57

NoiDungHenGio Nvarchar(Max) 4 Nội dung hẹn giờ nấu ăn

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

2.2.2 Phân tích và thiết kế Web Server

2.2.2.1 Web admin

a) Sơ đồ usecase

Hình 45: Sơ đồ usecase web admin

b) Đặc tả usecase

- Đăng nhập

Bảng 30: Mô tả usecase đăng nhập

Thuộc tính Mô tả

Tác nhân Admin

Điều kiện trước

Điều kiện sau Chuyển đến trang quản lý dữ liệu

Mô tả

Admin nhập UserName & Password, click button [Login]. Hệ thống kiểm tra nếu UserName & Password hợp lệ thì chuyển đến trang quản lý dữ liệu. Nếu sai hiển thị thông báo

Kịch bản Hành động của tác nhân Hành động của hệ thống

Kiểm tra UserName & Password

Nhập UserName & Password, click button [Login]

Trang 58

Nếu hợp lệ thì chuyển đến trang quản lý dữ liệu. Nếu sai hiển thị thông báo

- Thêm dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 31: Mô tả usecase thêm dữ liệu

Thuộc tính Mô tả

Tác nhân Admin

Điều kiện trước Đăng nhập thành công

Điều kiện sau Thêm dữ liệu vào cơ sở dữ liệu

Mô tả

Admin nhập thông tin cho dữ liệu muốn thêm, click button [Thêm]. Hệ thống kiểm tra nếu thông tin hợp lệ thì thêm vào cơ sở dữ liệu, hiển thị thông báo nếu dữ liệu không hợp lệ

Kịch bản Hành động của tác nhân Hành động của hệ thống

Kiểm tra thông tin nhập vào

Nhập thông tin cho dữ liệu muốn thêm, click button [Thêm]

- Sửa dữ liệu

Nếu thông tin hợp lệ thì thêm vào cơ sở dữ liệu, hiển thị thông báo nếu dữ liệu không hợp lệ

Bảng 32: Mô tả usecase sửa dữ liệu

Thuộc tính Mô tả

Tác nhân Admin

Điều kiện trước Đăng nhập thành công

Điều kiện sau Lưu dữ liệu đã chỉnh sửa vào cơ sở dữ liệu

Mô tả

Admin chọn dữ liệu muốn chỉnh sửa. Điền thông tin, click button [Sửa]. Hệ thống kiểm tra nếu thông tin hợp lệ thì thêm vào cơ sở dữ liệu, hiển thị thông báo nếu dữ liệu không hợp lệ

Kịch bản Hành động của tác nhân Hành động của hệ thống

Chọn dữ liệu muốn chỉnh sửa Hiển thị thông tin của dữ liệu

Trang 59

Chỉnh sửa thông tin, click button [Sửa] Nếu thông tin hợp lệ thì cập nhật vào cơ sở dữ liệu, hiển thị thông báo nếu dữ liệu không hợp lệ

- Xóa dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 33: Mô tả usecase xóa dữ liệu

Thuộc tính Mô tả

Tác nhân Admin

Điều kiện trước Đăng nhập thành công

Điều kiện sau Xóa dữ liệu khỏi cơ sở dữ liệu

Mô tả Admin chọn dữ liệu cần xóa, click button [Xóa]. Hệ thống xóa dữ liệu khỏi cơ sở dữ liệu

Kịch bản Hành động của tác nhân Hành động của hệ thống

- Xem dữ liệu

Xóa dữ liệu khỏi cơ sở dữ liệu Chọn dữ liệu cần xóa, click button [Xóa]

Bảng 34: Mô tả usecase xem dữ liệu

Thuộc tính Mô tả

Tác nhân Admin

Điều kiện trước Đăng nhập thành công

Điều kiện sau Xem dữ liệu được load lên từ cơ sở dữ liệu

Mô tả

Admin chọn dữ liệu cần xem, click vào dữ liệu cần xem. Hệ thống sẽ load dữ liệu người dùng muốn xem từ cơ sở dữ liệu lên và hiển thị ra màn hình.

Kịch bản Hành động của tác nhân Hành động của hệ thống

c) Biểu đồ hoạt động

Trang 60

Click vào dữ liệu cần xem Load thông tin người dùng muốn xem từ cơ sở dữ liệu lên và hiển thị ra màn hình.

- Đăng nhập

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 46: Biểu đồ hoạt động đăng nhập

- Xem dữ liệu

Hình 47: Biểu đồ hoạt động xem dữ liệu

Trang 61

- Thêm dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 48: Biểu đồ hoạt động thêm dữ liệu

- Sửa dữ liệu

Hình 49: Biểu đồ hoạt động sửa dữ liệu

Trang 62

- Xóa dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 50: Biểu đồ hoạt động xóa dữ liệu

d) Sơ đồ tuần tự

- Đăng nhập

Hình 51: Biểu đồ tuần tự đăng nhập

- Xem dữ liệu

Hình 52: Biểu đồ tuần tự xem dữ liệu

Trang 63

- Thêm dữ liệu

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 53: Biểu đồ tuần tự thêm dữ liệu

- Xóa dữ liệu

Hình 54: Biểu đồ tuần tự xóa dữ liệu

- Sửa dữ liệu

Hình 55: Biểu đồ tuần tự sửa dữ liệu

Trang 64

2.2.2.2 Sơ đồ lớp

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 56: Sơ đồ lớp web admin

2.2.2.3 Thiết kế cơ sở dữ liệu

a) Sơ đồ lớp chi tiết

Hình 57: Sơ đồ lớp chi tiết web admin

Trang 65

b) Thiết kế các bảng cơ sở dữ liệu

Cơ sở dữ liệu của Web server giống với cơ sở dữ liệu của ứng dụng android, ngoài ra có thêm 2 bảng: bảng User và bảng RateAndBinhLuan, bảng User để chứa tài khoản của người dùng quản trị website và bảng RateAndBinhLuan để chứa phản hồi từ phía người dùng.

- Bảng User

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Bảng 35: user

STT Tên Kiểu dữ liệu Chú thích Khóa

UserID int ID User Chính 1

UserName nvarchar(50) Tên đăng nhập 2

- RateAndBinhLuan

Password nvarchar(50) Mật khẩu 3

Bảng 36: RateAndBinhLuan

STT Tên Kiểu dữ liệu Chú thích Khóa

RateID int ID món ăn Chính 1

MonAnID int ID nguyên liệu Ngoại 2

SoDiemRate int 3 Số điểm người dùng chấm

Bảng 1:

Bảng RateAndBinhLuan

Trang 66

BinhLuan Nvarchar(Max) 4 Lời bình luận của người dùng

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

CHƯƠNG 3.

TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

3.1 KẾT QUẢ

3.1.1 Kết quả triển khai Web Service

Hình 58: Dữ liệu Json trả về từ Web Service

3.1.2 Kết quả triển khai Web Admin

Hình 59: Đăng nhập

Trang 67

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 60: Quản lý món ăn

Hình 61: Thêm món ăn

Trang 68

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 62: Xem, sửa món ăn

Hình 63: Xóa món ăn

Trang 69

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 64: Quản lý loại món ăn

Hình 65: Thêm mới loại món ăn

Trang 70

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 66: Xem và sửa loại món ăn

Hình 67: Xóa loại món ăn

Trang 71

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 68: Quản lý vùng

Hình 69: Thêm mới vùng

Trang 72

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 70: Xem và sửa vùng

Hình 71: Quản lý xuất xứ

Trang 73

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 72: Thêm mới xuất xứ

Hình 73: Xem và sửa xuất xứ

Trang 74

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 74: Xóa xuất xứ

Hình 75: Quản lý nguyên liệu

Trang 75

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 76: Thêm mới nguyên liệu

Hình 77: Xem và sửa nguyên liệu

Trang 76

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 78: Xóa nguyên liệu

Hình 79: Quản lý bình luận

Trang 77

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

3.1.3 Kết quả triển khai ứng dụng trên di động

Hình 80: Màn hình main

Hình 81: Màn hình văn hóa ẩm thực

Trang 78

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 82: Màn hình dialog chọn vùng

Hình 83: Màn hình dialog chọn xuất xứ

Trang 79

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 84: Màn hình danh sách món ăn

Hình 85: Màn hình chi tiết món ăn

Trang 80

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 86: Màn hình chi tiết công thức món ăn

Hình 87: Màn hình ghi chú món ăn

Trang 81

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 88: Màn hình bình luận món ăn

Hình 89: Màn hình hẹn giờ nấu ăn

Trang 82

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 90: Màn hình danh sách yêu thích

Hình 91: Màn hình danh sách hẹn giờ

Trang 83

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Hình 92: Màn hình bình luận ứng dụng

Hình 93: Màn hình tìm kiếm món ăn

Trang 84

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

3.2 ĐÁNH GIÁ

3.2.1 Bảng đánh giá kết quả thực hiện

3.2.1.1 Ứng dụng trên điện thoại di động

Bảng 37: Bảng đánh giá kết quả thục hiện trên điện thoại di động

Chức năng Tình trạng Mô tả

Xem văn hóa ẩm thực Hoàn thành

Cập nhật dữ liệu Hoàn thành

Tìm kiếm món ăn Hoàn thành

Xem chi tiết món ăn Hoàn thành

Gửi phản hồi cho từng món ăn Hoàn thành

Tạo ghi chú cho từng món ăn Hoàn thành

Chỉnh sửa ghi chú cho từng món ăn Hoàn thành

Chia sẻ món ăn trên facebook Hoàn thành

Xem danh sách món ăn Hoàn thành

Thêm món ăn yêu thích Hoàn thành

Xóa món ăn yêu thích Hoàn thành

Hẹn giờ nấu ăn Hoàn thành

Chỉnh sửa hẹn giờ nấu ăn Hoàn thành

Xóa hẹn giờ nấu ăn Hoàn thành

3.2.1.2 Hệ thống Server

Gửi phản hồi về ứng dụng Hoàn thành

Bảng 38: Bảng đánh giá kết quả thực hiện trên hệ thống server

Chức năng Mô tả Tình trạng

Cơ sở dữ liệu Hoàn thành

Hoàn thành Web service cung cấp phương thức cho ứng dụng khai thác cập nhật cơ sở dữ liệu

Trang Web Admin quản lý hệ thống Hoàn thành

3.2.2 Những điều đạt được

Qua quá trình làm đồ án, em nhận được nhiều sự giúp đỡ từ giáo viên hướng dẫn, gia đình, bạn bè, không những tổng hợp lại được nhiều kiến thức quý báu mà còn học hỏi thêm được nhiều kiến thức mới có ích cho công việc sau này

Trang 85

3.2.2.1 Hệ thống Web server

- Thiết kế cơ sở dữ liệu.

- Xây dựng được nguồn cơ sở dữ liệu ẩm thực.

- Xây dựng thành công web service cung cấp dữ liệu cho ứng dụng hoạt động.

3.2.2.2 Ứng dụng trên điện thoại di động

- Tìm hiểu cấu trúc và viết ứng dụng trên nền tảng di động android.

- Các chức năng kết nối server hoạt động tốt.

- Các chức năng hoạt động ổn định, đáp ứng yêu cầu đề ra.

- Triển khai ứng dụng trên thiệt bị thật hoạt động tốt.

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

3.2.3 Những điều chưa đạt được

- Giao diện còn đơn giản, chưa hỗ trợ được nhiều loại màn hình.

- Ứng dụng chỉ trên một nền tảng di động.

- Nguồn dữ liệu ban đầu còn hạn chế.

- Chưa triển khai được web service trên thực tế.

3.3 HƯỚNG PHÁT TRIỂN

Kế thừa những kết quả đã đạt được, trong các phiên bản tiếp theo em sẽ khắc phục các nhược điểm hiện tại và cung cấp thêm một số tính năng nhằm hoàn thiện ứng dụng.

- Cải thiện giao diện thân thiện, bắt mắt hơn.

- Xây dựng kho cơ sở dữ liệu về món ăn phong phú hơn.

- Ứng dụng có thể tương thích với nhiều loại màn hình thiết bị.

- Cung cấp địa điểm và tích hợp thêm google map cho phép xem địa điểm nguồn

gốc của món ăn cho những người dùng có nhu cầu tìm hiểu thực tế.

- Từ Web service đã có, tiến hành phát triển ứng dụng trên các nền tảng khác

như Window phone, Ios.

- Triển khai web service trên môi trường thực tế.

Trang 86

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

TÀI LIỆU THAM KHẢO

[1]. Grant Allen - Beginning Android 4. 575 trang

[2]. Wei Meng Lee - Beginning Android Application Development 428

trang

[3]. Mark L. Murphy - The Busy Coders Guide to Android

Development(2011). 698 trang

Jason Morris - Android User Interface Development(2011). 304 trang

[4].

[5].

Trang web: http://www.vietnamandroid.com/

[6].

Trang web: http://www.codeproject.com/

[7].

Trang web: http://amthucbonmua.vn /

[8].

Trang web: http://www.tapchiamthuc.vn/

[9].

Trang web: http://monngonvietnam.vn/

[10]. Trang web: http://vi.wikipedia.org/

Trang 87

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

TÓM TẮT LUẬN VĂN TỐT NGHIỆP

Tên đề tài: Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

Tóm tăt nội dung luận văn tốt nghiệp:

- Bối cảnh: Nhằm phục vụ nhu cầu muốn tìm hiểu thêm về văn hóa ẩm thực của

người dùng. Tận dụng sự ngày càng phổ biến và tiện dụng của các điện thoại thông

minh ngày nay.

- Mục đích: Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động, một

Web service để cập nhật dữ liệu cho ứng dụng và một Web admin để nhập cơ sở dữ

liệu giúp cho dữ liệu ngày càng phong phú.

- Nhiệm vụ: Xây dựng ứng dụng trên điện thoại di động Android. Web service

bằng Java và Web admin được xây dựng bằng JSP Servlet

Giải quyết vấn đề:

- Tìm hiểu nhu cầu người dùng, tham khảo các trang web ẩm thực để đưa ra cơ

sở dữ liệu hợp lý.

- Tìm hiểu lập trình di động trên nền tảng Android.

- Xây dựng Web server gồm Web service và Web admin.

- Xây dựng ứng dụng trên điện thoại di động.

Trang 88

Xây dựng hệ thống trợ giúp ẩm thực trên điện thoại di động

PHỤ LỤC

Các công cụ phát triển

- Yêu cầu phần cứng

STT Tên Mô tả

Hệ điều hành máy tính Windows có cài jdk 1

- Yêu cầu phần mềm

Hệ điều hành di động Android 2.3 trở lên 2

STT Tên Mô tả

1 Eclipse tích hợp Android SDK Lập trình Android application

Eclipse J2EE 2 Lập trình Web service và Web admin

MS SQL Server 2008 Quản trị cơ sở dữ liệu 3

Microsoft Visio Phân tích thiết kế 4

Adobe Photoshop Chỉnh sửa ảnh 5

SQLite Manager 7 Quản trị cơ sở dữ liệu trên Android