Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, nhu cầu sử dụng mạng xã hội ngày càng gia tăng sâu rộng trong đời sống xã hội. Mạng xã hội không chỉ đơn thuần là phương tiện giải trí mà đã trở thành công cụ thiết yếu để kết nối cộng đồng, chia sẻ trải nghiệm, quản lý mối quan hệ, tạo dựng thương hiệu cá nhân, quảng cáo và phát triển kinh doanh trực tuyến. Xuất phát từ thực tiễn đó, đồ án chuyên ngành "Xây dựng mạng xã hội chia sẻ ảnh và video" được thực hiện tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP.HCM bởi nhóm tác giả Phạm Thị Thu Trang và Nguyễn Trần Cẩm Tiên, dưới sự hướng dẫn của TS. Đỗ Thị Thanh Tuyền, nhằm xây dựng ứng dụng mạng xã hội trực quan có tên gọi InStare.

Về mục tiêu nghiên cứu và phát triển, tác giả xác định 7 nhiệm vụ trọng tâm:

  1. Xây dựng một cộng đồng kết nối những người có cùng sở thích, sở trường, tạo điều kiện chia sẻ và thiết lập các mối quan hệ xã hội.
  2. Cung cấp nền tảng giao tiếp trực tiếp giữa người dùng thông qua hệ thống nhắn tin thời gian thực.
  3. Cho phép chia sẻ nội dung đa phương tiện bao gồm hình ảnh và video đến lượng lớn người dùng trong cộng đồng.
  4. Cung cấp các công cụ và tính năng hỗ trợ nâng cao tầm nhìn, tạo giá trị cộng đồng và đóng góp vào trải nghiệm sống của người sử dụng.
  5. Thiết kế và phát triển ứng dụng web chất lượng cao, đáp ứng đầy đủ yêu cầu người dùng, đảm bảo tính ổn định và an toàn hệ thống.
  6. Tối ưu hóa trải nghiệm người dùng thông qua hệ thống giao diện trực quan, dễ thao tác, nâng cao hiệu suất và tính năng tương tác.
  7. Thiết kế và triển khai hệ thống lưu trữ, quản lý dữ liệu hiệu quả, đáp ứng khả năng mở rộng.

Về đối tượng sử dụng, hệ thống hướng tới người dùng đại chúng (thông thường từ 13 tuổi trở lên), bao gồm cá nhân, tổ chức, doanh nghiệp và các nhóm cộng đồng có nhu cầu chia sẻ hình ảnh, video và tương tác trực tuyến.

Về phạm vi và ca nghiên cứu tham khảo, đồ án tiến hành khảo sát và phân tích các mô hình mạng xã hội hàng đầu trên thế giới gồm Instagram, Facebook và Twitter để rút ra các đặc trưng nghiệp vụ, mô hình tương tác và quy chuẩn trải nghiệm người dùng cho hệ thống InStare.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ nền tảng

Đồ án tổng hợp và áp dụng các cơ sở lý thuyết về phát triển phần mềm web hiện đại, bao gồm:

  • JavaScript và TypeScript: JavaScript đảm nhiệm xử lý tương tác động ở cả client-side và server-side. TypeScript (ngôn ngữ do Anders Hejlsberg tại Microsoft phát triển, phát triển trên nền chuẩn ECMAScript 2015 - ES6) được tích hợp nhằm bổ sung cơ chế kiểm tra kiểu tĩnh (static typing), cấu trúc hướng đối tượng, hỗ trợ tái cấu trúc mã nguồn bằng các tính năng Rename Symbol, Find All Occurrences và RegEx.
  • NodeJS và NestJS: Nền tảng thực thi JavaScript phía máy chủ xây dựng trên engine V8 của Google, hoạt động theo mô hình hướng sự kiện và non-blocking I/O luồng đơn, tối ưu cho các tác vụ thời gian thực và xử lý nhiều kết nối đồng thời. Hệ thống sử dụng các module cốt lõi của NodeJS gồm Cluster, Stream (Readable, Writable, Duplex, Transform kết hợp Buffer), Global, Console, Error Handling, Domain và DNS.
  • ReactJS: Thư viện mã nguồn mở do Facebook phát triển (2013) dành cho tầng hiển thị (View), ứng dụng mô hình luồng dữ liệu một chiều, cấu trúc Virtual DOM giảm thiểu truy xuất trực tiếp cây DOM thực, kết hợp Redux để quản lý trạng thái ứng dụng.
  • Hệ quản trị cơ sở dữ liệu MongoDB và Redis: MongoDB là hệ quản trị cơ sở dữ liệu NoSQL dạng Document/Collection mã nguồn mở viết bằng C++, hoạt động qua cổng 27017, sử dụng định danh duy nhất _id kiểu ObjectId, cơ chế lưu bộ đệm trên RAM và đồng bộ ghi xuống ổ cứng định kỳ sau 60 giây. Redis (Remote Dictionary Server) đóng vai trò bộ nhớ đệm in-memory dạng key-value, giúp tăng tốc truy xuất và giảm tải cho hệ thống lưu trữ chính.
Tiêu chí Redis MongoDB MySQL
Github Star 57.4k - -
Cấu trúc dữ liệu Key-value store Document (NoSQL) Relational (SQL)
Hiệu suất Rất cao Cao Cao
Khóa ngoại Không Không Có
Giao tác (Transaction) Khóa tối ưu thực thi các tập lệnh Multi-document ACID với Snapshot isolation ACID Transactions
Phân quyền Kiểm soát truy cập theo passcode Phân quyền theo vai trò (Role) User được ủy quyền cụ thể
In-memory Có Có Có

Phương pháp nghiên cứu và quy trình phát triển

Đồ án áp dụng quy trình công nghệ phần mềm tiêu chuẩn qua 5 bước thực hiện:

  • Bước 1: Xác định yêu cầu: Phân tích tính khả thi và quy mô dự án; khảo sát người dùng qua mạng; tìm hiểu quy trình nghiệp vụ; trải nghiệm thực tế các ứng dụng tương tự; tổng hợp tài liệu đặc tả yêu cầu.
  • Bước 2: Thiết kế hệ thống: Xây dựng biểu đồ Use-case tổng quan; xây dựng hệ thống biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram).
  • Bước 3: Thiết kế dữ liệu: Xác định danh sách bảng/tập hợp dữ liệu; thiết kế sơ đồ dữ liệu logic đảm bảo tính đúng đắn, hiệu năng truy xuất và khả năng tiến hóa của phần mềm.
  • Bước 4: Thiết kế giao diện: Lập danh sách màn hình tương tác; mô tả đối tượng giao diện; xác định các chức năng tương ứng trên từng giao diện thông qua công cụ Figma.
  • Bước 5: Lập trình và kiểm thử: Viết mã nguồn theo mô hình phân tầng; phân chia nhiệm vụ theo module; xây dựng kịch bản kiểm thử (testcase) để đánh giá tính đúng đắn và hiệu quả vận hành.

Môi trường phát triển bao gồm: Hệ điều hành Windows 10; công cụ phân tích thiết kế Figma, draw.io, StarUML; môi trường lập trình Visual Studio Code; công cụ quản lý phiên bản Git; công cụ làm việc nhóm Notion, Google Drive, Microsoft Teams, Facebook Messenger; thư viện truyền thông thời gian thực Socket.


Thiết kế và triển khai

Kiến trúc tổng quan hệ thống

Hệ thống InStare được thiết kế theo mô hình kiến trúc 3 tầng (3-tier architecture):

STT Tầng kiến trúc Diễn giải chức năng Ứng dụng/Công nghệ
1 Presentation Layer Hiển thị giao diện người dùng, biểu mẫu nhập liệu, danh sách và tiếp nhận tương tác người dùng Trình duyệt web (Web Browser)
2 Application Layer Xử lý logic nghiệp vụ, điều phối yêu cầu và trả kết quả về tầng giao diện Máy chủ ứng dụng (Web Server / NodeJS, NestJS)
3 Data Layer Lưu trữ dữ liệu lâu dài và thực hiện các thao tác thêm, xóa, sửa, truy vấn dữ liệu MongoDB, Redis

Đặc tả yêu cầu phi chức năng

Hệ thống thiết lập các ràng buộc kỹ thuật nghiêm ngặt về hiệu suất, bảo mật, tính tiện dụng và an toàn:

Lĩnh vực Nghiệp vụ Chỉ số/Yêu cầu kỹ thuật Ghi chú
Hiệu suất Tải bảng tin 5 - 10 tin/lần Phân trang nội dung
Tương tác & Thông báo Ngay tức thì Sử dụng kết nối Socket
Nhắn tin & Thông báo Ngay tức thì Thời gian thực
Tìm kiếm 10 kết quả/lần Lọc theo tên/username
Đăng tải bài viết Dưới 5 phút Xử lý tệp hình ảnh/video
Cập nhật hồ sơ Ngay tức thì -
Báo cáo bài viết/hồ sơ Dưới 5 phút Ghi nhận vào hàng đợi duyệt
Tiện dụng Tỉ lệ phạm lỗi Trung bình 1% Cho toàn bộ các thao tác chính
Thời gian học thao tác Không cần hướng dẫn hoặc dưới 5 phút Giao diện chuẩn hóa
Bảo mật Mã hóa mật khẩu Thuật toán Argon2 Bảo vệ chống tấn khoản
Quy tắc đổi username Giới hạn tối thiểu 14 ngày/lần Thuộc tính usernameLastChanged
Phân quyền vai trò 3 nhóm: Hệ thống, Người dùng, Quản trị viên Kiểm soát theo ma trận 13 tác vụ
An toàn Khôi phục dữ liệu Không hỗ trợ khôi phục -
Hủy thật sự Bài đăng đã xóa, lịch sử tìm kiếm Xóa vật lý khỏi cơ sở dữ liệu
Ngăn chặn xóa Tài khoản người dùng, tin nhắn Lưu vết hệ thống
Bảo trì Sửa lỗi & Phát triển Xác định lỗi trong 15 phút, sửa lỗi trung bình 1 giờ Hoàn thành xây dựng trong 8-10 tuần

Mô hình Use-case và Phân tích thiết kế chi tiết

Hệ thống xác định 2 tác nhân (Actor): Người dùng (thực hiện tương tác mạng xã hội) và Quản trị viên (kiểm duyệt nội dung, xử lý vi phạm). Hệ thống bao gồm 12 Use-case chính: Đăng nhập; Truy cập và tải bảng tin; Quản lý hồ sơ cá nhân; Tương tác với bài đăng; Tạo bài đăng; Theo dõi người dùng; Nhắn tin; Xem bài đăng; Xem hồ sơ người dùng; Tìm kiếm người dùng; Quản lý tài khoản; Quản lý bài đăng.

Hệ thống sơ đồ thiết kế chi tiết gồm:

  • Biểu đồ hoạt động (9 Activity Diagrams): Đăng nhập, Quản lý hồ sơ cá nhân, Tương tác với bài đăng, Tạo bài đăng, Xóa bài đăng, Theo dõi người dùng, Nhắn tin, Báo cáo tài khoản, Báo cáo bài đăng.
  • Biểu đồ tuần tự (9 Sequence Diagrams): Đăng nhập, Quản lý hồ sơ cá nhân, Tương tác với bài đăng, Tạo bài đăng, Xóa bài đăng, Theo dõi người dùng, Nhắn tin, Báo cáo tài khoản, Báo cáo bài đăng.
  • Biểu đồ lớp (Class Diagram) với 14 thực thể/bảng dữ liệu:
Tên Lớp/Bảng Thuộc tính chính Phương thức chính
User userId, email, username, password (Argon2), name, ava, bio, usernameLastChanged getUser(), updateProfile(), changePassword(), removeAva(), searchUser(), viewUserProfile()
Post postId, userId, mediaList (tối đa 10 tệp), caption, createdAt, layout, emotion createPost(), getAllPosts(), viewPost(), sharePost()
Like likeId, postId, userId, react likePost(), dislikePost()
Comment cmtId, postId, userId comment()
Story storyId, userId, media, createdAt, expiredAt createStory(), getAllStories(), getUserStories()
ViewedStory viewedId, storyId, userId viewStory()
Follow followId, followerId, followingId followUser(), unfollowUser()
Notification notiId, notiType, notifiedUserId, interactedUserId, postId, read, createdAt getUserNotification(), readNotification()
Conversation conversationId enterConversation()
Participant userId, conversationId getListContact()
Message messageId, conversationId, senderId, message, read, createdAt message()
Tag tagId, postId, userId tagUser()
Report reportId, reportedUserId, postId, resolved, result, type getPostReport(), getAccountReport(), getReport(id), resolveReport(id)
ReportReason reasonId, userId, reportId, reason, createdAt viewReason()

Nội dung chính theo từng chương

Chương 1: GIỚI THIỆU ĐỀ TÀI

Chương 1 trình bày tổng quan về đề tài xây dựng mạng xã hội InStare, phân tích khái niệm mạng xã hội và định hình mục tiêu nghiên cứu. Nhóm tác giả xác định rõ các yêu cầu về nghiệp vụ, đối tượng sử dụng (từ 13 tuổi trở lên), nghiên cứu các ca điển hình từ Instagram, Facebook, Twitter. Chương này cũng thiết lập danh mục công cụ, môi trường phát triển (Windows 10, VS Code, NodeJS, ReactJS, MongoDB, Redis) và xác định quy trình phát triển 5 giai đoạn từ thu thập yêu cầu đến triển khai kiểm thử.

Chương 2: CƠ SỞ LÝ THUYẾT

Chương 2 đi sâu phân tích nền tảng lý thuyết và công nghệ được lựa chọn. Tác giả trình bày cấu trúc, ưu điểm, nhược điểm của JavaScript, TypeScript, NodeJS, ReactJS, MongoDB và Redis. Nội dung nổi bật là bảng phân tích so sánh kỹ thuật giữa Redis, MongoDB và cơ sở dữ liệu quan hệ MySQL trên các khía cạnh: cấu trúc dữ liệu, hiệu suất, khóa ngoại, khả năng xử lý giao tác ACID/Snapshot isolation, phân quyền truy cập và cơ chế in-memory.

Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Chương 3 là phần trọng tâm về kỹ thuật phần mềm của đồ án. Tác giả xây dựng chi tiết:

  • Hệ thống yêu cầu nghiệp vụ, yêu cầu chức năng và hệ thống bảng đặc tả 6 nhóm yêu cầu phi chức năng (hiệu suất, tiện dụng, tương thích, bảo mật, an toàn, công nghệ).
  • Mô hình Use-case tổng quan với 2 tác nhân và 12 ca sử dụng.
  • Thiết kế chi tiết luồng xử lý thông qua 9 biểu đồ hoạt động và 9 biểu đồ tuần tự.
  • Thiết kế cơ sở dữ liệu chi tiết qua Class Diagram với đầy đủ 14 thực thể, bao gồm kiểu dữ liệu thuộc tính và đặc tả phương thức.
  • Mô tả kiến trúc hệ thống 3 tầng phân tách rõ ràng vai trò của Presentation, Application và Data.

Chương 4: XÂY DỰNG ỨNG DỤNG

Chương 4 mô tả kết quả hiện thực hóa toàn bộ hệ thống giao diện và chức năng của ứng dụng InStare qua 38 màn hình:

  • Phân hệ xác thực: Màn hình Đăng nhập, Đăng ký (tích hợp gửi mã OTP xác thực qua email), Quên mật khẩu, Tạo mật khẩu mới, Đổi mật khẩu.
  • Phân hệ bảng tin và tương tác: Trang chủ hiển thị bài đăng, chi tiết bài đăng, chia sẻ bài đăng, menu điều hướng người dùng và quản trị viên.
  • Phân hệ tạo và biên tập nội dung: Đăng bài viết (tối đa 10 ảnh/video kèm cảm xúc, vị trí, bố cục layout); bộ công cụ chỉnh sửa hình ảnh chuyên sâu gồm cắt ảnh, chỉnh sửa màu sắc, áp dụng bộ lọc và chèn văn bản (lựa chọn font, màu nền, màu chữ).
  • Phân hệ hồ sơ và kết nối: Hồ sơ cá nhân (chế độ xem bản thân và người dùng khác), chỉnh sửa tiểu sử, cập nhật ảnh đại diện, theo dõi người dùng, tìm kiếm tài khoản.
  • Phân hệ Story (bản tin 24 giờ): Danh sách story, tạo story dạng văn bản, tạo story hình ảnh/video kết hợp cắt ảnh, chỉnh màu, áp dụng bộ lọc và chèn chữ nghệ thuật.
  • Phân hệ nhắn tin và truyền thông thời gian thực: Khung chat trang chủ, danh bạ liên lạc, màn hình tin nhắn, tạo phiên phát trực tiếp (livestream), giao diện livestream và kết thúc livestream.
  • Phân hệ quản trị (Admin Dashboard): Quản lý danh sách báo cáo vi phạm, màn hình chi tiết bài đăng bị báo cáo, tài khoản bị báo cáo, giao diện duyệt báo cáo và thông báo kết quả xử lý (vi phạm hoặc không vi phạm).

Chương 5: KẾT LUẬN

Chương 5 tổng kết toàn bộ kết quả đạt được của đồ án, đánh giá khách quan các ưu điểm về mặt tính năng và kiến trúc, đồng thời chỉ rõ những điểm hạn chế kỹ thuật còn tồn đọng và đề xuất các định hướng hoàn thiện hệ thống trong tương lai.


Kết quả và đóng góp

Kết quả chính đạt được

  • Xây dựng hoàn chỉnh ứng dụng mạng xã hội InStare với đầy đủ tính năng tương tác mạng xã hội trực quan, hỗ trợ chia sẻ đồng thời tối đa 10 tệp hình ảnh/video cho mỗi bài viết.
  • Tích hợp bộ công cụ biên tập hình ảnh trực tiếp trên trình duyệt, cho phép người dùng cắt ảnh, điều chỉnh màu sắc, áp dụng bộ lọc và chèn văn bản đa dạng phông chữ cho cả bài đăng thông thường và Story.
  • Xây dựng hệ thống nhắn tin và thông báo tương tác tức thì sử dụng kết nối thời gian thực qua Socket.
  • Hiện thực hóa quy trình xác thực tài khoản 2 bước qua mã OTP gửi về email và cơ chế kiểm duyệt báo cáo bài viết/tài khoản đa cấp dành cho Quản trị viên.
  • Xây dựng tính năng phát trực tiếp (Livestream) hỗ trợ truyền hình ảnh từ camera hoặc phần mềm bên thứ ba.

Giải pháp và đóng góp kỹ thuật

  • Áp dụng mô hình kiến trúc 3 tầng chuẩn mực, phân định độc lập giữa tầng hiển thị giao diện, tầng xử lý logic ứng dụng và tầng quản trị dữ liệu.
  • Ứng dụng giải pháp bảo mật mật khẩu với cơ chế mã hóa Argon2 và ràng buộc đổi tên người dùng cách nhau tối thiểu 14 ngày nhằm ngăn chặn hành vi giả mạo danh tính.
  • Kết hợp giải pháp cơ sở dữ liệu kép giữa MongoDB (lưu trữ phi cấu trúc theo Document) và Redis (lưu bộ đệm in-memory) nhằm tối ưu hóa tốc độ tải bảng tin (5-10 tin/lần) và tìm kiếm người dùng (10 kết quả/lần).
  • Xây dựng hoàn chỉnh hệ thống tài liệu phân tích thiết kế phần mềm gồm 12 Use-case, 9 Activity Diagrams, 9 Sequence Diagrams và 14 bảng dữ liệu Class Diagram.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của hệ thống

  • Cơ chế đồng bộ dữ liệu MongoDB: MongoDB vận hành chủ yếu dựa trên bộ nhớ RAM và thiết lập cơ chế ghi dữ liệu xuống đĩa cứng sau mỗi 60 giây, dẫn đến rủi ro mất mát dữ liệu nếu hệ thống gặp sự cố mất điện đột ngột.
  • Xử lý đa luồng của NodeJS: Kiến trúc đơn luồng của NodeJS gây khó khăn trong việc tối ưu hóa hiệu năng trên các máy chủ đa lõi hiện đại khi phải thực hiện các tác vụ tính toán nặng đòi hỏi nhiều tài nguyên CPU.
  • Cơ chế xóa dữ liệu: Hệ thống áp dụng quy tắc an toàn không cho phép phục hồi đối với các bài đăng đã xóa, đồng thời chưa có tính năng cho phép xóa triệt để tài khoản người dùng hoặc lịch sử tin nhắn.

Hướng nghiên cứu và phát triển tiếp

  • Nghiên cứu mở rộng khả năng tối ưu hóa hệ thống để xử lý các tác vụ tiêu tốn CPU phức tạp trong môi trường đa luồng.
  • Hoàn thiện và nâng cấp tính năng Livestream, tích hợp thêm các công cụ tương tác nâng cao trong phòng phát trực tiếp.
  • Phát triển phiên bản ứng dụng di động trên các hệ điều hành iOS và Android để đồng bộ trải nghiệm người dùng đa nền tảng.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo có giá trị chuyên môn cao cho:

  • Sinh viên ngành Công nghệ thông tin, Công nghệ phần mềm, Kỹ thuật phần mềm: Tham khảo quy trình phân tích và thiết kế hệ thống phần mềm hoàn chỉnh từ khâu khảo sát yêu cầu, mô hình hóa UML đến xây dựng ứng dụng thực tế.
  • Người nghiên cứu và phát triển ứng dụng web thời gian thực: Tham khảo giải pháp tích hợp các công nghệ JavaScript/TypeScript, ReactJS, NodeJS, NestJS, MongoDB, Redis và Socket.
  • Các đề tài xây dựng mạng xã hội và nền tảng chia sẻ nội dung số: Cung cấp mẫu thiết kế cơ sở dữ liệu chi tiết với 14 thực thể hoàn chỉnh và quy trình xử lý nghiệp vụ kiểm duyệt báo cáo vi phạm nội dung dành cho quản trị viên.

Câu hỏi thường gặp

1. Ứng dụng InStare sử dụng giải pháp bảo mật nào để bảo vệ mật khẩu người dùng và kiểm soát việc thay đổi thông tin định danh?

Hệ thống sử dụng thuật toán Argon2 để mã hóa mật khẩu người dùng trước khi lưu trữ vào cơ sở dữ liệu. Đối với việc thay đổi tên tài khoản (username), hệ thống thiết lập trường usernameLastChanged kiểu DateTime để kiểm tra; nếu khoảng cách từ lần đổi gần nhất dưới 14 ngày, người dùng sẽ không được phép thay đổi nhằm đảm bảo an toàn định danh.

2. Kiến trúc 3 tầng của hệ thống InStare được phân chia và sử dụng các công nghệ cụ thể nào?

Hệ thống được cấu trúc thành 3 tầng độc lập:

  • Tầng Presentation: Chịu trách nhiệm hiển thị giao diện và nhận tương tác, chạy trên trình duyệt web (Web Browser) phát triển bằng ReactJS.
  • Tầng Application: Đảm nhiệm xử lý toàn bộ logic nghiệp vụ, vận hành trên Web Server sử dụng NodeJS và NestJS.
  • Tầng Data: Đảm nhiệm lưu trữ lâu dài và lưu đệm dữ liệu, sử dụng kết hợp MongoDB và Redis.

3. Hệ thống đặt ra các tiêu chuẩn hiệu suất cụ thể nào cho các tác vụ chính?

Theo Bảng yêu cầu hiệu suất của đồ án:

  • Tải bảng tin: 5 - 10 tin/lần.
  • Tương tác bài đăng, gửi thông báo và nhắn tin: Xử lý ngay tức thì (thời gian thực).
  • Tìm kiếm người dùng: Trả về 10 kết quả/lần.
  • Đăng tải bài viết và báo cáo bài viết/hồ sơ: Xử lý hoàn tất dưới 5 phút.
  • Cập nhật hồ sơ cá nhân: Xử lý ngay tức thì.

4. Hệ thống cơ sở dữ liệu của đồ án gồm bao nhiêu bảng/lớp và gồm những thực thể nào?

Cơ sở dữ liệu của đồ án được thiết kế gồm 14 bảng/lớp thực thể: User, Post, Like, Comment, Story, ViewedStory, Follow, Notification, Conversation, Participant, Message, Tag, Report, và ReportReason.

5. Quy trình tạo bài đăng và bản tin tạm thời (Story) hỗ trợ những tính năng chỉnh sửa hình ảnh nào?

Hệ thống cho phép đăng tải bài viết chứa tối đa 10 ảnh/video kèm gắn thẻ (Tag), lựa chọn bố cục (layout) và cảm xúc (emotion). Cả bài đăng và Story đều được tích hợp bộ công cụ chỉnh sửa trực tiếp gồm: cắt ảnh, chỉnh sửa màu sắc, áp dụng bộ lọc hình ảnh và chèn văn bản tùy chỉnh màu sắc, phông chữ.


Kết luận

Đồ án chuyên ngành "Xây dựng mạng xã hội chia sẻ ảnh và video" của sinh viên Phạm Thị Thu Trang và Nguyễn Trần Cẩm Tiên đã giải quyết trọn vẹn bài toán xây dựng nền tảng mạng xã hội InStare hướng tới nội dung trực quan. Đề tài áp dụng hệ thống công nghệ hiện đại gồm ReactJS, NodeJS, NestJS, MongoDB, Redis và Socket trên nền tảng kiến trúc 3 tầng chuẩn mực. Toàn bộ quy trình phân tích yêu cầu, thiết kế hệ thống với 18 biểu đồ UML, xây dựng 14 bảng cơ sở dữ liệu và hiện thực hóa 38 màn hình chức năng đều được thực hiện bài bản, có độ tin cậy và giá trị học thuật cao.