CHƯƠNG 1: TỔNG QUAN 1. Tính cấp thiết của đề tài 1. Vấn đề đặt ra Ngày nay, cuộc sống càng hiện đại thì con người ngày càng bận rộn hơn. Các ứng dụng đặt hàng, giao đồ ăn ngày càng phổ biến khiến việc nấu ăn ngày một xa xỉ đối với giới trẻ, khi việc phải vắt óc suy nghĩ hôm nay ăn gì, mua nguyên liệu ở đâu, nấu như thế nào dường như là một chuyện vô cùng nặng nhọc, phiền hà.
Và việc đi ăn tiệm lại càng ngày càng có nhiều bất cập, an toàn vệ sinh thực phẩm luôn không được bảo đảm, giá cả món ăn đắt hơn so với thực tế cộng với thái độ phục vụ của nhân viên vẫn còn chưa ổn định. Tuy nhiên, rất nhiều người vẫn thích tự nấu ăn, có niềm đam mê với nấu nướng, luôn muốn được học thêm nhiều kinh nghiệm, công thức mới để thực hành khi có cơ hội hoặc chia sẻ chiến tích nấu ăn của mình với nhiều người khác để có thể giao lưu, kết bạn với nhau. Thực ra với thời đại công nghệ số, công việc vào bếp đã đơn giản hơn rất nhiều khi xung quanh là các loại máy móc hỗ trợ. Vì vậy, vấn đề đặt ra là chúng ta phải tổng hợp lại các công thức, tạo một nơi giao lưu, chia sẻ, kết bạn cho những người có cùng sở thích nấu nướng cũng như những người muốn vào bếp, học làm bếp,… thành một hội nhóm, mạng xã hội nho nhỏ đơn giản và dễ dàng truy cập.
Khảo sát hiện trạng Với thời đại công nghệ tiên tiến, việc vào bếp và nấu nướng đã trở nên khá dễ dàng. Chỉ cần có Internet, chúng ta có thể truy cập vào bất kì trang Web nấu nướng nào hoặc tải về các ứng dụng dạy nấu ăn trên điện thoại, các bước tiếp theo đương nhiên là chỉ cần làm theo hướng dẫn sẵn có. Tuy nhiên, độ chính xác của các công thức hiện diện đấy là bao nhiêu phần trăm? Chúng ta có thể tin cậy công thức đấy và các món ăn sẽ luôn được làm ra thành công chứ? Thật ra nấu ăn là một công việc gần như là thường xuyên, được thực hiện hằng ngày. Nhưng có vẻ các website về chủ đề nấu ăn trên thị trường Việt Nam lại khá ít: 1 do an 1.com (https://cookpad.
Bảng câu hỏi khảo sát Cookpad. Câu hỏi khảo sát Có/ Không Khác Bình luận về món ăn Có Theo kiểu đặt câu hỏi bài viết Thông báo, tin nhắn Có Tin nhắn từ hệ thống Video hướng dẫn Không Tạo thực đơn Có Thêm món ăn vào thực đơn Tính toán khẩu phần ăn theo số Không Nhưng cho biết số phần ăn người - Đánh giá ưu điểm: Giao diện thân thiện, đơn giản, dễ sử dụng. Có nhiều event nấu ăn được tổ chức thường xuyên. - Đánh giá nhược điểm: Độ tương tác giữa người dùng với nhau còn thấp.vn (https://www.vn 2 do an Bảng 1.
Bảng câu hỏi khảo sát Cooky.vn Câu hỏi khảo sát Có/ Không Khác Bình luận về món ăn Có Thông báo, tin nhắn Có Tin nhắn từ hệ thống Video hướng dẫn Có Tạo thực đơn Có Thêm món ăn vào thực đơn Tính toán khẩu phần ăn theo số Có Nhập vào số người để nhận số người lượng nguyên liệu cần dùng - Đánh giá ưu điểm: Giao diện sinh động. Độ tương tác giữa tác giả với người đọc cao nên bạn có thể đánh giá các công thức cũng như thảo luận về món ăn. Có nhiều event nấu ăn được tổ chức thường xuyên. - Đánh giá nhược điểm: Không có.com (https://candycancook.
Website CandyCanCook Bảng 1. Bảng câu hỏi khảo sát CandyCanCook.com Câu hỏi khảo sát Có/ Không Khác Bình luận về món ăn Có Thông báo, tin nhắn Có Tin nhắn từ hệ thống Video hướng dẫn Có Tạo thực đơn Có Thêm món ăn vào thực đơn 3 do an Tính toán khẩu phần ăn theo số Có Nhập vào số người để nhận số người lượng nguyên liệu cần dùng - Đánh giá ưu điểm: giao diện sinh động. Giao diện rất dễ nhìn, rõ ràng và sinh động. Nhiều món ăn đa dạng đến từ các nước khác nhau trên trang web này.
- Đánh giá nhược điểm: độ tương tác không cao giữa các người đọc. Nhìn chung, các trang web không có sự khác biệt nhiều về chức năng. Mỗi website đều hướng đến đối tượng người dùng khác nhau nhưng đều chú trọng vào độ đơn giản nhưng sinh động trên giao diện. Những trang web này chú trọng tối ưu tốc độ duyệt web rất tốt cho trải nghiệm người dùng.
Hướng giải quyết Để đáp ứng nhu cầu về việc gợi ý một bữa ăn hợp lý cũng như thỏa mãn nhu cầu giao lưu kết bạn của giới trẻ mà “Cookgram” ra đời. Với trang “Cookgram” không những là nơi giao lưu, kết bạn mà còn là nơi giúp các bạn trẻ có thể chia sẻ với nhau niềm yêu thích nấu ăn, các bí kíp nấu ăn nhanh, tiết kiệm thời gian mà lại đầy đủ dinh dưỡng, ngon như mẹ nấu,… Để việc nấu nướng không còn là nổi ám ảnh. Ngoài ra “Cookgram” còn dành cho các mẹ nội trợ, mẹ bỉm sữa, những người luôn mong muốn có một bữa cơm đầy đủ cho cho gia đình mình mà không phải mất quá nhiều thời gian việc suy nghĩ: Hôm nay ăn gì? 1. Mục tiêu đề tài - Áp dụng ngôn ngữ và công nghệ Ruby on Rails trong lập trình Web application.
- Nắm bắt những nghiệp vụ cần có khi triển khai xây dựng website, đặc biệt là mô hình mạng xã hội. - Phân tích, thiết kế và xây dựng ứng dụng web chia sẻ công thức nấu ăn dành cho những người dùng yêu thích và muốn học hỏi nấu ăn. - Tìm hiểu và tích hợp các công nghệ machine learning, chatbot vào để hỗ trợ website. Đối tượng nghiên cứu - Ngôn ngữ ruby và framework ruby on rails.
CHƯƠNG 2: YÊU CẦU HỆ THỐNG 2. Yêu cầu người dùng Bảng 2. Yêu cầu người dùng STT Tiêu đề User story 1. Web Application Ứng dụng web hỗ trợ người dùng có thể: - Tìm kiếm món ăn.
- Chia sẻ công thức nấu ăn. - Tương tác bài viết (Yêu thích, chia sẻ và đánh giá). - Tương tác người dùng (Theo dõi người dùng). - Quản lý lượt tương tác, hành vi người dùng.
API Sever - Hỗ trợ kênh đăng nhập khác cho người dùng. Yêu cầu hệ thống 2. Yêu cầu chức năng 2. Actor STT Actor Chi tiết 1.
Guest (Khách) Người dùng ẩn danh truy cập vào website, không đăng nhập. User (Người dùng) Người dùng đã đăng ký và đăng nhập vào hệ thống. Admin (Người quản lý) Người giữ vai trò quản lý, theo dõi các hoạt động của website. Đặc tả chức năng actor 2.
Chức năng actor Guest STT Chức năng Mô tả 1. Guest sử dụng email để đăng ký tài khoản. Sau khi đăng ký thành công người dùng sẽ được chuyển tới homepage. Tìm kiếm món ăn Nhập tên món ăn hoặc nguyên liệu ở thanh tìm kiểm để tìm món ăn.
Xem danh sách món ăn Món ăn mới nhất được hiện thị trên trang chủ cho người xem và món ăn của follower nếu user đã đăng nhập. Xem chi tiết món ăn Người dùng chọn một món ăn để hiển thị thông tin về món ăn đó. Chức năng actor User STT Chức năng Mô tả 1. Đăng nhập Đăng nhập bằng tài khoản email đã được đăng ký thành công.
Đăng xuất Đăng xuất tài khoản khỏi hệ thống. Quên mật khẩu User sẽ nhập email của tài khoản. Sau đó vào mail xác nhận để đổi mật khẩu. Quản lý tài khoản User có thể thực hiện các tác vụ: - Sửa thông tin cá nhân.
- Đổi mật khẩu. Bình luận User nhập nội dung và đăng tải bình luận trên bài viết của món ăn đang xem. Đánh giá Chọn số sao ứng với cảm nhận của user. Thêm follower User có thể theo dõi.
Quản lí follower User có thể xem danh sách đang được theo dõi và hủy theo dõi user khác. Quản lý bài viết User có thể thực hiện các tác vụ: - Sửa thông tin bài viết. Quản lý bookmark User có thể thực hiện các tác vụ: - Lưu thông tin bài viết. Thông báo Thông báo cho user khi có hoạt động mới từ người dùng khác.
Chức năng actor Admin STT Chức năng Mô tả 1. Xem trang quản lí admin Người dùng phải có role admin. Chứa các tính năng quản lý của admin 2. Quản lý bài viết món ăn Admin có thể thực hiện các tác vụ CRUD bài viết món ăn.
Quản lý người dùng Admin có thể thực hiện các tác vụ CRUD tài khoản người dùng. Usecase Diagram Hình 2. Usecase diagram tổng quát 7 do an 2. Usecase User Hình 2.
Usecase của actor User 8 do an 2. Usecase Guest Hình 2. Usecase của actor Guest 2. Usecase Admin Hình 2.
Usecase của actor Admin 9 do an 2. Danh sách usecase Bảng 2. Bảng danh sách các use case STT Tên use case Usecase ID 1. Đăng nhập UC001a 2.
Đăng xuất UC001b 3. Quên mật khẩu UC003 5. Xen danh sách món ăn UC004 6. Xem chi tiết món ăn UC005 7.
Bình luận UC006 8. Quản lý tài khoản UC007 9. Quản lý bookmark UC008 10. Quản lý follow UC009 11.
Đánh giá món ăn UC0010 12. Quản lý món ăn của user UC0011a 13. Quản lý món ăn của admin UC0011b 14. Quản lý user UC0012 2.
Đặc tả chi tiết usecase 2.Đăng nhập Bảng 2. Mô tả usecase UC001a.Đăng nhập Usecase Đăng nhập Usecase ID UC001.1 Mô tả Kiểm tra và xác thực vai trò người dùng. Tác nhân kích hoạt User, Admin Tiền điều kiện Tồn tại tài khoản Các bước thực hiện Bước 1: Vào màn hình đăng nhập hoặc trang chủ Bước 2: Nhập Username/Email và Mật khẩu Bước 3: Nhấn button Đăng nhập Bước 4: Nếu thành công sẽ chuyển tới trang chủ. Nếu thất bại sẽ quay lại bước chuyển tới màn hình đăng nhập.Đăng xuất Bảng 2.
Mô tả usecase UC001b.Đăng xuất Usecase Đăng xuất Usecase ID UC001.2 Mô tả Người dùng đăng xuất tài khoản ra khỏi hệ thống và 10 do an trình duyệt. Tác nhân kích hoạt User, Admin Tiền điều kiện Đã tiến hành đăng nhập vào website Các bước thực hiện Bước 1: Click vào button user, tùy chọn đăng xuất sẽ hiện ra từ menu dropdown. Bước 2: Người dùng được chuyển về trang chủ sau khi đăng xuất. Mô tả usecase UC002.Đăng ký Usecase Đăng ký Usecase ID UC002 Mô tả Đăng ký tài khoản để đăng nhập vào website Tác nhân kích hoạt Guest Tiền điều kiện Không có Các bước thực hiện Bước 1: Vào trang chủ Bước 2 :Click vào button Tạo tài khoản để vào màn hình đăng ký.
Bước 3: Nhập thông tin (Tên của bạn, Username, Email, Mật khẩu, Xác nhận Mật khẩu) Bước 4: Click button Đăng ký để hoàn thành việc đăng ký tài khoản Bước 5: Nếu đăng ký thành công sẽ được chuyển đến trang chủ. Nếu thất bại thì quay lại bước 3.Quên mật khẩu Bảng 2. Mô tả usecase UC003.