You are on page 1of 27

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


-----🙞🙜🕮🙞🙜-----

BÀI TẬP LỚN


Môn: Phát triển phần mềm hướng dịch vụ
Đề tài: Ứng dụng mạng xã hội ẩm thực.
Nhóm môn học: 03
Nhóm bài tập lớn: 03
Thành viên: Mai Đức Trung – B19DCCN697
Phạm Kim Oanh – B19DCCN495
Mai Văn Trí - B19DCCN688

Hà Nội, tháng 4/2023

1
Mục Lục
CHƯƠNG 1. Mở đầu............................................................................................ 4
1. Giới thiệu ứng dụng...........................................................................................5
2. Các yêu cầu đối với ứng dụng........................................................................... 5
3. Lý do lựa chọn đề tài......................................................................................... 5
4. Concept khi thực hiện ứng dụng....................................................................... 6
CHƯƠNG 2. Phân tích thiết kế.............................................................................7
1. Kiến trúc tổng quan........................................................................................... 7
2. Biểu đồ Use Case tổng quan..............................................................................7
3. Use case chi tiết................................................................................................. 8
4. Biểu đồ lớp...................................................................................................... 10
5. Biểu đồ tuần tự................................................................................................ 12
6. Sơ đồ thực thể quan hệ.................................................................................... 14
CHƯƠNG 3. Kết quả thực hiện (chương 3)....................................................... 16
1. Mô hình triển khai........................................................................................... 16
2. Các bước cài đặt và triển khai......................................................................... 16
3. Các kết quả thực hiện...................................................................................... 17
4. Kết luận, các điểm hạn chế..............................................................................27
5. Tài liệu tham khảo...........................................................................................27

2
DANH MỤC HÌNH
Hình 2. 1: Kiến trúc tổng quan 8
Hình 2. 2: Biểu đồ use case tổng quan 9
Hình 2. 3: Use Case module xem sửa thông tin 10
Hình 2. 4: Use Case module tương tác 10
Hình 2. 5: Use Case module tìm kiếm 11
Hình 2. 6: Class Diagram module đăng ký, đăng nhập 11
Hình 2. 7: Class Diagram module xem, tìm kiếm công thức 12
Hình 2. 8: Class diagram module, lưu, yêu thích, bình luận 12
Hình 2. 9: Class Diagram module hiển thị thông báo, top đầu bếp 13
Hình 2. 10: Sequence Diagram module đăng nhập, đăng ký 13
Hình 2. 11: Sequence Diagram module xem, tìm kiếm công thức 14
Hình 2. 12: Sequence Diagram module lưu, yêu thích, bình luân 14
Hình 2. 13: Sequence Diagram module hiển thị thông báo, top đầu bếp 15
Hình 2. 14: Mô hình thực thể quan hệ ER 16

3
CHƯƠNG 1. Mở đầu
1. Giới thiệu ứng dụng.
● Ứng dụng mạng xã hội về ẩm thực, nơi mọi người chia sẻ các công
thức nấu ăn và niềm đam mê ẩm thực của cá nhân người dùng.
2. Các yêu cầu đối với ứng dụng.
● Tính năng chia sẻ đồ ăn: Người dùng có thể chia sẻ hình ảnh, video
hoặc bài đăng về món ăn mà họ đã ăn hoặc muốn chia sẻ với cộng
đồng.
● Tính năng tìm kiếm: Người dùng có thể tìm kiếm các món ăn yêu thích
của họ bằng cách sử dụng từ khóa hoặc lọc theo địa điểm, thể loại, độ
khó, giá cả, v.v.
● Tính năng đánh giá: Người dùng có thể đánh giá món ăn mà họ đã ăn
và chia sẻ đánh giá đó với cộng đồng.
● Tính năng đăng ký và đăng nhập: Người dùng có thể đăng ký tài khoản
mới hoặc đăng nhập vào tài khoản hiện có của họ.
● Tính năng theo dõi: Người dùng có thể theo dõi người dùng khác để
nhận thông tin về các món ăn mới nhất, đánh giá và nhận xét của họ.
● Tính năng bình luận: Người dùng có thể bình luận trên các bài đăng
của người dùng khác và thảo luận với nhau về các món ăn.
● Tính năng lưu trữ thông tin: Phần mềm có thể lưu trữ thông tin về các
món ăn, người dùng và hoạt động của họ để cung cấp cho người dùng
các thông tin liên quan đến lịch sử và các món ăn đã thử.
● Tính năng phản hồi: Người dùng có thể đưa ra phản hồi, đóng góp ý
kiến hoặc báo cáo về các vấn đề liên quan đến ứng dụng.
● Tính năng quản lý tài khoản: Phần mềm nên cho phép người dùng
quản lý thông tin cá nhân, thay đổi mật khẩu, cập nhật hồ sơ và thông
tin liên hệ.
● Tính năng bảo mật: Ứng dụng nên đảm bảo an toàn thông tin cá nhân
của người dùng, đặc biệt là thông tin tài khoản và mật khẩu.
● Tính năng thống kê: Phần mềm nên cung cấp các báo cáo và thống kê
về số lượng người dùng, số lượng bài đăng và số lượng đánh giá.
3. Lý do lựa chọn đề tài.
● Trên các trang mạng xã hội hiện nay content liên quan đến đồ ăn luôn
có sức hút lớn. Ví dụ như Tiktok các clip về đồ ăn, review quán ăn
luôn thu hút nhiều view và tim hay Youtube nổi lên trào lưu mukbang.
Tuy nhiên không có 1 mạng xã hội nào chuyên dụng cho chủ đề này

4
4. Concept khi thực hiện ứng dụng.
● Mạng xã hội ẩm thực: Là một mạng xã hội trực tuyến, tập trung vào
chủ đề ẩm thực. Người dùng có thể chia sẻ các trải nghiệm về ẩm thực,
đăng tải hình ảnh và đánh giá nhà hàng, quán ăn, món ăn hoặc món
uống.
● Đánh giá: Là hoạt động của người dùng để đánh giá nhà hàng, quán
ăn, món ăn hoặc món uống dựa trên trải nghiệm cá nhân.
● Feed: Là một danh sách các bài đăng mới nhất được hiển thị trên trang
chủ của ứng dụng, dựa trên sở thích và tương tác của người dùng trước
đó.
● Món ăn: Là những hình ảnh, video hoặc bài viết được đăng tải trên
ứng dụng để chia sẻ trải nghiệm về ẩm thực của người dùng.
● Nhóm/Trang: Là một tập hợp các người dùng chia sẻ cùng một sở
thích hoặc chủ đề liên quan đến ẩm thực. Người dùng có thể tham gia
các nhóm hoặc trang này để tìm kiếm thông tin về món ăn mới, nhà
hàng hoặc quán ăn địa phương.
● Check-in: Là hoạt động của người dùng khi đăng nhập tại một địa
điểm nhất - định để chia sẻ trải nghiệm và đánh giá của mình về địa
điểm đó.
● Menu: Là danh sách các món ăn hoặc đồ uống mà một nhà hàng hoặc
quán ăn cung cấp. Người dùng có thể xem menu để tìm kiếm các món
ăn và đồ uống yêu thích của họ.
● Chia sẻ: Là tính năng cho phép người dùng chia sẻ các bài viết, hình
ảnh hoặc video trên các mạng xã hội khác. Người dùng có thể sử dụng
tính năng này để chia sẻ trải nghiệm của mình về ẩm thực trên các
mạng xã hội khác.

5
CHƯƠNG 2. Phân tích thiết kế.

1. Kiến trúc tổng quan.

Hình 2. 1: Kiến trúc tổng quan

2. Biểu đồ Use Case tổng quan.

6
Hình 2. 2: Biểu đồ usercase tổng quan

3. Use case chi tiết.


● Module xem sửa thông tin.

Hình 2. 3: Usercase module xem sửa thông tin


7
● Module tương tác.

Hình 2. 4: Use Case module tương tác

● Module tìm kiếm.

Hình 2. 5: Use Case module tìm kiếm

8
4. Biểu đồ lớp.
● Module đăng ký đăng nhập
.

Hình 2. 6: Class Diagram module đăng ký, đăng nhập

● Module xem, tìm kiếm công thức.

9
Hình 2. 7: Class Diagram module xem, tìm kiếm công thức

● Module lưu, yêu thích, bình luận bài viết

Hình 2. 8: Class diagram module, lưu, yêu thích, bình luận

● Module hiển thị thông báo, hiển thị món ăn, top đầu bếp.

10
Hình 2. 9: Class Diagram module hiển thị thông báo, top đầu bếp

5. Biểu đồ tuần tự.

● Module đăng nhập đăng kí.

Hình 2. 10: Sequence Diagram module đăng nhập, đăng ký

● Module xem, tìm kiếm công thức.

11
Hình 2. 11: Sequence Diagram module xem, tìm kiếm công thức

● Module lưu, yêu thích, bình luận bài viết

Hình 2. 12: Sequence Diagram module lưu, yêu thích, bình luân

● Module hiển thị thông báo, hiển thị món ăn, top đầu bếp.

12
Hình 2. 13: Sequence Diagram module hiển thị thông báo, top đầu bếp

6. Sơ đồ thực thể quan hệ.

● Các bảng trong sơ đồ thực thể quan hệ


o Bảng user bao gồm các trường: id, username, password, name,
email, phonenumber, address, avatar, dob, sex, role, active,
crated_at, updated_at
o Bảng user_like_posts bao gồm các trường: id, user_id, post_id,
created_at, updated_at
o Bảng notifications bao gồm các trường: id, user_id, post_id,
content, created_at, update_at
o Bảng comments bao gồm các trường: id, user_id, post_id, content,
parent_id, child_number, created_at, updated_at
o Bảng category bao gồm các trường: id, name, created_at,
updated_at
o Bảng posts bao gồm các trường: id, content, user_id, category_id,
active, created_at, update_at
o Bảng collections bao gồm các trường: id, user_id, post_id,
created_at, updated_at

13
o Bảng user_permissions bao gồm các trường: id, user_id,
permission_id, created_at, updated_at
o Bảng permissions bao gồm các trường: id, name, created_at,
updated_at
o Bảng posts_detail bao gồm các trường: id, detail1, detial2, detail3,
post_id, created_at, updated_at
o Bảng images bao gồm các trường: id, link, post_id, created_at,
updated_at
o Bảng device_token bao gồm các trường: id, token_noti, user_id,
created_at, updated_at

● Quan hệ giữa các bảng trong sơ đồ thực thể quan hệ


o 1 user – n user_like_post, 1 user – n notification, 1 user – n
user_permission, 1 user – n collections, 1 user – n device_token, 1
user – n comments
o 1 posts – n post_detail, 1 posts – n images, 1 post – n collections, 1
posts – n comments, 1 posts – n user_like_posts
o 1 category – n posts
o 1 permissions – n userpermission
● Sơ đồ thực thể quan hệ

14
Hình 2. 14: Mô hình thực thể quan hệ ER

CHƯƠNG 3. Kết quả thực hiện (chương 3)

1. Mô hình triển khai


● Triển khai theo mô hình client – server giao tiếp thông qua restful Api
● Cơ sở dữ liệu sử dụng : Mysql
● Back-end nodejs ( Framework nestjs)
● Front-end react-native (framework expo)
● service bên thứ 3 mail google, cloudinary.

2. Các bước cài đặt và triển khai


● Back-end:

15
o Clone code tại link gitlab :
https://gitlab.com/trung2793314/food_review.git
o Cài đặt môi trường nodejs version 16
o Chạy lệnh yarn để cài gói node-module
o Tạo file .env để config data, google mail, cloud ( đã có config trong
file .env.example)
o Chạy lệnh yarn start:dev để run project
o Các api được tổng hợp trong link swagger :
localhost/3003/api-docs
● Front-end:
o Clone code git link github : https://github.com/Zom22365/recipe
o Cài đặt môi trường nodejs version 16
o Chạy lệnh yarn để cái gói node-module
o Chạy expo start để run project

3. Các kết quả thực hiện

● Api

16
17
● Cấu trúc code back-end:

18
● Các giao diện

19
20
21
22
23
24
25
26
4. Kết luận, các điểm hạn chế
● Hiện tại dùng framework expo bị hạn chế khó config sdk của bên thứ
3 như firebase vào để bắn thông báo. Hiện tại bắn thông báo realtime
chỉ xuất hiện trong version android.
5. Tài liệu tham khảo
● https://docs.nestjs.com/
● https://docs.expo.dev/

27

You might also like