1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn NHẬP môn CÔNG NGHỆ PHẦN mềm đề tài mạng xã hội nấu ăn happycook

144 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mạng Xã Hội Nấu Ăn HappyCook
Tác giả Nguyễn Văn Nhật, Nguyễn Trọng Nam, Nguyễn Văn Trung, Trịnh Xuân Long, Hà Thị Ngọc Ánh, Nguyễn Ngọc Long
Người hướng dẫn PGS. TS Hoàng Hữu Hạnh
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 144
Dung lượng 14,28 MB

Cấu trúc

  • PHẦN 1: TỔNG QUAN ĐỀ TÀI (0)
    • I. Thực trạng (9)
    • II. Mô tả bài toán (0)
    • III. Mục tiêu (0)
    • IV. Đối tượng và phạm vi sử dụng (10)
    • V. Các tác nhân liên quan đến ứng dụng (11)
    • VI. Sơ đồ phân rã chức năng (12)
  • PHẦN 2: PHÂN TÍCH HỆ THỐNG (0)
    • I. Sơ đồ Use case tổng quát (13)
    • II. Đặc tả use case, Activities Diagram (0)
      • 1. Khách (14)
      • 2. Người dùng (15)
      • 3. Quản trị viên (55)
    • III. Domain Model (0)
    • IV. Robustness Diagram (68)
  • PHẦN 3: THIẾT KẾ HỆ THỐNG (0)
    • I. Các lớp Boundary, Control, Entity (87)
      • 1. Các lớp Boundary (87)
      • 2. Các lớp Control (87)
      • 3. Các lớp Entity (87)
    • II. Class Diagram (88)
      • 1. Class Diagram (88)
      • 2. Mô tả Class Diagram (89)
    • III. Giao diện UI (0)
    • IV. Sequence Diagram (123)
  • PHẦN 4: CÀI ĐẶT, TRIỂN KHAI HỆ THỐNG (0)
    • I. Cài đặt cơ sở dữ liệu (142)
    • II. Cài đặt lớp điều khiển (142)
    • III. Cài đặt lớp boundary (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

PHÂN TÍCH HỆ THỐNG

Sơ đồ Use case tổng quát

Đặc tả use case, Activities Diagram

Liên quan đến yêu cầu

(Exception) f) Cập nhật thông tin

(Exception) h) Tìm kiếm món ăn

22 i) Xem chi tiết món ăn

23 j) Xoá món ăn đã tạo

Hậu điều kiện Ngoại lệ

Lỗi kết nối tới CSDL m) Xoá món ăn đã lưu

Mục tiêuTiền điều kiệnLuồng hoạt động

(Exception) n) Xem món đã lưu

(Exception) o) Xem danh sách món ăn đã tạo

(Exception) q) Bỏ thích món ăn

(Exception) u) Báo cáo bình luận

(Exception) v) Tìm kiếm người dùng

(Exception) y) Chia sẻ món ăn

Mục tiêu Tiền điều kiện

Hậu điều kiệnNgoại lệ

(Exception) aa) Xem thông báo

40 ab) Xem trang cá nhân người dùng

3 Quản trị viên a) Thêm quản trị viên

42 b) Xem thông tin thành viên

44 d) Xem món ăn được đăng

- Hệ thống gặp sự cố e) Xóa món ăn

(Exception) g) Xử lý sai phạm

2 Người dùng a) Đăng nhập b) Quên mật khẩu

51 c) Đổi mật khẩu d) Đăng xuất

52 e) Xóa tài khoản f) Cập nhật thông tin

53 g) Đăng tải món ăn h) Tìm kiếm món ăn

54 i) Xem chi tiết món ăn j) Xoá món ăn đã tạo

55 k) Sửa món ăn l) Lưu món ăn

56 m) Xoá món ăn đã lưu n) Xem món đã lưu

57 o) Xem danh sách món ăn đã tạo p) Thích món ăn

58 q) Bỏ thích món ăn r) Bình luận món ăn s) Xóa bình luận

60 u) Báo cáo bình luận v) Tìm kiếm người dùng

61 w) Follow người dùng x) Unfollow người dùng

62 y) Chia sẻ món ăn z) Feedback

63 aa) Xem thông báo ab) Xem trang cá nhân người dùng

3 Quản trị viên a) Thêm quản trị viên b) Xem thông tin thành viên

65 c) Xóa thành viên d) Xem món ăn được đăng

66 e) Xóa món ăn f) Nhận Feedback

Robustness Diagram

2 Người dùng a) Đăng nhập b) Quên mật khẩu

51 c) Đổi mật khẩu d) Đăng xuất

52 e) Xóa tài khoản f) Cập nhật thông tin

53 g) Đăng tải món ăn h) Tìm kiếm món ăn

54 i) Xem chi tiết món ăn j) Xoá món ăn đã tạo

55 k) Sửa món ăn l) Lưu món ăn

56 m) Xoá món ăn đã lưu n) Xem món đã lưu

57 o) Xem danh sách món ăn đã tạo p) Thích món ăn

58 q) Bỏ thích món ăn r) Bình luận món ăn s) Xóa bình luận

60 u) Báo cáo bình luận v) Tìm kiếm người dùng

61 w) Follow người dùng x) Unfollow người dùng

62 y) Chia sẻ món ăn z) Feedback

63 aa) Xem thông báo ab) Xem trang cá nhân người dùng

3 Quản trị viên a) Thêm quản trị viên b) Xem thông tin thành viên

65 c) Xóa thành viên d) Xem món ăn được đăng

66 e) Xóa món ăn f) Nhận Feedback

THIẾT KẾ HỆ THỐNG

Các lớp Boundary, Control, Entity

- Giao diện xem chi tiết món

- Giao diện xem thông báo

- Giao diện thêm món ăn

- Giao diện xem các món ăn đã tạo

- Giao diện xem các món ăn đã lưu

+ Account: bảng chứa dữ liệu về thông tin tài khoản người dùng.

+ User: bảng chứa dữ liệu về thông tin cá nhân người dùng.

+ Comment: bảng chứa dữ liệu về bình luận của người dùng.

+ Like: bảng chứa dữ liệu về sự kiện thích bài viết của người dùng.

+ Notification bảng chứa dữ liệu về thông báo.

+ Post: bảng chứa dữ liệu về bài đăng món ăn.

+ Follow: bảng chứa dữ liệu về sự kiện theo dõi người dùng

+ CreatedPost: bảng chứa dữ liệu về các món ăn đã tạo.

+ SavedPost: bảng chứa dữ liệu về món ăn đã lưu.

+ Photo: bảng chứa dữ liệu về thông tin của ảnh trong hệ thống, bao gồm ảnh trong bài đăng và ảnh đại diện của người dùng.

+ Report: bảng chứa dữ liệu về các báo cáo của người dùng.

+ Feedback: bảng chứa dữ liệu về các phản hồi của người dùng.

Class Diagram

2 Mô tả Class Diagram a Tài khoản Định nghĩa

Phương thức deleteAccount(email: string, password: string) xử lý việc xoá tài khoản người dùng, yêu cầu nhập email và mật khẩu để xác minh danh tính của người yêu cầu.

+ forgot(email: string): phương thức cho phép người dùng lấy lại mật khẩu đã quên.

Phương thức changePassword(oldPassword: string, newPassword: string) cho phép người dùng thực hiện việc đặt lại mật khẩu của mình Nó yêu cầu hai tham số: mật khẩu cũ và mật khẩu mới.

Phương thức getUser Info(uId: string) cho phép lấy thông tin người dùng, với tham số uId là userId của người cần lấy thông tin Nếu không cung cấp tham số, hàm sẽ tự động trả về thông tin của người dùng đang đăng nhập.

- userId: id người dùng Thuộc tính

- foodList: danh sách món ăn đã lưu của người dùng.

Phương thức + getSavedFood(): phương thức trả về các món ăn đã lưu của người dùng Không có tham số nhận vào

Phương thức `deleteFoodSaved(foodId: string)` cho phép người dùng xoá một món ăn khỏi danh sách đã lưu Tham số `foodId` là định danh của món ăn cần được xoá.

- userId: id định danh của người dùng.

- foodList: danh sách các món đã tạo của người dùng.

+ getCreatedFood : phương thức cho phép người dùng xem Phương thức danh sách các món ăn mà người dùng đó đã đăng tải trên ứng dụng

Hàm không có tham số nhận vào, trả về các báo cáo chưa được xử lý. f Phản hồi Định nghĩa

76 hồi chưa được xử lý. g Quản trị viên Định nghĩa Thuộc tính Phương thức

+ addMember(): Quản trị viên thêm thành viên vào hệ thống

+ deleteMember(): Quản trị viên xóa thành viên ra khỏi hệ thống h Món ăn Định nghĩa

The `deleteComment(commentId: string)` method is designed to handle the deletion of a comment It takes a single parameter, `commentId`, which represents the ID of the comment to be removed Upon execution, it returns the deleted comment.

Phương thức + like(foodId: string) cho phép người dùng bày tỏ sự yêu thích một món ăn bằng cách cung cấp foodId, tức là ID của món ăn đó Khi thực hiện, phương thức sẽ trả về một đối tượng Thích mới được tạo ra.

Phương thức unlike(foodId: string) được sử dụng để xóa một bình luận Tham số foodId đại diện cho ID của món ăn mà người dùng muốn bỏ thích Khi thực hiện, phương thức này sẽ trả về đối tượng Like đã bị xóa.

Phương thức follow(targetId: string) cho phép người dùng theo dõi một người dùng khác bằng cách nhận vào tham số targetId, tức là ID của người mà họ muốn theo dõi Sau khi thực hiện, phương thức sẽ trả về một đối tượng Follow vừa được tạo.

Phương thức unfollow(targetId: string) cho phép người dùng hủy theo dõi một người dùng khác Tham số targetId là ID của người mà người dùng muốn bỏ theo dõi Khi thực hiện, phương thức này sẽ trả về đối tượng Follow đã bị xóa.

83 tương ứng với bản ghi đã bị xoá trong CSDL m Thông báo Định nghĩa

Thuộc tính khác rỗng, thông báo được tạo ra do có người đã thích bài viết đã đăng của người dùng

- seen: boolean, là trạng thái đã đọc của thông báo

- time: Date, là thời gian thông báo được tạo ra.

Phương thức getNotifications(skip: number, limit: number) cho phép người dùng lấy các thông báo từ hệ thống Tham số skip xác định số lượng thông báo cần bỏ qua, trong khi limit chỉ định số lượng thông báo muốn nhận Kết quả trả về là một mảng chứa các thông báo.

Hàm createNotification(commentId: string, followId: string, likeId: string) được sử dụng để tạo một đối tượng Notification mới Tham số commentId là id của bình luận, nếu không null, thông báo sẽ được tạo ra khi có người bình luận vào bài viết của người dùng Tham số followId là id của đối tượng Follow, nếu không rỗng, thông báo sẽ xuất hiện khi có người theo dõi người dùng Cuối cùng, tham số likeId là id của đối tượng Like, nếu không rỗng, thông báo sẽ được tạo ra khi có người thích bài viết của người dùng Phương thức này trả về đối tượng Notification mới được tạo.

The `deleteNotification` function allows for the removal of specific notifications by creating a Notification object It takes four parameters: `notificationId`, which is the ID of the notification to be deleted; `commentId`, which, if not null, will delete notifications related to that specific comment; `followId`, which, if not empty, will remove notifications associated with the follow action; and `likeId`, which serves a similar purpose for likes By utilizing these parameters, users can effectively manage and delete notifications as needed.

85 quan đến followId và likeId: là chuỗi ID của đối tượng Like Nếu thuộc tính này không rỗng, hệ thống sẽ thực hiện việc xoá các thông báo liên quan đến likeId và trả về danh sách những thông báo đã bị xoá.

Giao diện người dùng (UI) được nhóm thiết kế của chúng tôi phác thảo, mô tả và hoàn thiện trên nền tảng Figma Bạn có thể tham khảo thiết kế của chúng tôi qua liên kết Figma sau: [HappyCook](https://www.figma.com/file/wjlP19uVvY4Fd77bEswKvR/HappyCook?node-id$4%3A81).

Dưới đây là ảnh chụp của các trang thiết kế:

2 Người dùng a) Đăng nhập b) Quên mật khẩu

87 c) Đổi mật khẩu d) Đăng xuất

88 e) Xóa tài khoản f) Cập nhật thông tin

89 g) Đăng tải món ăn h) Tìm kiếm món ăn

90 i) Xem chi tiết món ăn j) Xoá món ăn đã tạo

91 k) Sửa món ăn l) Lưu món ăn

92 m) Xoá món ăn đã lưu n) Xem món đã lưu

93 o) Xem danh sách món ăn đã tạo p) Thích món ăn

94 q) Bỏ thích món ăn r) Bình luận món ăn

95 s) Xóa bình luận t) Báo cáo món ăn

96 u) Báo cáo bình luận v) Tìm kiếm người dung

97 w) Follow người dung x) Unfollow người dung

98 y) Chia sẻ món ăn z) Feedback

99 aa) Xem thông báo ab) Xem trang cá nhận người dùng

3 Quản trị viên a) Trang chủ của quản trị viên b) Trang quản lý thành viên

101 c) Xem danh sách món ăn được đăng d) Trang danh sách phản hồi

103 e) Danh sách báo cáo vi phạm

2 Người dùng a) Đăng nhập b) Quên mật khẩu

106 c) Đổi mật khẩu d) Đăng xuất

107 e) Xóa tài khoản f) Cập nhật thông tin

108 g) Đăng tải món ăn h) Tìm kiếm món ăn

109 i) Xem chi tiết món ăn j) Xoá món ăn đã tạo

110 k) Sửa món ăn l) Lưu món ăn

111 m) Xoá món ăn đã lưu n) Xem món đã lưu

112 o) Xem danh sách món ăn đã tạo p) Thích món ăn

113 q) Bỏ thích món ăn r) Bình luận món ăn

114 s) Xóa bình luận t) Báo cáo món ăn

115 u) Báo cáo bình luận v) Tìm kiếm người dùng

116 w) Follow người dùng x) Unfollow người dùng

117 y) Chia sẻ món ăn z) Feedback

118 aa) Xem thông báo ab) Xem trang cá nhân người dùng

3 Quản trị viên a) Thêm quản trị viên b) Xem thông tin thành viên

120 c) Xem món ăn được đăng

121 d) Xóa món ăn e) Nhận Feedback

Sequence Diagram

2 Người dùng a) Đăng nhập b) Quên mật khẩu

106 c) Đổi mật khẩu d) Đăng xuất

107 e) Xóa tài khoản f) Cập nhật thông tin

108 g) Đăng tải món ăn h) Tìm kiếm món ăn

109 i) Xem chi tiết món ăn j) Xoá món ăn đã tạo

110 k) Sửa món ăn l) Lưu món ăn

111 m) Xoá món ăn đã lưu n) Xem món đã lưu

112 o) Xem danh sách món ăn đã tạo p) Thích món ăn

113 q) Bỏ thích món ăn r) Bình luận món ăn

114 s) Xóa bình luận t) Báo cáo món ăn

115 u) Báo cáo bình luận v) Tìm kiếm người dùng

116 w) Follow người dùng x) Unfollow người dùng

117 y) Chia sẻ món ăn z) Feedback

118 aa) Xem thông báo ab) Xem trang cá nhân người dùng

3 Quản trị viên a) Thêm quản trị viên b) Xem thông tin thành viên

120 c) Xem món ăn được đăng

121 d) Xóa món ăn e) Nhận Feedback

CÀI ĐẶT, TRIỂN KHAI HỆ THỐNG

Cài đặt cơ sở dữ liệu

Dựa trên sơ đồ lớp (Class Diagram), nhóm đã xây dựng cơ sở dữ liệu sử dụng MongoDB, một hệ quản trị cơ sở dữ liệu NoSQL Trong quá trình này, nhóm đã tạo ra tổng cộng 12 bảng để đáp ứng nhu cầu của dự án.

+ Account: bảng chứa dữ liệu về thông tin tài khoản người dùng.

+ User: bảng chứa dữ liệu về thông tin cá nhân người dùng.

+ Comment: bảng chứa dữ liệu về bình luận của người dùng.

+ Like: bảng chứa dữ liệu về sự kiện thích bài viết của người dùng.

+ Notification bảng chứa dữ liệu về thông báo.

+ Post: bảng chứa dữ liệu về bài đăng món ăn.

+ Follow: bảng chứa dữ liệu về sự kiện theo dõi người dùng

+ CreatedPost: bảng chứa dữ liệu về các món ăn đã tạo.

+ SavedPost: bảng chứa dữ liệu về món ăn đã lưu.

+ Photo: bảng chứa dữ liệu về thông tin của ảnh trong hệ thống, bao gồm ảnh trong bài đăng và ảnh đại diện của người dùng.

+ Report: bảng chứa dữ liệu về các báo cáo của người dùng.

+ Feedback: bảng chứa dữ liệu về các phản hồi của người dùng.

Cài đặt lớp điều khiển

Để đảm bảo cơ sở dữ liệu giao tiếp hiệu quả với người dùng, nhóm chúng tôi đã triển khai lớp điều khiển bằng Node.js Lớp này bao gồm ba thành phần chính: nhận yêu cầu từ người dùng, xử lý dữ liệu và giao tiếp với cơ sở dữ liệu.

Để giao tiếp hiệu quả với người dùng, nhóm chúng tôi đã cài đặt lớp boundary bằng cách triển khai giao diện người dùng dựa trên các mẫu thiết kế đã được xác định Chúng tôi sử dụng React Native để xây dựng ứng dụng, đảm bảo tính tương tác và trải nghiệm người dùng tốt nhất.

Ngày đăng: 05/01/2022, 09:55

HÌNH ẢNH LIÊN QUAN

+ CreatedPost: bảng chứa dữ liệu về các món ăn đã tạo. + SavedPost: bảng chứa dữ liệu về món ăn đã lưu. - BÁO cáo bài tập lớn NHẬP môn CÔNG NGHỆ PHẦN mềm đề tài mạng xã hội nấu ăn happycook
reated Post: bảng chứa dữ liệu về các món ăn đã tạo. + SavedPost: bảng chứa dữ liệu về món ăn đã lưu (Trang 88)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w