HappyCook sẽ truyền cảm hứng, niềm đam mê với nấu ăn đến mọi người. Đối với người dùng: - Người dùng có thể đăng nhập vào hệ thống bằng email và mật khẩu,đăng xuất, thay đổi thông tin,…
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2Thành viên Phân công công việc:
Tham gia lập trình cài đặt ứng dụng
Tham gia làm Figma thiết kế UI
100%
Trang 3Tham gia làm Figma thiết kế UI.
Tham gia lập trình cài đặt ứng dụng
Tham gia làm Figma thiết kế UI
Tham gia lập trình triển khai ứng dụng
100%
Đánh giá thành viên:
Trang 4Họ và tên Tự đánh giá Nhóm đánh giá Giảng viên đánh giá
Trang 5MỤC LỤC
MỤC LỤC 4
LỜI MỞ ĐẦU 6
PHẦN 1: TỔNG QUAN ĐỀ TÀI 7
I Thực trạng 7
II Mô tả bài toán 7
III Mục tiêu 8
IV Đối tượng và phạm vi sử dụng 8
V Các tác nhân liên quan đến ứng dụng 9
VI Sơ đồ phân rã chức năng 10
PHẦN 2: PHÂN TÍCH HỆ THỐNG 11
I Sơ đồ Use case tổng quát 11
II Đặc tả use case, Activities Diagram 12
1 Khách 12
2 Người dùng 13
3 Quản trị viên 46
III Domain Model 54
IV Robustness Diagram 55
1 Khách 55
2 Người dùng 55
3 Quản trị viên 69
PHẦN 3: THIẾT KẾ HỆ THỐNG 73
I Các lớp Boundary, Control, Entity 73
1 Các lớp Boundary 73
2 Các lớp Control 73
3 Các lớp Entity 73
II Class Diagram 74
1 Class Diagram 74
2 Mô tả Class Diagram 75
Trang 6III Giao diện UI 90
1 Khách 90
2 Người dùng 91
3 Quản trị viên 105
IV Sequence Diagram 109
1 Khách 109
2 Người dùng 110
3 Quản trị viên 124
PHẦN 4: CÀI ĐẶT, TRIỂN KHAI HỆ THỐNG 128
I Cài đặt cơ sở dữ liệu 128
II Cài đặt lớp điều khiển 128
III Cài đặt lớp boundary 128
TÀI LIỆU THAM KHẢO 129
LỜI CẢM ƠN 130
Trang 7LỜI MỞ ĐẦU
Ngày nay, với sự phát triển như vũ bão của mình, công nghệ thông tin đã
và đang đóng vai trò quan trọng trong mọi mặt đời sống của con người Giờ đây,gần như ai cũng có thể tiếp cần Internet bằng các thiết bị thông minh như điệnthoại, laptop, … Đây là một thay đổi lớn khi mọi người có thể kết nối đếnInternet mọi lúc, mọi nơi, và theo đó, các nền tảng mạng xã hội đã ra đời Theo
xu thế đó, nhóm em quyết định làm một ứng dụng hoạt động giống mô hìnhmạng xã hội, mang tên “HappyCook”
Ứng dụng “HappyCook” là một mạng xã hội cho mọi người có thể chia sẻnhững món ăn mà họ yêu thích, tham khảo những món ăn từ những người bạn,tìm kiếm các món ăn với đa dạng các công thức được chia sẻ từ mọi người trongmạng xã hội, từ đó người dùng sẽ tìm được sự thú vị cũng như là niềm vui trongviệc nấu nướng, cũng như có thể tự mình đăng tải các món ăn theo cách nấu của
họ cho mọi người có thể tham khảo
Trang 8PHẦN 1: TỔNG QUAN ĐỀ TÀI
I Thực trạng
Xã hội càng phát triển kéo theo đời sống, chất lượng sống của con ngườingày càng cao, và sự bận rộn của con người cũng tăng lên Chất lượng cuộcsống tốt hơn khiến chúng ta chăm chút đến đời sống sinh hoạt hàng ngày hơnđặc biệt là việc ăn uống của bản thân Vì vậy, việc lên mạng lướt tìm các món ăndường như đã trở thành việc thiết yếu trước khi bắt đầu nấu
II Mô tả bài toán
Bạn là người đam mê nấu ăn nhưng lại không có thời gian đến các lớpdạy nấu ăn để học Bạn muốn nấu một bữa cơm ngon, đủ dinh dưỡng và an toàncho các thành viên trong gia đình Bạn đang đau đầu muốn thay đổi thực đơnthường xuyên cho gia đình nhưng không biết làm như nào Bạn luôn bận rộn vớicông việc và không biết hôm nay ăn gì Hãy để “HappyCook” giúp bạn giảiquyết những vấn đề đó Ứng dụng “HappyCook” sinh ra để giải quyết nhữngvấn đề trong công cuộc nội trợ của mọi người
Với HappyCook, người dùng dễ dàng tìm kiếm các món ăn với đa dạngcác công thức chế biến khác nhau được chia sẻ từ mọi người trong mạng xã hội.Cùng một nguyên liệu nhưng sẽ có các cách chế biến khác nhau giúp ngườidùng có thể học được các món mới ngon và lạ, kích thích vị giác
Danh sách món ăn phong phú giúp người dùng có thể thay đổi thực đơncho gia đình, đảm bảo bữa cơm có sự mới mẻ
Nếu bạn là một người đam mê nấu ăn, không ngừng sáng tạo và muốnchia sẻ đến cho mọi người thì HappyCook cũng cho phép người dùng chia sẻnhững món ăn mà họ yêu thích, hay đăng tải các món ăn của mình
Ứng dụng còn chú trọng vấn đề an toàn trong công thức nấu ăn, tiết kiệmthời gian rất thích hợp cho những người bận rộn công việc mà vẫn có nhữngmón ăn mới lạ, hấp dẫn
Trang 9HappyCook sẽ truyền cảm hứng, niềm đam mê với nấu ăn đến mọi người.
Đối với người dùng:
- Người dùng có thể đăng nhập vào hệ thống bằng email và mật khẩu,đăng xuất, thay đổi thông tin,…
- Hệ thống cho phép người dùng tìm kiếm món ăn, chia sẻ, đăng tải cácmón ăn lên hệ thống, like, comment các bài viết, lưu những món ăn ưa thích,follow hay unfollow người đăng món ăn,…
- Khi người dùng muốn xoá tài khoản, hệ thống sẽ để treo tài khoản trong
15 ngày Sau 15 ngày, người dùng không dùng tài khoản đó đăng nhập vào hệthống sẽ bị xoá
Đối với quản trị viên:
- Quản trị viên có thể thêm hoặc xoá thành viên ra khỏi hệ thống
- Nhận phản hồi từ phía người dùng và xử lý sai phạm nếu có
IV Đối tượng và phạm vi sử dụng
Về đối tượng, ứng dụng nhắm đến những người bận rộn hàng ngày vớicông việc, nên thời gian dành cho việc nấu nướng bị hạn chế Họ có thể lànhững người nội trợ trong gia đình, hay những người đọc thân đang sống một
Trang 10mình,… Họ có thể dạo một vòng trên ứng dụng, lựa chọn món yêu thích, chếbiến chúng theo các công thức mà người dùng chia sẻ Hoặc họ là những người
có niềm đam mê với nấu ăn, muốn chia sẻ kinh nghiệm của mình đến nhữngngười khác
Về phạm vi, cả mọi người ở mọi nơi đều có thể sử dụng được ứng dụngnày, miễn rằng họ có kết nối Internet và một thiết bị thông minh bên mình
V Các tác nhân liên quan đến ứng dụng
- Khách, người dùng tiềm năng (người chưa đăng ký tài khoản): Đăng kýtài khoản để trở thành người dùng (thành viên) của hệ thống
- Người dùng: Là người đã đăng kí tài khoản, truy cập vào ứng dụng để sửdụng các tính năng của ứng dụng
- Quản trị hệ thống: Là người điều hành, quản lý hệ thống
Trang 11VI Sơ đồ phân rã chức năng
HappyCook
Trang 12PHẦN 2: PHÂN TÍCH HỆ THỐNG
I Sơ đồ Use case tổng quát
Trang 13II Đặc tả use case, Activities Diagram
1 Khách hàng chọn “Đăng ký” trên màn hình đăng nhập
2 Điền thông tin (email, password, xác nhận lại password)
3 Hệ thống tiền hành tạo tài khoản mới và gửi email xác thực
Trang 144 Người dùng kiểm tra email và nhấn link xác thực trong mail.
Hậu điều kiện Khách trở thành người dùng và có tài khoản mới
Ngoại lệ
(Variatation)
- Không tiếp tục quá trình đăng ký
- Tài khoản đã tồn tại
Biến thể
(Exception)
- Lỗi kết nối tới máy chủ
- Lỗi xảy ra trong quá trình đăng nhập của máy chủ
2 Người dùng
a) Đăng nhập
Tên Use Case Đăng nhập
Mục tiêu Người dùng muốn đăng nhập để sử dụng ứng dụng
Tiền điều kiện Người dùng đã có tài khoản và chưa đăng nhập vào hệ
Trang 153 Hiển thị giao diện chính của ứng dụng.
Hậu điều kiện Người dùng truy cập vào ứng dụng thành công
- Lỗi kết nối tới máy chủ
- Lỗi xảy ra trong quá trình đăng nhập của máy chủ
b) Quên mật khẩu
Trang 16Tên Use Case Quên mật khẩu
3 Mở liên kết đã gửi về email đăng ký
4 Thiết lập một mật khẩu mới
5 Thông báo lấy lại mật khẩu thành công
Hậu điều kiện Mật khẩu mới được thiết lập
Ngoại lệ
(Variatation)
- Huỷ quá trình quên mật khẩu
- Không mở link xác thực được gửi về
Biến thể
(Exception) - Không nhận được link xác nhận về email
Trang 17c) Đổi mật khẩu
Tên Use Case Đổi mật khẩu
Actor Người dùng
Mục tiêu Người dùng muốn đổi mật khẩu
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng vào tab Profile trên giao diện chính
2 Chọn “Cài đặt tài khoản” và chọn “Đổi mật khẩu”
3 Nhập mật khẩu cũ vào form
4 Nhập mật khẩu mới vào form và xác nhận mật khẩu mới
(Exception) Lỗi kết nối.
Trang 18d) Đăng xuất
Tên Use Case Đăng xuất
Mục tiêu Người dùng muốn đăng xuất khỏi ứng dụng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Trang 19Ngoại lệ
(Variatation)
Người dùng đóng hộp thoại xác nhận đăng xuất hoặc chọn
“không” trong hộp thoại đó
Biến thể
(Exception)
e) Xóa tài khoản
Tên Use Case Xóa tài khoản
Actor Người dùng
Mục tiêu Người dùng muốn xoá tài khoản
Tiền điều kiện Dành cho người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng vào tab Profile từ màn hình chính
2 Chọn “Cài đặt tài khoản” và chọn “Xoá tài khoản”
3 Người dùng nhập mật khẩu trên hộp thoại xác nhận và bấm “Có”
4 Hệ thống thông báo tài khoản đã được treo trong 15
Trang 20ngày và đồng thời quay lại màn hình đăng nhập.
Hậu điều kiện Tài khoản người dùng được treo trong 15 ngày, nếu không
đăng nhập lại trong 15 ngày tài khoản sẽ bị xoá
Ngoại lệ
(Variatation)
- Người dùng nhập sai mật khẩu
- Chọn “Huỷ” trên hộp thoại xác nhận
- Người dùng đăng nhập lại trong 15 ngày treo tài khoản.Biến thể
(Exception) Lỗi kết nối
f) Cập nhật thông tin
Tên Use Case Cập nhật thông tin
Actor Người dùng
Trang 21Mục tiêu Người dùng muốn cập nhật thông tin.
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng vào tab Profile
2 Chọn “Cài đặt tài khoản” và chọn “Cập nhật thông tin”
3 Nhập thông tin vào các trường cần cập nhật hoặc cập nhật ảnh đại diện
4 Chọn lưu thông tin
Hậu điều kiện Thông tin mới được lưu lại
Trang 22g) Đăng tải món ăn
Tên Use Case Đăng món ăn
Actor Người dùng
Mục tiêu Người dùng muốn đăng tải món ăn của họ lên
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Trang 23Mục tiêu Người dùng tìm kiếm những món ăn mình cần.
Tiền điều kiện Người dùng đă đăng nhập vào hệ thống
Luồng hoạt động
- Người dùng chọn “Tìm kiếm theo món ăn” trên trang tìm kiếm
- Người dùng nhập thông tin món cần tìm kiếm
- Người dùng nhấn nút tìm kiếm để bắt đầu quá trình tìm kiếm
Hậu điều kiện - Kết quả được hiện ra với người tìm kiếm
Variations - Không tồn tại món ăn cần tìm
Exceptions
Trang 24i) Xem chi tiết món ăn
Tên Use Case Xem chi tiết món ăn
Actor Người dùng
Mục tiêu Người dùng xem thông tin chi tiết về món ăn
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt động - Người dùng nhấn chọn món từ một chỗ nào đó, chẳng hạn
từ kết quả tìm kiếm
Hậu điều kiện - Thông tin chi tiết về món ăn như tên món, like, bình luận,
nguyên liệu, các bước và hình ảnh minh họa được hiện ra.Variations - Không tồn tại món cần xem trong hệ thống
Exceptions - Lỗi kết nối
Trang 25j) Xoá món ăn đã tạo
Tên Use Case Xoá món ăn đã tạo
Actor Người dùng
Mục tiêu Xoá món ăn mà người dùng đã đăng tải
Tiền điều kiện Món ăn đã đăng tải lên hệ thống và được lưu trong CSDL
Luồng hoạt
động
1 Người dùng vào tab Profile
2 Chọn danh sách món ăn đã tạo
3 Chọn xem chi tiết món ăn cần xoá
4 Chọn “Xoá”
5 Hộp thoại xác nhận hiện lên, chọn “Ok”
Hậu điều kiện Thông tin món ăn được xoá trên hệ thống và dữ liệu được
xoá khỏi CSDLNgoại lệ - Người dùng chọn “Huỷ” trên hộp thoại xác nhận
Trang 26Mục tiêu Sửa món ăn mà người dùng đã đăng tải.
Tiền điều kiện Món ăn đã đăng tải lên hệ thống và được lưu trong CSDL
Luồng hoạt
động
1 Người dùng vào tab Profile
2 Chọn danh sách món ăn đã tạo
Trang 28Biến thể
(Exception) Lỗi kết nối tới CSDL
m) Xoá món ăn đã lưu
Tên Use Case Xoá món ăn đã lưu
Actor Người dùng
Mục tiêu Người dùng xoá món ăn đã lưu khỏi danh sách.Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động 1 Người dùng chọn tab Profile.
2 Chọn danh sách món ăn đã lưu
Trang 293 Hiển thị giao diện các món ăn đã lưu.
4 Người dùng chọn xem chi tiết món ăn cần lưu
5 Click “bỏ lưu” món ănHậu điều kiện Món ăn bị xoá khỏi danh sách món ăn đã lưu.Ngoại lệ
Trang 30Actor Người dùng
Mục tiêu Xem món ăn đã lưu trong danh sách
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng chọn tab Profile
2 Chọn danh sách món ăn đã lưu
3 Hiển thị giao diện danh sách các món ăn đã lưu
4 Người dùng chọn xem chi tiết món ăn đã lưu
Hậu điều kiện Trả về danh sách những món ăn mà người dùng đã lưuNgoại lệ
(Variatation) - Người dùng chưa lưu món ăn nào.
Biến thể
(Exception) Lỗi kết nối tới CSDL
o) Xem danh sách món ăn đã tạo
Trang 31Tên Use Case Xem danh sách món ăn đã tạo
Actor Người dùng
Mục tiêu Xem danh sách món ăn đã tạo
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng chọn tab Profile
2 Chọn danh sách món ăn đã tạo
3 Hiển thị giao diện danh sách các món ăn đã tạo
Hậu điều kiện Trả về danh sách những món ăn mà người dùng đã tạo.Ngoại lệ
(Variatation) - Người dùng chưa tạo món ăn nào.
Mục tiêu Người dùng like món ăn mình thích
Tiền điều kiện Người dùng chưa thích món ăn
Luồng hoạt Người dùng bấm vào biểu tượng “thích”(Trái tim không
Trang 32động màu) bên trong chi tiết món ăn đó.
Hậu điều kiện Bài viết được hệ thống cập nhật lượt thích
Mục tiêu Người dùng bỏ thích món ăn
Tiền điều kiện Người dùng đã thích món ăn
Trang 33r) Bình luận món ăn
Tên Use Case Bình luận món ăn
Mục tiêu Người dùng bình luận món ăn
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Người dùng vào xem chi tiết món ăn và kéo xuống phần bình luận
2 Nhập nội dung vào phần bình luận
3 Chọn biểu tượng máy bay (đăng lên hệ thống)Hậu điều kiện Phần bình luận của người dùng hiển thị dưới bài viết đóNgoại lệ
(Variatation)
Biến thể
(Exception) - Lỗi kết nối tới máy chủ.
Trang 34s) Xóa bình luận
Tên Use Case Xoá bình luận
Actor Người dùng
Mục tiêu Xoá bình luận mình đã bình luận trước đó
Tiền điều kiện Người dùng đã bình luận
Luồng hoạt
động
1 Chọn bình luận cần xoá
2 Chọn “Xoá”
3 Hệ thống yêu cầu xác nhận, chọn “OK” để xoá
Hậu điều kiện Bình luận được xoá thành công
Trang 35t) Báo cáo món ăn
Tên Use Case Báo cáo món ăn
Actor Người dùng
Mục tiêu Báo cáo món ăn với quản trị viên của hệ thống
Tiền điều kiện Món ăn có tồn tại
Luồng hoạt
động
1 Xem món ăn cần báo cáo
2 Chọn “Báo cáo với quản trị viên”
3 Hệ thống yêu cầu xác nhận, chọn “OK” để báo cáo.Hậu điều kiện Báo cáo được gửi đến quản trị viên để xử lý
Trang 36Tên Use Case Báo cáo bình luận
Actor Người dùng
Mục tiêu Báo cáo bình luận tới quản trị viên của hệ thống
Tiền điều kiện
Luồng hoạt
động
1 Xem bình luận cần báo cáo
2 Chọn “Báo cáo với quản trị viên”
3 Hệ thống yêu cầu xác nhận, chọn “OK” để báo cáo.Hậu điều kiện Báo cáo được gửi đến quản trị viên để xử lý
Trang 37Mục tiêu - Người dùng có thể theo dõi được người dùng khác
Tiền điều kiện Người dùng chưa theo dõi mục tiêu theo dõi
Trang 39Tiền điều kiện Món ăn phải sẵn sàng (vẫn tồn tại hoặc ở người dùng có
quyền truy cập) tại thời điểm chia sẻ
Luồng hoạt
động
1 Người dùng đang xem chi tiết món ăn
2 Người dùng nhấn nút “Chia sẻ”
3 Ứng dụng hiển thị link chia sẻ
Hậu điều kiện Món ăn được chia sẻ và xem thông qua link được tạoNgoại lệ
(Variatation)
Biến thể
Trang 41(Variatation) - Phản hồi trống do người dùng không nhập hợp lệ
Biến thể
(Exception)
aa) Xem thông báo
Tên Use Case Xem thông báo
1 Vào tab Thông báo
2 Thông báo sẽ được hiển thị cho người dùngHậu điều kiện Người dùng xem được các thông báo liên quan đến mìnhNgoại lệ
(Variatation)
Biến thể
(Exception)
Trang 42bb) Xem trang cá nhân người dùng
Tên Use Case Xem trang cá nhân người dùng
Mục tiêu Người dùng xem trang cá nhân người dùng khác
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Luồng hoạt
động
1 Chọn avatar hoặc tên người dùng
2 Hệ thống sẽ hiển thị trang cá nhân của người dùng.Hậu điều kiện Người dùng truy cập vào trang cá nhân người dùng khácNgoại lệ
(Variatation) Không lấy được dữ liệu người dùng.
Biến thể
(Exception)
Trang 433 Quản trị viên
a) Thêm quản trị viên
Tên Use Case Thêm quản trị viên
Actor Quản trị viên
Mục tiêu Thêm một quản trị viên mới cho hệ thống
Tiền điều kiện Người được thêm vào chưa là quản trị viên hệ thống
Luồng hoạt
động
1 Quản trị viên chọn Thêm quản trị viên
2 Nhập thông tin quản trị viên mới
3 Nhấn chọn Thêm
Hậu điều kiện
Người được thêm nhận được thông báo Người được thêm có thể truy cập hệ thống với quyền quản trị viên