1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây Dựng Website Chia Sẻ Kiến Thức.pdf

100 3 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 đề Xây Dựng Website Chia Sẻ Kiến Thức
Tác giả Nguyễn Đình Phú, Võ Anh Huy
Người hướng dẫn ThS. Trần Công Tú
Trường học Trường Đại Học sư phạm kỹ thuật thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Thông tin
Thể loại Đề tài
Năm xuất bản 2022
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 100
Dung lượng 11,29 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Tính cấp thiết của đề tài (17)
  • 2. Giải pháp (17)
  • 3. Mục tiêu của đề tài (18)
  • CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU (19)
    • 1.1. KHẢO SÁT HIỆN TRẠNG (19)
      • 1.1.1. Quantrimang.com (19)
      • 1.1.2. Viblo (21)
      • 1.1.3. Podcasts (22)
    • 1.2. Kết luận về những tiêu chí cần đạt được (23)
      • 1.2.1. Ưu điểm (23)
      • 1.2.2. Nhược điểm (24)
      • 1.2.3. Mong muốn của nhóm sau khi khảo sát (24)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (25)
    • 2.1. Tổng quan công nghệ sử dụng (25)
      • 2.1.1. Giới thiệu chung (25)
      • 2.1.2. Lý do chọn công nghệ (25)
    • 2.2. Tìm hiểu công nghệ (27)
      • 2.2.1. MySQL (27)
      • 2.2.2. Docker (27)
      • 2.2.3. Java (28)
      • 2.2.4. Spring Boot (29)
      • 2.2.5. Spring Data JPA (29)
      • 2.2.6. ReactJS (30)
  • CHƯƠNG 3: XÁC ĐỊNH VÀ MÔ HÌNH HÓA YÊU CẦU (32)
    • 3.1. Lập danh sách yêu cầu (32)
      • 3.1.1. Yêu cầu chức năng (32)
      • 3.2.1. Lược đồ Use-Case (45)
      • 3.2.2. Đặc tả Use-Case (46)
  • CHƯƠNG 4: THIẾT KẾ HỆ THỐNG (61)
    • 4.1. Thiết kế cơ sở dữ liệu (61)
      • 4.1.1. Mô tả chi tiết table app_fd_files (62)
      • 4.1.2. Mô tả chi tiết table dir_user (62)
      • 4.1.3. Mô tả chi tiết table dir_role (62)
      • 4.1.4. Mô tả chi tiết table dir_user_role (63)
      • 4.1.5. Mô tả chi tiết table app_fd_category (63)
      • 4.1.6. Mô tả chi tiết app_fd_article_tag (63)
      • 4.1.7. Mô tả chi tiết table app_fd_article (64)
      • 4.1.9. Mô tả chi tiết table app_fd_article_tag_rel (65)
      • 4.1.10. Mô tả chi tiết table app_fd_comment (65)
      • 4.1.11. Mô tả chi tiết table app_fd_user_vote_state (66)
      • 4.1.12. Mô tả chi tiết table app_fd_interaction (66)
      • 4.1.13. Mô tả chi tiết table app_fd_report_category (67)
      • 4.1.14. Mô tả chi tiết table app_fd_article_report (67)
      • 4.1.15. Mô tả chi tiết table app_fd_article_report_category_rel (68)
      • 4.1.16. Mô tả chi tiết table app_fd_comment_report (68)
      • 4.1.17. Mô tả chi tiết table app_fd_comment_report_category_rel (69)
      • 4.1.18. Mô tả chi tiết table app_fd_user_report (69)
      • 4.1.19. Mô tả chi tiết table app_fd_user_report_category_rel (70)
      • 4.1.20. Mô tả chi tiết table app_fd_articles_for_home (70)
    • 4.2. Thiết kế giao diện (71)
      • 4.2.1. Màn hình chính (72)
      • 4.2.2. Màn hình danh mục bài viết (74)
      • 4.2.3. Màn hình đăng bài viết (76)
      • 4.2.4. Màn hình nội dung bài viết (78)
      • 4.2.6. Màn hình danh sách tài khoản người kiểm duyệt (81)
      • 4.2.8. Màn hình danh sách phân loại bài viết (83)
    • 4.3. Các lược đồ sequence chính (84)
      • 4.3.1. Đăng ký tài khoản (84)
      • 4.3.2. Đăng nhập (85)
      • 4.3.3. Đăng bài viết (86)
      • 4.3.4. Chỉnh sửa bài viết (87)
      • 4.3.5. Gửi báo cáo bài viết (88)
  • CHƯƠNG 5: CÀI ĐẶT VÀ THỬ NGHIỆM (0)
    • 5.1. Cài đặt (89)
      • 5.1.1. Cài đặt Database (89)
      • 5.1.2. Cài đặt Backend (89)
      • 5.1.3. Cài đặt FrontEnd (90)
    • 5.2. Kiểm thử (91)
      • 5.2.1. Kiểm thử chức năng đăng nhập (91)
      • 5.2.2. Kiểm thử chức năng đăng bài viết (92)
      • 5.2.4. Kiểm thử chức năng bình luận (0)
      • 5.2.5. Kiểm thử chức năng quên mật khẩu (93)
      • 5.2.6. Kiểm thử chức năng xác thực email (94)
      • 5.2.7. Kiểm thử chức năng đổi mật khẩu (95)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (96)
    • 2. ƯU, NHƯỢC ĐIỂM (0)
    • 3. BÀI HỌC KINH NGHIỆM (97)
    • 4. HƯỚNG PHÁT TRIỂN (98)

Nội dung

KLTN 2022 BC Phu Huy THÀNH PHỐ HỒ CHÍ MINH BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT Tp Hồ Chí Minh 2022 ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG WEBSITE CHIA SẺ KIẾN THỨC VÕ A[.]

Tính cấp thiết của đề tài

Trong bối cảnh công nghệ phát triển nhanh chóng, ứng dụng công nghệ đã trở thành một phần quan trọng trong nhiều lĩnh vực, đặc biệt là giáo dục Nhu cầu tìm kiếm và học hỏi kiến thức mọi lúc, mọi nơi ngày càng gia tăng, đặc biệt trong thời kỳ đại dịch Covid-19.

Việc xây dựng một website chia sẻ kiến thức là cần thiết để cải thiện việc trao đổi và học tập trực tiếp, đặc biệt trong bối cảnh cuộc sống ngày càng bận rộn Một nền tảng như vậy sẽ giúp người dùng dễ dàng tiếp cận thông tin và học hỏi qua các bài viết ngắn, tiết kiệm thời gian trong những lúc chờ đợi Mặc dù đã có nhiều hệ thống chia sẻ kiến thức hiện có, nhưng chúng vẫn chưa đáp ứng đầy đủ nhu cầu và chức năng cần thiết của người dùng Do đó, nhóm đã quyết định phát triển đề tài “Xây dựng website chia sẻ kiến thức” để đáp ứng nhu cầu này.

Giải pháp

Hệ thống mang đến cho người đọc và người quản lý một nền tảng chia sẻ kiến thức linh hoạt, giúp quản lý một cách đơn giản và thân thiện.

Về tổng quan nền tảng chia cơ bản 2 phần:

- Khách vãng lai, người dùng cơ bản:

+ Cho phép khách vãng lai xem danh sách, nội dung chi tiết từng bài viết cũng như bình luận, đánh giá của người dùng khác

Người dùng có thể xem danh sách và nội dung bài viết, tham gia bình luận, đánh giá, cũng như để lại ý kiến cá nhân Họ cũng có khả năng báo cáo bài viết và đăng tải nội dung mới.

- Quản lý chung (dành cho người kiểm duyệt và quản trị viên)

Quản trị viên có khả năng quản lý danh sách người kiểm duyệt, bao gồm việc thêm và thay đổi mật khẩu, cũng như vô hiệu hóa hoặc kích hoạt tài khoản của họ Ngoài ra, quản trị viên còn có quyền quyết định xóa bài viết khi cần thiết.

Mục tiêu của đề tài

- Tạo một trang web hỗ trợ việc trao đổi, trau dồi kiến thức

- Xây dựng hoàn thành trang chia sẻ kiến thức cung cấp đầy đủ các tính năng cần thiết:

Trang web chia sẻ kiến thức được xây dựng với các tính năng chính như đăng ký tài khoản, đăng nhập/đăng xuất, xem các bài viết, tham gia bình luận, đánh giá và báo cáo bài viết, cũng như đăng bài viết Người dùng có thể chỉnh sửa và xóa bài viết của chính mình, trong khi người kiểm duyệt có quyền xem danh sách các báo cáo và xóa bài viết của người dùng khác Quản trị viên có khả năng xem danh sách báo cáo, chỉnh sửa và xóa bài viết của người dùng khác, cũng như quản lý các tài khoản người kiểm duyệt.

- Áp dụng công nghệ Java - Spring Boot, ReactJS vào dự án

- Giao diện thân thiện với người dùng, đơn giản

KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

KHẢO SÁT HIỆN TRẠNG

Hình 1.1 Hình khảo sát hiện trạng trang Quantrimang.com 1

Hình 1.2 Hình khảo sát hiện trạng trang Quantrimang.com 2

+ Giao diện thân thiện, dễ sử dụng

+ Hỗ trợ đánh giá bài viết

- Quảng cáo xuất hiện nhiều

- Khả năng tương tác chưa được tốt

- Cách đăng bài còn phức tạp

Hình 1.3 Hình khảo sát hiện trạng trang Viblo 1

Hình 1.4 Hình khảo sát hiện trạng trang Viblo 2

+ Giao diện hiện đại, trẻ trung

+ Cung cấp đầy đủ các chức năng cơ bản của trang chia sẻ kiến thức

+ Cho phép người dùng bình luận, đánh giá

+ Cho phép người dùng đăng bài viết

- Bố cục trang chủ (newest) chưa thực sự cân đối và đẹp mắt

- Thiếu danh mục bài viết

Hình 1.5 Hình khảo sát hiện trạng hệ thống Podcasts 1

Hình 1.6 Hình khảo sát hiện trạng hệ thống Podcasts 2

+ Giao diện thân thiện, dễ sử dụng

- Chỉ hỗ trợ âm thanh

- Chỉ cho phép chủ kênh đăng bài.

Kết luận về những tiêu chí cần đạt được

- Hỗ trợ các chức năng cơ bản của một trang chia sẻ kiến thức

- Giao diện dễ sử dụng

- Bố cục phần chia còn chưa hợp lý

- Nhiều nội dung dư thừa được hiển thị

- Một số vẫn chưa hỗ trợ cho phép người dùng tương tác

1.2.3 Mong muốn của nhóm sau khi khảo sát

- Tạo một trang web cung cấp đầy đủ tính năng cơ bản phục vụ mục đích chia sẻ, trao đổi và trau dồi kiến thức

- Nội dung đơn giản phù hợp, hạn chế nội dung không cần thiết

- Dễ dàng sử dụng, đơn giản, thân thiện.

CƠ SỞ LÝ THUYẾT

Tổng quan công nghệ sử dụng

- Backend: Java, Spring Boot, Spring Data JPA, RESTful API

- Frontend: ReactJS và một số thư viện hỗ trợ

2.1.2 Lý do chọn công nghệ

- Java là một ngôn ngữ lập trình được triển khai rộng rãi và rất phổ biến để phát triển web

Java là ngôn ngữ lập trình hướng đối tượng phổ biến, đóng vai trò như một nền tảng tiêu chuẩn cho nhiều doanh nghiệp và nhà phát triển toàn cầu.

- Java có khả năng hoạt động tốt trên nhiều nền tảng khác nhau nhờ JVM

- Là một ngôn ngữ mạnh mẽ, an toàn và có khả năng triển khai, thực thi ứng dụng với hiệu suất cao

Spring Boot là một module trong Spring Framework, giúp giảm thiểu cấu hình và số lượng thao tác cần thiết cho nhà phát triển Nó hỗ trợ truy cập cơ sở dữ liệu như MySQL, SQL Server, Oracle thông qua Spring Data JPA Với những ưu điểm vượt trội, Spring Boot làm cho quá trình phát triển ứng dụng trở nên dễ dàng và nhanh chóng hơn.

- MySQL là dịch vụ mã nguồn mở

- MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server

MySQL là một phần mềm RDBMS nổi bật, được sử dụng để tạo và quản lý cơ sở dữ liệu, đồng thời quản lý các mối liên hệ giữa chúng một cách hiệu quả.

- MySQL linh hoạt và dễ sử dụng, hiệu năng cao và có độ an toàn đảm bảo các tiêu chuẩn bảo mật

- ReactJS là một thư viện rất đơn giản, nhẹ và dễ học do chỉ thao tác với lớp view

ReactJS sử dụng cấu trúc dựa trên JSX component, cho phép tái sử dụng các component, từ đó làm cho quá trình phát triển và bảo trì trở nên dễ dàng hơn.

- Render nhanh với Virtual DOM [4]

- Clean Abstraction, chỉ cần hiểu về life cycle, props, state thay vì các khái niệm phức tạp [4]

- Được phát triển bởi Facebook (nay là Meta) cùng với cộng đồng hỗ trợ và thư viện mạnh mẽ

- Docker là một nền tảng cung cấp cách để build, deploy và run ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nền ảo hóa) [5]

- Thuận tiện hơn khi cài đặt môi trường phát triển ứng dụng

- Hỗ trợ tốt trên nhiều nền tảng (Linux, macOS, Windows)

Docker là một nền tảng ảo hóa giúp nhà phát triển không cần lo lắng về môi trường máy chủ và các thiết lập phức tạp Nó cho phép sử dụng các dịch vụ không hỗ trợ trên hệ điều hành của máy chủ, ví dụ như MS SQL Server, vốn chỉ có thể cài đặt trên Windows và Linux Nhờ vào Docker, MS SQL Server có thể được cài đặt trên máy chủ chạy hệ điều hành macOS.

Tìm hiểu công nghệ

MySQL, được phát triển bởi công ty Thụy Điển MySQL AB vào năm 1994, đã được Sun Microsystems của Mỹ mua lại vào năm 2008 Đến năm 2010, Oracle đã thu mua Sun Microsystems và từ đó MySQL thuộc quyền sở hữu của Oracle, tiếp tục được phát triển cho đến ngày nay.

- MySQL là mã nguồn mở

- Được phát triển bởi Oracle

- Hỗ trợ tốt cho người dùng chuyên nghiệp và doanh nghiệp lớn

- Có các công cụ mạnh mẽ, đa dạng

- Tài liệu hướng dẫn và hỗ trợ phong phú

- Là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS)

- Tính năng vẫn còn nhiều giới hạn

- Độ tin cậy nhìn chung vẫn kém hơn các hệ quản trị cơ sở dữ liệu khác

Docker là nền tảng lý tưởng cho các nhà phát triển và quản trị viên hệ thống, giúp xây dựng, triển khai và chạy ứng dụng trong các container Nó cho phép tạo ra môi trường độc lập cho việc phát triển và khởi chạy ứng dụng trên nền tảng ảo hóa Khi triển khai lên server, chỉ cần chạy Docker container để ứng dụng được khởi động một cách nhanh chóng và hiệu quả.

- Có khả năng start và stop chỉ trong vài giây

- Containers có thể build và loại bỏ nhanh hơn máy ảo

- Có thể khởi chạy container trên nhiều môi trường máy chủ khác nhau (Linux, macOS, Windows)

- Dễ dàng thiết lập môi trường làm việc

- Containers yêu cầu ít tài nguyên phần cứng hơn máy ảo

- Hệ thống image trên docker hub phong phú, đa dạng

- Giữ môi trường máy chủ sạch sẽ hơn vì các container là độc lập và không ảnh hưởng trực tiếp đến môi trường máy chủ

- Không nên dùng cho phát triển các ứng dụng desktop GUI

- Docker Data Volume vẫn còn chưa thực sự tốt cho việc lưu trữ dữ liệu

Java là ngôn ngữ lập trình hướng đối tượng (OOP) dựa trên các lớp, được phát triển bởi Sun Microsystems và phát hành vào năm 1995 Khác với nhiều ngôn ngữ lập trình khác, Java biên dịch mã nguồn thành bytecode, cho phép chạy trên bất kỳ môi trường nào hỗ trợ JVM.

- Quản lý bộ nhớ tốt

- Là ngôn ngữ lập trình hướng đối tượng

- Hỗ trợ tốt cho việc phát triển với nhiều thư viện

- Là nền tảng cho Spring Framework – một hệ sinh thái mạnh mẽ

- Vẫn là một ngôn ngữ cổ điển, không thường xuyên nâng cấp các tính năng mới so với các ngôn ngữ hiện đại

- Sử dụng nhiều bộ nhớ hơn so với C# và C++

- Không có số nguyên không dấu

- Không có con trỏ hoặc tính năng tương tự

- Không cho phép lập chỉ mục hoặc toán tử trên các đối tượng

Spring Boot là một dự án phát triển trong hệ sinh thái Spring Framework, được xây dựng bằng ngôn ngữ Java Nó giúp lập trình viên đơn giản hóa quá trình phát triển ứng dụng, cho phép họ tập trung vào việc phát triển các tính năng kinh doanh của ứng dụng.

- Opinionated Dependencies, giúp nhà phát triển có thể ngay lập tức xây dựng ứng dụng và tập trung vào phát triển logic cho ứng dụng

Các ứng dụng Spring Boot có khả năng phát triển, thiết lập và chạy độc lập mà không cần thực hiện nhiều bước phức tạp, nhờ vào việc mỗi ứng dụng đã được tích hợp đầy đủ các cấu hình cần thiết.

- Hoạt động mạnh mẽ cùng với các bộ công cụ các của Spring

- Cộng đồng hỗ trợ mạnh mẽ

- Kích thước tệp phát triển lớn do có nhiều thành phần không được sử dụng

- Chỉ nên sử dụng cho các ứng dụng microservices, các ứng dụng vừa và nhỏ, không phù hợp cho các ứng dụng nguyên khối quy mô lớn

Spring Data JPA là một công cụ quan trọng trong Java, giúp quản lý dữ liệu quan hệ cho các ứng dụng Java Nó cho phép truy cập và lưu trữ dữ liệu giữa các đối tượng/class Java và các bảng trong cơ sở dữ liệu quan hệ JPA tuân theo nguyên tắc Object Relation Mapping (ORM) và bao gồm một tập hợp các interface.

JPA offers a runtime Entity Manager API for managing queries and transactions on objects based on a database It utilizes the platform-independent object-oriented query language JPQL (Java Persistent Query Language).

- Bản thân API, được định nghĩa trong persistence package

JPA không phải là một framework, nó định nghĩa một khái niệm có thể thực thi bởi bất kỳ framework nào [6]

- Đơn giản, gọn gàng và ít tốn công sức hơn JDBC, SQL và ánh xạ thủ công

- Thích hợp cho các ứng dụng phức tạp không tuân theo hiệu suất

- Dữ liệu được biểu thị bằng object/class thay vì bảng và bản ghi

- Cho phép truy vấn dưới dạng các entity Java thay vì cột và bảng trong SQL

- Hỗ trợ truy vấn bằng phương thức (Method query)

- Cần nắm rõ cơ chế hoạt động của Spring Data JPA và thiết kế database để viết code hiệu quả

ReactJS là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook (nay là Meta) được sử dụng để xây dựng giao diện người dùng

- ReactJS giúp viết code dễ dàng hơn với JSX

- Có nhiều công cụ hỗ trợ cho việc phát triển

- Thư viện và cộng đồng hỗ trợ lớn

- Hỗ trợ cả Server-Side Rendering và Client Side Rendering

- Dễ bảo trì và phát triển

- ReactJS chỉ phục vụ cho tầng view

- ReactJS chỉ là View Library, không phải MVC Framework nên không có Model và Controller, cần kết hợp với các thư viện khác

- Cần cấu hình lại khi tích hợp ReactJS vào các Framework MVC truyền thống

XÁC ĐỊNH VÀ MÔ HÌNH HÓA YÊU CẦU

Lập danh sách yêu cầu

3.1.1.1 Yêu cầu chức năng cho khách vãng lai

Bảng yêu cầu chức năng nghiệp vụ khách vãng lai

STT Chức năng Loại chức năng

1 Xem danh sách bài viết Tra cứu

2 Xem chi tiết bài viết Tra cứu

3 Xem bình luận của bài viết Tra cứu

4 Xem đánh giá của bài viết Tra cứu

Bảng quy định công thức liên quan STT Tên chức năng Ý nghĩa/Mô tả Ghi chú

1 Xem danh sách bài viết

Khi truy cập vào trang chủ, hệ thống sẽ hiển thị danh sách các bài viết trong các danh mục sắp xếp theo thời gian gần nhất

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy danh sách các bài viết trong danh mục hiện tại, được sắp xếp theo thời gian gần nhất.

2 Xem chi tiết bài viết

Khi người dùng nhấp vào một bài viết trong danh sách hoặc truy cập vào URL của bài viết, hệ thống sẽ hiển thị nội dung bài viết, thông tin tác giả, thời gian đăng bài, cùng với các bình luận và đánh giá liên quan.

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy dữ liệu chi tiết của bài viết, bao gồm thông tin về tác giả, thời gian đăng bài, đánh giá và bình luận liên quan.

3 Xem bình luận của bài viết

Dưới mỗi bài viết, người đọc có thể thấy các bình luận, bao gồm nội dung bình luận, thời gian đăng, tên người dùng và hình ảnh đại diện của người bình luận.

Hệ thống truy vấn đến database server thông qua API để lấy data danh sách các bình luận của bài viết

4 Xem đánh giá của bài viết

Mỗi bài viết bao gồm thông tin số điểm đánh giá của bài viết được người dùng đã đăng ký đánh giá

Mỗi lượt đánh giá tốt tương ứng cộng 1 điểm và ngược lại

3.1.1.2 Yêu cầu chức năng cho người dùng cơ bản

Bảng yêu cầu chức năng nghiệp vụ người dùng cơ bản

STT Chức năng Loại chức năng

1 Xem danh sách bài viết Tra cứu

2 Xem chi tiết bài viết Tra cứu

3 Xem bình luận của bài viết Tra cứu

4 Xem đánh giá của bài viết Tra cứu

5 Đánh giá bài viết Lưu trữ

6 Bình luận bài viết Lưu trữ

7 Báo cáo bài viết Lưu trữ

8 Đăng bài viết Lưu tữ

9 Chỉnh sửa bài viết sở hữu Lưu trữ

10 Xóa bài viết sở hữu Lưu trữ

Bảng quy định công thức liên quan STT Tên quy định Ý nghĩa/Mô tả Ghi chú

1 Xem danh sách bài viết

Khi truy cập vào trang chủ, hệ thống sẽ hiển thị danh sách các bài viết trong các danh mục sắp xếp theo thời gian gần nhất

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy danh sách các bài viết trong danh mục hiện tại, được sắp xếp theo thời gian gần nhất.

2 Xem chi tiết bài viết

Khi người dùng nhấp vào một bài viết trong danh sách hoặc truy cập vào URL của bài viết, hệ thống sẽ hiển thị nội dung bài viết cùng với thông tin về tác giả, thời gian đăng, cũng như các bình luận và đánh giá liên quan.

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy dữ liệu chi tiết của bài viết, bao gồm thông tin về tác giả, thời gian đăng, đánh giá và bình luận liên quan.

3 Xem bình luận của bài viết

Dưới mỗi bài viết, người đọc có thể thấy các bình luận, bao gồm nội dung bình luận, thời gian đăng, tên người dùng và hình ảnh đại diện của người bình luận.

Hệ thống truy vấn đến database server thông qua API để lấy data danh sách các bình luận của bài viết

4 Xem đánh giá của bài viết

Mỗi bài viết bao gồm thông tin số điểm đánh giá của bài viết được người dùng đã đăng ký đánh giá

Mỗi lượt đánh giá tốt tương ứng cộng 1 điểm và ngược lại

Mỗi bài viết cho phép người dùng thực hiện một lượt đánh giá, trong đó đánh giá tốt sẽ cộng 1 điểm và đánh giá xấu sẽ trừ 1 điểm Người dùng có quyền thay đổi đánh giá của mình bất cứ lúc nào.

Mỗi bài viết chỉ cho phép

1 điểm đánh giá của mỗi người dùng, do đó số điểm đánh giá của người dùng đó cho bài viết là lượt thay đổi cuối cùng

Người dùng có thể để lại bình luận dưới nội dung của mỗi bài viết

Số lượng bình luận không giới hạn

Nếu người dùng nhận thấy bài viết vi phạm tiêu chuẩn văn hóa, thuần phong mỹ tục hoặc có nội dung không hợp lệ, họ có thể báo cáo bài viết cho hệ thống kiểm duyệt hoặc quản trị viên.

Có thể báo cáo vi phạm nhiều lần để bổ sung lẫn nhau

Người dùng có khả năng đăng bài viết lên hệ thống, bao gồm các thông tin quan trọng như tiêu đề, mô tả ngắn gọn, nội dung chi tiết và hình ảnh đại diện cho bài viết.

9 Chỉnh sửa bài viết sở hữu

Người dùng có thể chỉnh sửa nội dung bài viết đã đăng trước đó

10 Xóa bài viết sở hữu

Người dùng có thể xóa bài viết bản thân sở hữu khỏi hệ thống

3.1.1.3 Yêu cầu chức năng cho người kiểm duyệt

Bảng yêu cầu chức năng nghiệp vụ người kiểm duyệt

STT Chức năng Loại chức năng

1 Xem danh sách bài viết Tra cứu

2 Xem chi tiết bài viết Tra cứu

3 Xem bình luận của bài viết Tra cứu

4 Xem đánh giá của bài viết Tra cứu

5 Đánh giá bài viết Lưu trữ

6 Bình luận bài viết Lưu trữ

7 Báo cáo bài viết Lưu trữ

8 Đăng bài viết Lưu tữ

9 Chỉnh sửa bài viết sở hữu Lưu trữ

10 Xóa bài viết Lưu trữ

11 Xem danh sách các báo cáo của các bài viết

Bảng quy định công thức liên quan STT Tên quy định Ý nghĩa/Mô tả Ghi chú

1 Xem danh sách bài viết

Khi truy cập vào trang chủ, hệ thống sẽ hiển thị danh sách các bài viết trong các danh mục sắp xếp theo thời gian gần nhất

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy danh sách các bài viết trong danh mục hiện tại, được sắp xếp theo thời gian gần nhất.

2 Xem chi tiết bài viết

Khi người dùng nhấp vào một bài viết trong danh sách hoặc truy cập vào URL của bài viết, hệ thống sẽ hiển thị nội dung bài viết, thông tin tác giả, thời gian đăng bài, cùng với các bình luận và đánh giá liên quan.

Hệ thống truy vấn đến máy chủ cơ sở dữ liệu qua API để lấy dữ liệu chi tiết của bài viết, bao gồm thông tin về tác giả, thời gian đăng, đánh giá và bình luận liên quan.

3 Xem bình luận của bài viết

Dưới mỗi bài viết, bạn sẽ tìm thấy các bình luận, bao gồm nội dung bình luận, thời gian đăng, tên người dùng và hình ảnh đại diện của người bình luận.

Hệ thống truy vấn đến database server thông qua API để lấy data danh sách các bình luận của bài viết

4 Xem đánh giá của bài viết

Mỗi bài viết bao gồm thông tin số điểm đánh giá của bài viết được người dùng đã đăng ký đánh giá

Mỗi lượt đánh giá tốt tương ứng cộng 1 điểm và ngược lại

THIẾT KẾ HỆ THỐNG

Thiết kế cơ sở dữ liệu

Hình 4.1 Thiết kế cơ dữ liệu

4.1.1 Mô tả chi tiết table app_fd_files

Bảng mô tả chi tiết table app_fd_files

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_file_name_extension Varchar(255) Tên phần mở rộng

3 c_file_name Varchar(255) Tên tệp

4.1.2 Mô tả chi tiết table dir_user

Bảng mô tả chi tiết table dir_user

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 username Varchar(255) Tên người dùng

3 password Varchar(255) Mật khẩu đã được mã hóa

4 firstName Varchar(255) Họ người dùng

5 lastName Varchar(255) Tên người dùng

6 email Varchar(255) Email người dùng

7 avatar Varchar(255) ảnh đại diện người dùng

9 active Int Trạng thái kích hoạt tài khoản

1: Kích hoạt 0: Vô hiệu hóa

4.1.3 Mô tả chi tiết table dir_role

Bảng mô tả chi tiết table dir_role

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 name Varchar(255) Tên vai trò

4.1.4 Mô tả chi tiết table dir_user_role

Bảng mô tả chi tiết table dir_user_role

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 roleId Varchar(255) Id của vai trò

2 userId Varchar(255) Id của người dùng

4.1.5 Mô tả chi tiết table app_fd_category

Bảng mô tả chi tiết table app_fd_category

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id của danh mục

3 dateModified datetime Ngày chỉnh sửa gần nhất

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Người chỉnh sửa

8 c_name Varchar(255) Tên danh mục

4.1.6 Mô tả chi tiết app_fd_article_tag

Bảng mô tả chi tiết table app_fd_article_tag

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_category Varchar(255) Id danh mục

3 c_tag_name Varchar(255) Tên tag

4.1.7 Mô tả chi tiết table app_fd_article

Bảng mô tả chi tiết table app_fd_article

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id bài viết

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi người dùng nào

5 createdByName Varchar(255) Tên người dùng khởi tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_title Varchar(255) Tiêu đề bài viết

9 c_description Varchar(255) Mô tả ngắn gọn

10 c_content longtext Nội dung bài viết

12 c_author Varchar(255) Người dùng đăng bài

13 c_url Varchar(255) Một phần của url của bài viết

14 c_category Varchar(255) Id danh mục bài viết

16 c_thumbnail_url longtext Dẫn tới ảnh tượng trưng cho bài viết

17 c_hidden Int Ẩn/hiển thị bài viết 0: Hiển thị

4.1.9 Mô tả chi tiết table app_fd_article_tag_rel

Bảng mô tả chi tiết table app_fd_article_tag_rel

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_tag_id Varchar(255) Id của thẻ bài viết

3 c_article_id Varchar(255) Id của bài viết

4.1.10 Mô tả chi tiết table app_fd_comment

Bảng mô tả chi tiết table app_fd_comment

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Int Id của bình luận

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi người dùng nào

5 createdByName Varchar(255) Tên người dung khởi tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_author Varchar(255) Tên người dùng viết bình luận

9 c_article_id Int Id của bài viết

10 c_content longtext Nôi dung bình luận

11 c_hidden int Ẩn/hiển thị bình luận 0: Hiển thị

4.1.11 Mô tả chi tiết table app_fd_user_vote_state

Bảng mô tả chi tiết app_fd_user_vote_state

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id của lượt đánh giá

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi

5 createdByName Varchar(255) Tên người tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_article_id Varchar(255) Id của bài viết

9 c_author Varchar(255) Tên người dùng đánh giá

10 c_vote_state Int Trạng thái đánh giá của người dùng đối với bài viết

4.1.12 Mô tả chi tiết table app_fd_interaction

Bảng mô tả chi tiết table app_fd_interaction

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 c_article_id Varchar(255) Id bài viết

2 c_comment_score int Số điểm tương tác tính bằng các bình luận

3 c_vote_score int Số điểm tương tác tính bằng lượt đánh giá

4.1.13 Mô tả chi tiết table app_fd_report_category

Bảng mô tả chi tiết table app_fd_report_category

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id của danh mục báo cáo

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi

5 createdByName Varchar(255) Tên người tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_name Varchar(255) Tên danh mục báo cáo

9 c_type Varchar(255) Loại báo cáo

4.1.14 Mô tả chi tiết table app_fd_article_report

Bảng mô tả chi tiết table app_fd_article_report

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Int Id của báo cáo

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi

5 createdByName Varchar(255) Tên người tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_article_id Int Id bài viết

9 c_author Varchar(255) Người dùng gửi báo cáo

10 c_content Varchar(255) Nội dung báo cáo

11 c_is_solved Varchar(255) Trạng thái giải quyết báo cáo

4.1.15 Mô tả chi tiết table app_fd_article_report_category_rel

Bảng mô tả chi tiết table app_fd_article_report_category_rel

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_article_report_id datetime ID bài viết được báo cáo

3 c_report_category_id datetime ID danh mục báo cáo

4.1.16 Mô tả chi tiết table app_fd_comment_report

Bảng mô tả chi tiết table app_fd_comment_report

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id của báo cáo

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi người dùng nào

5 createdByName Varchar(255) Tên người dùng khởi tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_comment_id Varchar(255) Id của comment

9 c_author Varchar(255) Tên người viết

11 c_is_solved int Tình trạng xử lý

4.1.17 Mô tả chi tiết table app_fd_comment_report_category_rel

Bảng mô tả chi tiết table app_fd_comment_report_category_rel

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) Id của báo cáo

2 c_article_report_id datetime ID bài viết bị báo cáo

3 c_report_category_id datetime ID danh mục bài báo cáo

4.1.18 Mô tả chi tiết table app_fd_user_report

Bảng mô tả chi tiết table app_fd_user_report

STT Tên cột Kiểu Ý nghĩa Ghi chú

1 id Varchar(255) ID báo cáo

2 dateCreated datetime Ngày khởi tạo

3 dateModified datetime Ngày chỉnh sửa

4 createdBy Varchar(255) Được tạo bởi

5 createdByName Varchar(255) Tên người tạo

6 modifiedBy Varchar(255) Người chỉnh sửa

7 modifiedByName Varchar(255) Tên người chỉnh sửa

8 c_user_id Varchar(255) ID người dùng

10 c_content longtext Nội dung báo cáo

11 c_is_solved int Tình trạng xử lý

4.1.19 Mô tả chi tiết table app_fd_user_report_category_rel

Bảng mô tả chi tiết table app_fd_user_report_category_rel

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_user_report_id Varchar(255) ID user bị báo cáo

3 c_report_category_id Varchar(255) ID danh mục báo cáo

4.1.20 Mô tả chi tiết table app_fd_articles_for_home

Bảng mô tả chi tiết table app_fd_articles_for_home

STT Tên cột Kiểu Ý nghĩa Ghi chú

2 c_article_id Varchar(255) ID bài viết

3 dateCreated datetime Ngày khởi tạo

4 dateModified datetime Ngày chỉnh sửa

5 c_type Varchar(255) Loại bài viết

Thiết kế giao diện

Hình 4.3 Sơ đồ màn hình

Trang chủ Đăng nhập Đăng ký

Chi tiết bài viết Đánh giá

Bình luận Báo cáo bài viết

Chỉnh sửa bài viết Đăng bài viết

Danh sách báo cáo bà

Danh sách tất cả báo c

Thêm người kiểm duyệt Đổi mật khẩu người kiểm duy Đổi mật khẩu

Viewer does not support full SVG 1.1

Hình 4.4 Hình màn hình chính

Bảng mô tả màn hình chính

STT Tên đối tượng Loại đối tượng Sự kiện

1 Logo Link Khi click vào sẽ dẫn đến trang chủ hệ thống

2 Link dẫn đến trang chủ

Link Khi click vào sẽ dẫn đến trang chủ hệ thống

3 Link dẫn đến danh mục bài biết

Link Khi click vào sẽ dẫn đến trang danh mục bài viết

Link Khi click vào sẽ dẫn đến Facebook nhóm phát triển

Link Khi click vào sẽ dẫn đến Github nhóm phát triển

6 Các nút lệnh chức năng

Link Khi click vào sẽ dẫn đến các chức năng tương ứng

7,8 Ảnh đại diện và tên người dùng

Khi click vào sẽ hiển thị menu gồm các lựa chọn chức năng dành cho người dùng

Danh mục bài viết được đề cử

Link Dẫn đến các bài viết được đề cử cho người đọc

10 Danh sách các bài viết đang đọc

Link Dẫn đến các bài viết đang đọc gần đây

11 Danh sách bài viết vừa cập nhật

Text Các bài viết được người dùng cập nhật sớm nhất

12 Bảng xếp hạng bài viết

Link Xếp hạng bài viết thuộc có chất lượng và lượt đọc theo tuần/tháng

13 Bảng xếp hạng bài viết có chất lượng tốt

Link Xếp hạng bài viết thuộc có chất lượng tốt nhất

14 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.2 Màn hình danh mục bài viết

Hình 4.5 Hình màn hình danh mục bài viết

Bảng mô tả màn hình danh mục bài viết STT Tên đối tượng Loại đối tượng Sự kiện

1 Logo Link Khi click vào sẽ dẫn đến trang chủ hệ thống

2 Link dẫn đến trang chủ

Link Khi click vào sẽ dẫn đến trang chủ hệ thống

3 Link dẫn đến danh mục bài biết

Link Khi click vào sẽ dẫn đến trang danh mục bài viết

Link Khi click vào sẽ dẫn đến Facebook nhóm phát triển

Link Khi click vào sẽ dẫn đến Github nhóm phát triển

6 Các nút lệnh chức năng

Link Khi click vào sẽ dẫn đến các chức năng tương ứng

7,8 Ảnh đại diện và tên người dùng

Khi click vào sẽ hiển thị menu gồm các lựa chức năng dành cho người dùng

Danh mục phân loại bài viết

Link Dẫn đến các bài viết theo từng danh mục

Link Danh sách các bài viết ở danh mục tương ứng

11 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.3 Màn hình đăng bài viết

Hình 4.6 Hình màn hình đăng bài viết

Bảng mô tả màn hình đăng bài viết

STT Tên đối tượng Loại đối tượng Sự kiện

1 Logo Link Khi click vào sẽ dẫn đến trang chủ hệ thống

2 Link dẫn đến trang chủ

Link Khi click vào sẽ dẫn đến trang chủ hệ thống

3 Link dẫn đến danh mục bài biết

Link Khi click vào sẽ dẫn đến trang danh mục bài viết

Link Khi click vào sẽ dẫn đến Facebook nhóm phát triển

Link Khi click vào sẽ dẫn đến Github nhóm phát triển

6 Các nút lệnh chức năng

Link Khi click vào sẽ dẫn đến các chức năng tương ứng

7,8 Ảnh đại diện và tên người dùng

Khi click vào sẽ hiển thị menu gồm các lựa chức năng dành cho người dùng

9 Tiêu đề bài viết Text Người viết bài đặt tiêu đề cho bài viết

10 Mô tả ngắn về bài viết

Text Mô tả ngắn gọn về bài viết

11 Nội dung chính của bài viết

Text Người viết bài viết chi tiết nội dung muốn đăng tải

12 Hình ảnh tượng trưng của bài viết file Người viết bài thêm ảnh minh hoạt cho bài viết

Text Người viết bài phân loại cho bài viết

11 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.4 Màn hình nội dung bài viết

Bảng mô tả màn hình nội dung bài viết STT Tên đối tượng Loại đối tượng Sự kiện

STT Tên đối tượng Loại đối tượng Sự kiện

1 Logo Link Khi click vào sẽ dẫn đến trang chủ hệ thống

2 Link dẫn đến trang chủ Link Khi click vào sẽ dẫn đến trang chủ hệ thống

3 Link dẫn đến danh mục bài biết

Link Khi click vào sẽ dẫn đến trang danh mục bài viết

4 Link dẫn tới Facebook nhóm phát triển

Link Khi click vào sẽ dẫn đến

5 Link dẫn tới Github nhóm phát triển

Link Khi click vào sẽ dẫn đến Github nhóm phát triển

6 Các nút lệnh chức năng Link Khi click vào sẽ dẫn đến các chức năng tương ứng 7,8 Ảnh đại diện và tên người dùng

Khi click vào sẽ hiển thị menu gồm các lựa chức năng dành cho người dùng

9 Danh mục phân loại bài viết

Link Khi click vào sẽ dẫn đến danh mục các bài viết tương ứng

10 Tiêu đề bài viết Text Tiêu đề của bài viết

11 Các nút lệnh cài đặt bài viết

Button Click để thực hiện các cài đặt về bài viết

12 Nội dung bài viết Text Hiển thị nội dung chính của bài viết

13 Nút báo cáo bài viết Button Báo cáo bài viết

14 Trường nhập nội dung bình luận và nút gửi bình luận

Input Nhập nôi dung bình luận và click gửi bình luận về bài viết lên hệ thống

15 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.5 Màn hình danh sách báo cáo bài viết

Hình 4.8 Hình màn hình danh sách báo cáo bài viết

STT Tên đối tượng Loại đối tượng Sự kiện

1 Quản lý báo cáo bài viết

Object Đưa người dùng đến trang quản lý các bài viết bị báo cáo vi phạm

2 Quản lý báo cáo bình luận

Object Đưa người dùng đến trang quản lý các bình luận bị báo cáo vi phạm

3 Trang quản lý báo cáo

Quản lý các bài viết bị báo cáo là vi phạm Hiển thị các thông tin của bài viết bị báo cáo vi phạm

4 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.6 Màn hình danh sách tài khoản người kiểm duyệt

Hình 4.9 Hình màn hình danh sách tài khoản người kiểm duyệt

Bảng mô tả màn hình danh sách tài khoản người kiểm duyệt STT Tên đối tượng Loại đối tượng Sự kiện

1 Quản lý danh mục Object Đưa người dùng đến mục quản lý danh mục bài viết

2 Quản lý tài khoản Object Đưa người dùng đến mục quản lý tài khoản người dùng

3 Quản lý phân loại bài viết

Object Đưa người dùng đến mục quản lý danh sách các phân loại cho bài viết

Button Click hiển thị màn hình tạo tài khoản Người kiểm duyệt mới

5 Màn hình quản trị Object Quản trị viên sử dụng để quản lý người dùng

Button hình ổ khóa: kích hoạt/vô hiệu hóa tài khoản

Change password dùng để đổi mật khẩu người dùng

6 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

4.2.8 Màn hình danh sách phân loại bài viết

Hình 4.10 Hình màn hình danh sách quản lý phân loại bài viết

Bảng mô tả màn hình quản lý phân loại bài viết

STT Tên đối tượng Loại đối tượng Sự kiện

1 Quản lý danh mục Object Đưa người dùng đến mục quản lý danh mục bài viết

2 Quản lý tài khoản Object Đưa người dùng đến mục quản lý tài khoản người dùng

3 Quản lý thẻ bài viết

Object Đưa người dùng đến mục quản lý danh sách các phân loại cho bài viết

4 Nút tạo danh mục mới cho bài viết

Button Click hiển thị màn hình tạo danh mục mới cho bài viết

Object Quản lý danh mục bài viết

6 Chân trang của trang web

Text Chứa thông tin của trang web và nhóm phát triển

Các lược đồ sequence chính

Hình 4.11 Lược đồ sequence đăng ký tài khoản

- Người dùng vãng lai đăng ký tài khoản Người dùng cơ bản để thực hiện nhiều tính năng tương tác với hệ thống

- Nhập thông tin username và mật khẩu

- Gửi thông tin đăng ký lên hệ thống, hệ thống kiểm tra liệu username đã tồn tại

Nếu username chưa tồn tại, hãy lưu thông tin tài khoản mới vào cơ sở dữ liệu và thông báo cho người dùng rằng việc đăng ký đã thành công.

Form Dang Ky Back-End Database alt kiemTraHopLe

- Nếu username đã tồn tại, thông báo cho người dùng đăng ký thất bại

Hình 4.12 Lược đồ sequence đăng nhập

- Người dùng đăng nhập hệ thống với username và mật khẩu của mình

- Nhập thông tin username và mật khẩu

- Gửi thông tin đăng nhập lên Back-End

- Back-End truy vấn thông tin người dùng từ database với username

- Nếu thông tin khớp với database, trả về token và thông báo đăng nhập thành công

- Nếu thông tin không trùng khớp với database, trả về thông báo đăng nhập thất bại sd DangNhap

Form Dang Nhap Back-End Database alt KiemTraThongTinDangNhap

TraVeThongTinUser(): User GetUserFromUsername(username): User GuiThongTinDangNhap(username, password): token

Hình 4.13 Lược đồ sequence đăng bài viết

- Người dùng đăng nhập với username và mật khẩu của mình

Chọn chức năng đăng bài viết và cung cấp thông tin cần thiết như tiêu đề, mô tả ngắn gọn, nội dung văn bản (markdown), hình ảnh đại diện và tệp âm thanh liên quan đến bài viết.

- Back-End lưu ảnh tượng trưng và tệp âm thanh vào StorageService và trả về thông tin đã lưu

- Back-End gửi thông tin bài viết cùng với thông tin đã lưu của ảnh và âm thanh xuống database

- Database thông báo lưu thành công

- Back-End trả về thông báo lưu thành công bài viết cho người dùng sd DangBaiViet

FormDangBaiViet Back-End StorageService Database

ThongBaoLuuThanhCong() LuuThongTinBaiViet(baiViet, imageInfo, audioInfo)

Hình 4.14 Lược đồ sequence chỉnh sửa bài viết

- Người dùng đăng nhập với username và mật khẩu

- Bài viết thuộc sở hữu của người dùng hoặc người dùng là admin

- Người dùng gửi thông tin cập nhật bài viết lên Back-End

- Back-End gửi ảnh tượng trưng và tệp âm thanh mới đến StorageService

- StorageService lưu ảnh, tệp âm thanh và trả về thông tin đã lưu

- Back-End gửi thông tin bài viết cùng thông tin ảnh, âm thanh đã lưu đến database

- Database lưu thông tin bài viết và trả về thông báo lưu thành công

- Back-End gửi thông báo lưu thành công về người dùng sd ChinhSuaBaiViet

FormChinhSuaBaiViet Back-End StorageService Database

4.3.5 Gửi báo cáo bài viết

Hình 4.15 Lược đồ sequence gửi báo cáo bài viết

- Người dùng đăng nhập với username và mật khẩu

- Người dùng gửi thông tin báo cáo bài viết đến Back-End

- Back-End gửi thông tin báo cáo đến database

- Database lưu thông tin báo cáo về bài viết và gửi thông báo lưu thành công đến Back-End

- Back-End gửi thông báo thành công đến người dùng sd BaoCaoBaiViet

CÀI ĐẶT VÀ THỬ NGHIỆM

Ngày đăng: 17/07/2023, 14:12

HÌNH ẢNH LIÊN QUAN

Hình 1.1.  Hình khảo sát hiện trạng trang Quantrimang.com 1 - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 1.1. Hình khảo sát hiện trạng trang Quantrimang.com 1 (Trang 19)
Hình 1.2.  Hình khảo sát hiện trạng trang Quantrimang.com 2 - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 1.2. Hình khảo sát hiện trạng trang Quantrimang.com 2 (Trang 20)
Hình 1.6.  Hình khảo sát hiện trạng hệ thống Podcasts 2 - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 1.6. Hình khảo sát hiện trạng hệ thống Podcasts 2 (Trang 23)
Hình 3.1.  Lược đồ tổng quan Use case - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 3.1. Lược đồ tổng quan Use case (Trang 45)
Hình 4.1.  Thiết kế cơ dữ liệu - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.1. Thiết kế cơ dữ liệu (Trang 61)
Hình 4.3.  Sơ đồ màn hình - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.3. Sơ đồ màn hình (Trang 71)
Hình 4.4.  Hình màn hình chính - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.4. Hình màn hình chính (Trang 72)
Hình 4.5.  Hình màn hình danh mục bài viết - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.5. Hình màn hình danh mục bài viết (Trang 74)
Hình 4.6.  Hình màn hình đăng bài viết - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.6. Hình màn hình đăng bài viết (Trang 76)
Hình 4.10.  Hình màn hình danh sách quản lý phân loại bài viết - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.10. Hình màn hình danh sách quản lý phân loại bài viết (Trang 83)
Hình 4.12.  Lược đồ sequence đăng nhập - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.12. Lược đồ sequence đăng nhập (Trang 85)
Hình 4.13.  Lược đồ sequence đăng bài viết - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.13. Lược đồ sequence đăng bài viết (Trang 86)
Hình 4.15.  Lược đồ sequence gửi báo cáo bài viết - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Hình 4.15. Lược đồ sequence gửi báo cáo bài viết (Trang 88)
Bảng kiểm thử chức năng xác thực email - Xây Dựng Website Chia Sẻ Kiến Thức.pdf
Bảng ki ểm thử chức năng xác thực email (Trang 94)

TỪ KHÓA LIÊN QUAN

w