Mô tả Class Diagram

Một phần của tài liệ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 (Trang 72 - 87)

II. Class Diagram

2.Mô tả Class Diagram

a. Tài khoản

Định nghĩa Là lớp chứa thông tin về tài khoản mà người dùng để có thể sử dụng ứng dụng

Thuộc tính

- userId: string. Là id định danh người dùng. Thuộc tính này mang tính duy nhất.

- userName: string. Là tên người dùng đặt. Giống như id, userName là thuộc tính mang tính duy nhất.

- password: string. Là mật khẩu bảo mật cho quá trình đăng nhập của người dùng.

- email: string. Email của người dùng.

Phương thức + signIn(email: string, password: string): phương thức xử lý việc đăng nhập của người dùng. Tham số nhận vào gồm email, password, trả về lỗi nếu thông tin không chính xác, hoặc token của người dùng nếu chính xác.

+ signOut(): phương thức xử lý việc đăng xuất của người dùng.

+ deleteAccount(email: string, password: string): phương thức xử lý việc xoá tài khoản của người dùng. Tham số nhận vào là email, password để chắc chắn việc người yêu cầu xoá tài khoản là người sử dụng.

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

+ changePassword(oldPassword: string, newPassword: string): phương thức cho phép người dùng đặt lại mật khẩu. Tham số nhận là mật khẩu cũ và mật khẩu mới

b. Thông tin người dùng

Định nghĩa Là lớp chứa thông tin cơ bản của người dùng. Thuộc tính - userId: string. Là id định danh của người dùng

- name: string. Là tên của người dùng

false (nam) hoặc true (nữ).

- birth: string. Ngày sinh của người dùng. - avatar: Image: ảnh đại diện của người dùng.

Phương thức

+ updateInfo(name: string, address: string, phoneNumber: string, gender: string): phương thức cập nhật thông tin. Tham số nhận vào là: name, address, phoneNumber, gender.

+ searchUsers(searchQuery: string): phương thức tìm kiếm người dùng. Tham số nhận vào là searchQuery, tương ứng với từ khoá cần tìm kiếm.

+ getUserInfo(uId: string): phương thức lấy thông tin của một người dùng. Tham số uId là userId của người lấy, mặc định nếu không truyền tham số thì hàm sẽ trả về thông tin của người dùng đang đăng nhập hiện tại.

c. Danh sách món ăn đã lưu

Định nghĩa Lớp chứa thông tin các món ăn đã lưu của người dùng Thuộc tính - userId: id người dùng

- 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

+ deleteFoodSaved(foodId: string): phương thức xoá một món trong danh sách đã lưu của người dùng. Tham số nhận vào: foodId là id của món cần xoá.

d. Danh sách món ăn đã tạo

Định nghĩa Là lớp chứa các món ăn đã tạo của người dùng Thuộc tính - 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.

Phương thức

+ getCreatedFood : phương thức cho phép người dùng xem danh sách các món ăn mà người dùng đó đã đăng tải trên ứng dụng (adsbygoogle = window.adsbygoogle || []).push({});

e. Báo cáo

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến báo cáo của người dùng.

Thuộc tính

- reportId: string, là id định danh của báo cáo. - userId: string, là id của người báo cáo.

- foodId: string, là id của món ăn bị báo cáo, nếu có

- commentId: string, là id của bình luận bị báo cáo, nếu có - time: Date, là thời gian báo cáo được tạo

- handle: boolean, là tình trạng quản trị viên xem xét báo cáo Phương thức + reportFood(foodId: string): phương thức xử lý báo cáo một

món ăn. Tham số nhận vào là foodId: string, là id của món ăn cần báo cáo. Phương thức trả về báo cáo vừa được tạo.

+ reportComment(commentId: string): phương thức xử lý báo cáo một bình luận. Tham số nhận vào là commentId: string, là id của bình luận cần báo cáo. Phương thức trả về báo cáo vừa được tạo.

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 Chứa các thuộc tính và phương thức liên quan đến phản hồi của người dùng.

Thuộc tính

- userId: string, là id định danh của người dùng gửi phản hồi - content: string, là nội dung của phản hồi

- time: Date, là thời gian phàn hồi được tạo

- reply: string, là nội dung phản hồi của quản trị viên

- handle: boolean, là trạng thái xử lý phản hồi của quản trị viên.

Phương thức + sendFeedback(content: string): là phương thức xử lý việc gửi feedback của người dùng. Tham số nhận vào là content: string, là nội dung của phản hồi. Trả về phản hồi vừa được tạo.

+ getFeedback(): phương thức xử lý việc lấy dữ liệu từ Feedback. Hàm không có tham số nhận vào, trả về các phản

hồi chưa được xử lý.

g. Quản trị viên

Định nghĩa Lớp chứa các phương thức liên quan đến quản trị viên Thuộc tính Không có

Phương thức + processFeedback(): Quản trị viên xử lý những Feedback về hệ thống ứng dụng

+ processReport(): Quản trị viên xử lý những báo cáo liên quan đến món ăn của người dùng hoặc bình luận của người dùng

+ censorMeal(): Quản trị viên kiểm duyệt món ăn mà người dùng đăng tải

+ viewListMember(): Quản trị viên xem danh sách các thành viên

+ viewFood(): Quản trị viên xem món ăn

+ 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 Là lớp chứa các phương thức và thuộc tính liên quan đến món ăn (adsbygoogle = window.adsbygoogle || []).push({});

Thuộc tính - id: string, id món ăn - title: string, tên món ăn

- time: string, thời gian tạo món ăn,

- photos: Image[], là các ảnh minh hoạ món ăn

- ingredients: string[], là danh sách các thành phần của món ăn

- steps: string[], các bước làm món ăn

Phương thức

+ createFood(title: string, ingredients: string[], steps: string[], photos: Image): Food, phương thức xử lý việc tạo món ăn. Tham số nhận vào gồm: title: tiêu đề món ăn, ingredients: thành phần, steps: các bước và photos: các ảnh. Phương thức trả về là Food, là món ăn vừa được tạo.

+ deleteFood(foodId): phương thức xử lý việc xoá món ăn. Phương thức trả về Food, là món ăn vừa được xoá.

+ share(): Phương thức xử lý việc chia sẻ món ăn.

+ viewDetailFood(): phương thức xử lý việc lấy chi tiết món ăn. Trả về chi tiết món ăn.

+ save(id: string): boolean, phương thức xử lý việc lưu món ăn. Tham số nhận vào là id: string là id của người lưu món ăn, trả về là trạng thái của việc lưu món ăn.

+ comment(id: string, content: string): phương thức xử lý việc bình luận món ăn. Tham số nhận vào là id: string, content: string.

+ like(id: string): boolean, phương thức xử lý việc like món ăn của người dùng. Tham số nhận vào là id: string, là id của người like, tham số trả về là trạng thái like bào viết của người dùng sau khi gọi hàm.

i. Bình luận

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến bình luận.

Thuộc tính

- foodId: string, thuộc tính là ID của món ăn mà bình luận được người dùng viết.

- userId: string, thuộc tính là ID của người bình luận. - content: string, thuộc tính nội dung của bình luận. - time: string, thời gian người dùng bình luận.

Phương thức + getComments(foodId: string, skip: number, limit: number): phương thức xử lý việc lấy comment từ một bài viết. Tham số nhận vào gồm foodId: là id của món ăn cần lấy bình luận, skip: số bình luận bỏ qua (tương đương from) và limit: số bình luận cần lấy. Phương thức trả về mảng các bình luận. + createComment(foodId: string, content: string): phương thức xử lý việc tạo mới một bình luận. Tham số nhận vào gồm foodId: id của món ăn người dùng cần bình luận và content: nội dung của bình luận mới. Trả về bình luận vừa mới được tạo.

+ deleteComment(commentId: string): Phương thức xử lý việc xoá một bình luận. Tham số nhận vào là commentId: id của bình luận cần xoá. Trả về bình luận vừa bị xoá.

j. Thích

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến thích món ăn.

Thuộc tính

- foodId: string, thuộc tính là ID của món ăn người dùng thích.

- userId: string, thuộc tính là ID của người thích. - time: string, thời gian người dùng thích món ăn.

Phương thức

+ like(foodId: string): phương thức xử lý việc like một món ăn của người dùng. Tham số nhận vào là foodId: id của món ăn người dùng thích. Trả về object Thích vừa được tạo.

+ unlike(foodId: string): Phương thức xử lý việc xoá một bình luận. Tham số nhận vào là foodId: id của món ăn người dùng muốn bỏ thích. Trả về object Like vừa bị xoá.

k. Theo dõi

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến theo dõi người dùng. (adsbygoogle = window.adsbygoogle || []).push({});

Thuộc tính

- userId: string, thuộc tính là ID của người dùng hiện tại. - targetId: string, là ID của dối tượng người dùng muốn theo dõi.

- time: string, thời gian người dùng theo dõi.

Phương thức

+ follow(targetId: string): phương thức xử lý người dùng muốn theo dõi một người dùng khác. Tham số nhận vào là targerId: id của người mà người dùng muốn theo dõi. Trả về object Follow vừa được tạo.

+ unfollow(targetId: string): phương thức xử lý người dùng muốn bỏ theo dõi một người dùng khác. Tham số nhận vào là targerId: id của người mà người dùng muốn bỏ theo dõi. Trả về object Follow vừa bị xoá.

l. Ảnh

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến ảnh.

Thuộc tính

- photoId: string, là id của ảnh - url: string, liên kết tới ảnh

- time: Date, thời gian upload ảnh - width: int, độ rộng của ảnh - height: int, chiều cao của ảnh - format: string, định dạng của ảnh - bytes: int, cỡ của ảnh, đơn vị byte

Phương thức + uploadPhoto(path: string): phương thức tải ảnh lên, sau đó tạo một document (bản ghi) trong CSDL. Tham số nhận vào là đường dẫn tới ảnh. Trả về đối tượng Ảnh tương ứng với bản ghi được thêm vào CSDL.

+ removePhoto(photoId: string): phương thức xoá một ảnh đã tải lên, và xoá bản ghi thông tin ảnh trong CSDL. Tham số nhận vào gồm photoId, là id của ảnh, trả về đối tượng Ảnh

tương ứng với bản ghi đã bị xoá trong CSDL

m. Thông báo

Định nghĩa Lớp chứa các thuộc tính và phương thức liên quan đến thông báo.

Thuộc tính - id: string, định danh thông báo

- userId: string, người dùng nhận thông báo này - author: string, người dùng tác động tạo ra thông báo

- commentId: string, là id của bình luận. Nếu thuộc tính này khác rỗng thì thông báo được tạo ra do có người đã bình luận vào bài đăng của người dùng.

- followId: string, là id của đối tượng Follow. Nếu thuộc tính này khác rỗng, thông báo được tạo ra do có người đã thực hiện theo dõi người dùng

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): phương thức này sẽ lấy thông báo mà hệ thống gửi tới người dùng. Tham số nhận vào gồm skip: số thông báo bỏ qua (tương đương from) và limit: số thông báo cần lấy. Trả về mảng các thông báo.

+ createNotification(commentId: string, followId: string, likeId: string): tạo một đối tượng Notification mới. Tham số nhận vào gồm commentId: string, là id của bình luận, nếu thuộc tính này khác null thì thông báo được tạo ra do có người đã bình luận vào bài đăng của người dùng; followId: string, là id của đối tượng Follow, nếu thuộc tính này khác rỗng, thông báo được tạo ra do có người đã thực hiện theo dõi người dùng; và likeId: string, là id của đối tượng Like, nếu thuộc tính này 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. Phương thức trả về đối tượng Notification vừa được tạo.

+ deleteNotification(notificationId: string, commentId: string, followId: string, likeId: string): tạo đối tượng Notification liên quan. Tham số nhận vào gồm notificationId: string, là id thông báo cần xoá, nếu khác rỗng thì sẽ thực hiện xoá thông báo có id này; commentId: string, là id của bình luận, nếu thuộc tính này khác null thì xoá những thông báo liên quan đến commnentId; followId: string, là id của đối tượng Follow, nếu thuộc tính này khác rỗng thì xoá những thông báo liên

quan đến followId; và likeId: string, là id của đối tượng Like, nếu thuộc tính này khác rỗng, thực hiện xoá những thông báo liên quan đến likeId. Trả về những thông báo bị xoá.

Một phần của tài liệ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 (Trang 72 - 87)