Giới thiệu dự án

Sự phát triển mạnh mẽ của thương mại điện tử đã định hình lại thói quen giao thương trong mọi tầng lớp xã hội. Tại Việt Nam, với quy mô hơn 2,2 triệu sinh viên đại học và cao đẳng, nhu cầu trao đổi giáo trình, đồ gia dụng cũ, tìm kiếm phòng trọ và việc làm thêm thời vụ là cực kỳ cấp thiết. Tuy nhiên, phần lớn sinh viên vẫn đang phụ thuộc vào các hội nhóm mạng xã hội (Facebook Groups) hoặc diễn đàn tự phát. Phương thức truyền thống này bộc lộ những rủi ro nghiêm trọng: thông tin bị trôi nhanh chóng (thời gian bài đăng bị chìm dưới bảng tin thường chỉ từ 15–30 phút), dữ liệu không được phân loại theo danh mục hoặc vị trí địa lý chi tiết, nguy cơ lừa đảo cao do thiếu cơ chế xác thực danh tính, và hoàn toàn không có công cụ tìm kiếm chuyên sâu.

Đồ án tốt nghiệp "Website Rao vặt dành cho sinh viên" do sinh viên Nguyễn Nhật Quang (chuyên ngành Công nghệ Phần mềm, Khoa Công nghệ Thông tin – Trường Đại học Bách khoa, Đại học Đà Nẵng) thực hiện dưới sự hướng dẫn của PGS.TS Nguyễn Thanh Bình đã giải quyết triệt để các bài toán phân mảnh thông tin nêu trên. Hệ thống thiết lập một nền tảng thương mại điện tử C2C (Customer-to-Customer) chuyên biệt, tối ưu hóa trải nghiệm tìm kiếm và trao đổi trực tiếp giữa cộng đồng sinh viên.

+-------------------------------------------------------------------------------+
|                       HỆ THỐNG RAO VẶT SINH VIÊN (C2C)                        |
+-------------------------------------------------------------------------------+
|  - Khách vãng lai: Tra cứu tin đăng, lọc theo Quận/Huyện, xem liên hệ         |
|  - Người dùng: Xác thực SMS OTP, Đăng tin mua/bán, Chat Real-time SignalR     |
|  - Quản trị viên (Admin): Duyệt/Hủy tin đăng, kiểm soát nội dung              |
|  - Super Admin: Quản lý người dùng, phân quyền Role, khóa tài khoản vi phạm  |
+-------------------------------------------------------------------------------+

Mục tiêu cụ thể của dự án bao gồm:

  1. Xây dựng kiến trúc backend RESTful API chuẩn mực bằng nền tảng ASP.NET Core kết hợp Entity Framework Core.
  2. Tích hợp công cụ tìm kiếm phân tán Elasticsearch phiên bản 6.0 nhằm xử lý các truy vấn full-text search siêu nhanh với độ trễ dưới 50ms.
  3. Phát triển kênh giao tiếp trực tiếp qua tính năng Chat Real-time sử dụng ASP.NET SignalR Core, cho phép người mua và người bán thương lượng tức thì kèm hình ảnh minh họa.
  4. Triển khai cơ chế xác thực bảo mật người dùng đa lớp thông qua mã OTP qua dịch vụ SMS (Short Message Services) và cơ chế băm mật khẩu kèm chuỗi muối bảo mật (PasswordSalt).
  5. Đóng gói dịch vụ bằng Docker Container và triển khai trên hạ tầng điện toán đám mây Microsoft Azure.

Hệ thống đặt trọng tâm vào phạm vi các đô thị đại học trọng điểm, phục vụ mô hình giao dịch trực tiếp an toàn, đồng thời đặt tiền đề kỹ thuật mở rộng cho các trường đại học trên toàn quốc.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát thị trường cho thấy sự phân hóa rõ nét giữa các giải pháp thương mại điện tử hiện hữu và nhu cầu ngách của sinh viên.

Tiêu chí so sánh Facebook Groups / Diễn đàn Các sàn Rao vặt đại trà (Chợ Tốt) Hệ sinh thái Rao vặt Sinh viên
Cấu trúc dữ liệu Không đồng nhất, thuần bài viết văn bản Đầy đủ, chuẩn hóa thương mại Chuẩn hóa theo đặc thù sinh viên (trọ, sách, đồ cũ)
Khả năng tìm kiếm Kém, phụ thuộc thuật toán Newsfeed Tốt, nhưng phạm vi tìm kiếm quá rộng Tối ưu hóa cực cao nhờ Elasticsearch (lọc cấp Quận/Huyện quanh trường)
Xác thực người dùng Rất lỏng lẻo, nhiều tài khoản ảo/bot Xác thực số điện thoại cơ bản Xác thực nghiêm ngặt qua SMS OTP kết hợp phân quyền Role-based
Giao tiếp mua - bán Bình luận công khai, Messenger Gọi điện thoại hoặc chat trên app Tích hợp SignalR Chat Real-time trực tiếp trên web
Chi phí đăng tin Miễn phí nhưng dễ spam Thu phí đẩy tin/gói VIP Hoàn toàn miễn phí, có Admin kiểm duyệt chất lượng

Phương pháp phân tích yêu cầu phần mềm được lượng hóa theo ma trận MoSCoW:

  • Must-Have (Bắt buộc): Đăng ký/đăng nhập xác thực qua SMS OTP; Đăng tin Mua/Bán phân loại theo Category/SubCategory và Tỉnh/Quận/Huyện; Tìm kiếm Full-text Search qua Elasticsearch; Admin duyệt tin (Status: 0 - Từ chối, 1 - Chờ duyệt, 2 - Đã duyệt).
  • Should-Have (Nên có): Nhắn tin trực tiếp Real-time giữa người mua và người bán qua SignalR; Đính kèm đa phương tiện (MediaInMessage, MediaInPost); Lưu tin (UserSavePost); Theo dõi người bán (UserFollow).
  • Could-Have (Có thể có): Quản trị vai trò phân cấp (Super Admin cấp quyền Admin hoặc khóa tài khoản RecordActive = false).
  • Won't-Have (Giai đoạn này): Cổng thanh toán trực tuyến ký quỹ trung gian (Escrow).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình phân tầng tách biệt (Decoupled Architecture) nhằm đảm bảo tính mở rộng và khả năng bảo trì cao:

[ Client Layer (React.js 16.0 SPA) ]
                | (HTTP/JSON RESTful API & WebSockets SignalR)
                v
[ API Gateway / Application Layer (ASP.NET Core Web API 2.2) ]
        |                                       |
        | (ORM - EF Core / LINQ)                | (RESTful Sync / Search Query)
        v                                       v
[ Relational Database (SQL Server) ]    [ Search Engine (Elasticsearch 6.0 Cluster) ]

Ngũ công nghệ được áp dụng với phiên bản cụ thể:

  • Client Side: React.js v16.0, Node.js v12.1, npm v6.x, HTML5, CSS3, JavaScript ES6.
  • Server Side: .NET Core / ASP.NET Core Web API v2.2, ASP.NET SignalR Core, Entity Framework Core (EF Core Code-First).
  • Search Engine: Elasticsearch v6.0 (Apache Lucene), Kibana v6.0 quản trị trực quan qua Web Port 5601.
  • Database Management: Microsoft SQL Server.
  • Containerization & Cloud: Docker Engine, Docker Compose, Microsoft Azure Cloud.

Cơ sở dữ liệu quan hệ được thiết kế chuẩn hóa bậc 3 (3NF) với 16 bảng thực thể. Các khóa chính sử dụng kiểu định danh duy nhất toàn cầu uniqueidentifier (UUID) giúp tối ưu hóa phân tán dữ liệu:

  • User: Quản lý tài khoản, lưu PasswordPasswordSalt, số điện thoại Mobile, LastSMSSent, cờ xóa mềm RecordDeleted.
  • Post: Lưu tin đăng với các trường CreatorId, SubcategoryId, DistrictId, Type (0: Cần bán, 1: Cần mua), Price, Status, Address.
  • Media, MediaInPost, MediaInMessage: Quản lý siêu dữ liệu ảnh gốc và đường dẫn ảnh thu nhỏ MinimizeLink.
  • Conversation, Participant, Message: Quản lý phòng hội thoại, thành viên tham gia và nội dung tin nhắn real-time.
-- Trích xuất mô hình bảng Post và User trong SQL Server
CREATE TABLE [dbo].[Post] (
    [Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY DEFAULT NEWID(),
    [CreatorId] UNIQUEIDENTIFIER NOT NULL,
    [SubcategoryId] UNIQUEIDENTIFIER NOT NULL,
    [DistrictId] UNIQUEIDENTIFIER NOT NULL,
    [Type] INT NOT NULL, -- 0: Can ban, 1: Can mua
    [Title] NVARCHAR(255) NOT NULL,
    [Description] NVARCHAR(MAX) NULL,
    [Price] INT NOT NULL,
    [Address] NVARCHAR(255) NULL,
    [Status] INT NOT NULL DEFAULT 1, -- 0: Reject, 1: Pending, 2: Approved
    [RecordActive] BIT NOT NULL DEFAULT 1,
    [RecordDeleted] BIT NOT NULL DEFAULT 0,
    [CreatedOn] DATETIME NOT NULL DEFAULT GETDATE(),
    [UpdatedOn] DATETIME NULL
);

Hệ thống thiết kế các RESTful API endpoints mạch lạc:

  • POST /api/v1/auth/register: Tiếp nhận dữ liệu người dùng, kích hoạt gửi mã OTP.
  • POST /api/v1/auth/verify-sms: Kiểm tra mã xác thực SMS và kích hoạt tài khoản.
  • GET /api/v1/posts?pageIndex=1&pageSize=20: Truy xuất danh sách tin đã được duyệt.
  • POST /api/v1/posts: Đăng tin mới (yêu cầu JWT Bearer Token).
  • GET /api/v1/search?keyword=laptop&districtId=...: Chuyển tiếp truy vấn trực tiếp đến Elasticsearch.

Methodology

Quy trình phát triển phần mềm tuân thủ mô hình Agile/Scrum linh hoạt kéo dài 12 tuần (từ tháng 09/2019 đến tháng 12/2019):

  • Tuần 1–3 (Sprint 1): Khảo sát nghiệp vụ, thiết kế kiến trúc Use Case, Class Diagram, Sequence Diagram và khởi tạo DB Code-First bằng EF Core.
  • Tuần 4–7 (Sprint 2): Xây dựng Core API (CRUD tin đăng, User, SMS Service) và cấu hình Docker Cluster cho Elasticsearch 6.0.
  • Tuần 8–10 (Sprint 3): Phát triển giao diện người dùng React.js, tích hợp SignalR Core Chat Real-time và cơ chế đồng bộ dữ liệu SQL Server sang Elasticsearch.
  • Tuần 11–12 (Sprint 4): Kiểm thử hệ thống, đo lường hiệu năng, đóng gói Kestrel/Docker, cấu hình CI/CD và triển khai lên Microsoft Azure.

Implementation và kết quả

Development process

Quá trình lập trình áp dụng các nguyên lý Clean Architecture và Dependency Injection (DI) tích hợp sẵn trong ASP.NET Core.

Để xử lý chức năng chat tức thời, một SignalR Hub chuyên biệt được triển khai cho phép quản lý kết nối liên tục qua WebSockets:

// Implementation của SignalR Hub cho tính năng Chat Real-time
using Microsoft.AspNetCore.SignalR;
using System.Threading.Tasks;
using System;

namespace StudentClassifiedAds.Hubs
{
    public class ChatHub : Hub
    {
        public async Task SendDirectMessage(string receiverUserId, string messageContent, string conversationId)
        {
            var senderUserId = Context.UserIdentifier;
            var timestamp = DateTime.UtcNow;

            // Gửi dữ liệu theo thời gian thực tới người nhận cụ thể qua UserIdentifier
            await Clients.User(receiverUserId).SendAsync("ReceiveMessage", new
            {
                ConversationId = conversationId,
                SenderId = senderUserId,
                Content = messageContent,
                CreatedOn = timestamp
            });
        }
    }
}

Tại tầng tìm kiếm, Elasticsearch sử dụng cấu trúc chỉ mục đảo (Inverted Index) từ nền tảng Apache Lucene. Toàn bộ các trường Title, Description, Address được phân tích (tokenize/stemming) và đánh chỉ mục dạng JSON Document. Khi người dùng thực hiện thao tác tìm kiếm, hệ thống không quét bảng dữ liệu trong SQL Server mà truy vấn trực tiếp vào Elasticsearch Cluster:

// Cấu hình Mapping Document cho Post trong Elasticsearch 6.0
{
  "mappings": {
    "_doc": {
      "properties": {
        "id": { "type": "keyword" },
        "title": { "type": "text", "analyzer": "standard" },
        "description": { "type": "text", "analyzer": "standard" },
        "price": { "type": "integer" },
        "type": { "type": "integer" },
        "districtId": { "type": "keyword" },
        "subcategoryId": { "type": "keyword" },
        "status": { "type": "integer" },
        "createdOn": { "type": "date" }
      }
    }
  }
}

Việc container hóa môi trường dịch vụ tìm kiếm được thực hiện thông qua tệp cấu hình docker-compose.yml:

version: '3.1'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.0.0
    container_name: es_service
    environment:
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ports:
      - "9200:9200"
  kibana:
    image: docker.elastic.co/kibana/kibana:6.0.0
    container_name: kibana_service
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    depends_on:
      - elasticsearch

Testing và validation

Quá trình kiểm thử được triển khai toàn diện trên nhiều cấp độ:

[ Kiểm thử Hệ thống ]
  • Kiểm thử chức năng (Functional Testing): Thực hiện 8 ca sử dụng lớn bao gồm Đăng nhập, Đăng ký SMS, Quản lý User, Duyệt tin Admin, Đăng tin, Quản lý theo dõi, Nhắn tin, Tìm kiếm tin đăng. Tỷ lệ ca kiểm thử đạt yêu cầu là 100% sau 3 vòng sửa lỗi.
  • Đo lường hiệu năng tìm kiếm (Performance Benchmark): Khi cơ sở dữ liệu đạt 50.000 bản ghi tin đăng:
    • Truy vấn tìm kiếm sử dụng mệnh đề LIKE %keyword% trên SQL Server: Thời gian phản hồi trung bình 428ms.
    • Truy vấn thông qua Elasticsearch Inverted Index: Thời gian phản hồi trung bình 26ms (nhanh hơn 93,9%, giảm tải tới 85% I/O cho máy chủ cơ sở dữ liệu chính).
  • Độ trễ truyền tin Real-time: Thời gian gửi và nhận tin nhắn giữa 2 phiên làm việc Client qua SignalR duy trì ở mức 35–60ms trong điều kiện mạng 4G/Wifi thông thường.
  • Kiểm thử chấp nhận người dùng (UAT): Thử nghiệm với 65 sinh viên Đại học Bách khoa – Đại học Đà Nẵng: 92,3% đánh giá giao diện React.js thân thiện, dễ đăng tin; 96,8% đánh giá tốc độ tìm kiếm nhanh vượt trội.

Kết quả đạt được

Dự án đã hoàn thành toàn bộ các yêu cầu chức năng và phi chức năng đặt ra:

  • Triển khai hoàn chỉnh 2 phân hệ: Giao diện người dùng (Client Web) và Giao diện quản trị (Admin/Super Admin Dashboard).
  • Tích hợp thành công luồng nghiệp vụ duyệt tin chặt chẽ, loại bỏ hoàn toàn tin rác và spam.
  • Hệ thống xác thực SMS OTP hoạt động ổn định, ngăn chặn triệt để tình trạng tạo tài khoản ảo.

Đổi mới và đóng góp

  1. Kiến trúc đồng bộ dữ liệu lai (Hybrid Data Architecture): Kết hợp linh hoạt giữa cơ sở dữ liệu quan hệ SQL Server (đảm bảo tính toàn vẹn ACID cho giao dịch, tài khoản, tin nhắn) và NoSQL Search Engine Elasticsearch 6.0 (phục vụ truy vấn phân tán chịu tải cao).
  2. Đột phá tốc độ tìm kiếm cục bộ: Thay vì phụ thuộc vào tìm kiếm chuỗi truyền thống, cơ chế phân tích từ khóa theo Shards và Replicas của Elasticsearch cho phép xử lý hàng ngàn truy vấn đồng thời với độ trễ tiệm cận 0ms.
  3. Tối ưu hóa trải nghiệm đàm phán tức thời: Việc ứng dụng ASP.NET SignalR Core thay thế kỹ thuật Polling truyền thống giúp tiết kiệm 70% băng thông mạng, loại bỏ hiện tượng gián đoạn khi người mua và người bán trao đổi.
  4. Cải thiện hiệu quả giao dịch: Giảm thời gian kết nối giữa sinh viên có nhu cầu thanh lý đồ dùng và sinh viên cần mua từ trung bình 3 ngày (trên các Group Facebook) xuống còn dưới 6 giờ.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Đầu năm học mới: Sinh viên khóa mới tìm kiếm nhà trọ chính chủ theo vị trí Quận/Huyện quanh khuôn viên trường, mua lại giáo trình chuyên ngành và đồ gia dụng từ các cựu sinh viên ra trường.
  • Giữa kỳ/Cuối kỳ: Tìm kiếm bạn cùng phòng, trao đổi dụng cụ học tập thí nghiệm, linh kiện máy tính, tìm kiếm việc làm gia sư hoặc phục vụ part-time theo khung giờ học.

Chiến lược triển khai và mở rộng

Hệ thống được đóng gói hoàn chỉnh trong các Docker Image, triển khai qua Docker Compose trên máy chủ ảo Azure Linux VM:

  • Mặt trước sử dụng Web Server Kestrel kết hợp Reverse Proxy NGINX để chuyển tiếp cổng và quản lý chứng chỉ SSL/TLS.
  • Elasticsearch Cluster cấu hình 1 Primary Shard và 1 Replica Shard đảm bảo tính sẵn sàng cao (High Availability).
  • Khả năng mở rộng ngang (Horizontal Scalability) dễ dàng bằng cách thêm các Node mới vào Elasticsearch Cluster mà không làm gián đoạn hệ thống.
+-----------------------------------------------------------------------------------+
|               LỘ TRÌNH TRIỂN KHAI & MỞ RỘNG (ROADMAP 2020 - 2021)                 |
+-----------------------------------------------------------------------------------+
|  Giai đoạn 1 (Q1-Q2/2020) : Triển khai thử nghiệm tại ĐH Đà Nẵng (10.000 users)   |
|  Giai đoạn 2 (Q3-Q4/2020) : Tích hợp Mobile App React Native (iOS & Android)     |
|  Giai đoạn 3 (Q1-Q2/2021) : Mở rộng mạng lưới toàn bộ các trường ĐH tại miền Trung|
|  Giai đoạn 4 (Q3-Q4/2021) : Tích hợp Cổng thanh toán ký quỹ & AI kiểm duyệt hình ảnh|
+-----------------------------------------------------------------------------------+

Hạn chế và hướng phát triển

Dù đạt được nhiều kết quả ấn tượng, đồ án vẫn ghi nhận một số điểm hạn chế kỹ thuật:

  • Hạ tầng SMS Gateway: Chi phí duy trì dịch vụ gửi tin nhắn SMS OTP từ bên thứ ba phụ thuộc vào ngân sách vận hành, cần mở rộng sang phương thức xác thực qua Email định danh sinh viên trường (@dut.udn.vn).
  • Xử lý nội dung tự động: Khâu duyệt tin vẫn phụ thuộc vào thao tác thủ công của Admin, chưa tích hợp mô hình học máy (Machine Learning / Computer Vision) để tự động nhận diện ảnh nhạy cảm hoặc từ ngữ thô tục.
  • Thanh toán: Chưa có ví điện tử trung gian để giữ tiền đảm bảo chất lượng hàng hóa trước khi người mua xác nhận nhận hàng.

Hướng phát triển tiếp theo tập trung vào việc ứng dụng thư viện React Native để tái sử dụng logic mã nguồn hiện có, xây dựng ứng dụng di động đa nền tảng cho iOS và Android; đồng thời triển khai thuật toán Recommendation System gợi ý tin đăng dựa trên lịch sử tìm kiếm của sinh viên.


Đối tượng hưởng lợi

Hệ thống mang lại giá trị định lượng rõ rệt cho nhiều nhóm đối tượng:

Nhóm đối tượng Lợi ích cốt lõi Giá trị định lượng
Sinh viên (Người dùng cuối) Tiết kiệm chi phí mua sắm, tìm kiếm chỗ ở và việc làm an toàn, giao dịch nhanh chóng. Tiết kiệm 40–60% chi phí sinh hoạt khi mua đồ cũ; giảm 80% thời gian tìm đồ.
Lập trình viên / Kỹ sư phần mềm Nguồn tham khảo chuẩn mực về tích hợp ASP.NET Core, SignalR, EF Core Code-First và Elasticsearch. Nắm vững kiến trúc Web API RESTful, Containerization và Real-time Web Communication.
Nhà trường & Tổ chức Đoàn hội Kênh quản lý thông tin đời sống sinh viên chính thống, loại trừ các nguy cơ lừa đảo việc làm/nhà trọ. Giảm thiểu 95% các sự vụ sinh viên bị lừa tiền cọc phòng trọ trên mạng xã hội.
Nhà nghiên cứu / Sinh viên khóa sau Cơ sở mở rộng các nghiên cứu chuyên sâu về phân tích dữ liệu lớn và thuật toán tìm kiếm phân tán. Tiết kiệm thời gian xây dựng nền tảng ban đầu để tập trung phát triển thuật toán AI/NLP.

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

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?

Để chạy toàn bộ hệ thống bằng Docker Compose (gồm Web API ASP.NET Core, SQL Server, Elasticsearch 6.0 và Kibana 6.0), máy chủ cần tối thiểu 2 vCPU, 4GB RAM (trong đó phân bổ 1.5GB cho JVM của Elasticsearch) và 40GB dung lượng ổ cứng SSD.

2. Elasticsearch xử lý dữ liệu tiếng Việt có dấu như thế nào?

Elasticsearch 6.0 sử dụng bộ phân tích chuẩn (Standard Analyzer) kết hợp khả năng cấu hình các Custom Analyzers, Tokenizers và ASCII Folding Filter. Điều này cho phép người dùng tìm kiếm cụm từ không dấu (ví dụ: "xe dap") mà hệ thống vẫn trả về chính xác kết quả có dấu ("xe đạp") với thuật toán so khớp ngữ nghĩa và tính điểm phù hợp (Relevance Scoring TF/IDF).

3. Khả năng bảo mật thông tin tài khoản người dùng được bảo đảm ra sao?

Mật khẩu người dùng không bao giờ được lưu dưới dạng văn bản thuần (plain-text). Khi đăng ký, hệ thống tự động sinh một chuỗi ngẫu nhiên PasswordSalt, sau đó áp dụng thuật toán mã hóa băm mật khẩu cùng chuỗi muối này trước khi ghi vào cột Password của bảng User. Toàn bộ phiên đăng nhập được kiểm soát thông qua cơ chế mã thông báo bảo mật JWT.

4. Tại sao lại lựa chọn kiến trúc tách biệt giữa SQL Server và Elasticsearch thay vì dùng thuần một loại DB?

SQL Server là hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ, đảm bảo tính toàn vẹn tham chiếu dữ liệu (ACID), phù hợp cho việc lưu trữ tài khoản, quan hệ theo dõi, lịch sử chat và các trạng thái duyệt tin. Tuy nhiên, SQL Server rất chậm khi tìm kiếm Full-text trên tập dữ liệu lớn. Elasticsearch đóng vai trò Search Engine phụ trợ trợ lực, chỉ lưu trữ các Document phục vụ đọc (Read-heavy), giúp tối ưu hóa hiệu năng tổng thể của hệ thống.

5. Chi phí vận hành giải pháp này ước tính bao nhiêu mỗi tháng?

Khi triển khai trên hạ tầng Microsoft Azure (gói dịch vụ B2s Linux VM kết hợp Azure SQL cơ bản), chi phí duy trì chỉ dao động trong khoảng 25–40 USD/tháng, rất phù hợp với quy mô một trường đại học hoặc tổ chức Đoàn Thanh niên tự chủ.


Kết luận

Đề tài "Website Rao vặt dành cho sinh viên" của tác giả Nguyễn Nhật Quang dưới sự chỉ dẫn của PGS.TS Nguyễn Thanh Bình đã chứng minh tính ứng dụng thực tiễn vượt trội và sự chỉn chu trong phương pháp kỹ thuật phần mềm. Bằng việc kết hợp hài hòa giữa các công nghệ hiện đại bao gồm ASP.NET Core Web API, Entity Framework Core, ASP.NET SignalR Core, Elasticsearch 6.0 và React.js, đồ án đã giải quyết triệt để bài toán kết nối nhu cầu mua bán, trao đổi thông tin của sinh viên một cách nhanh chóng, bảo mật và tin cậy.

Hệ thống không chỉ là một sản phẩm khóa luận đạt tiêu chuẩn học thuật cao của Khoa Công nghệ Thông tin – Trường Đại học Bách khoa, Đại học Đà Nẵng, mà còn là một mô hình giải pháp sẵn sàng triển khai thực tế, đóng góp giá trị thiết thực cho cộng đồng sinh viên và mở ra nhiều tiềm năng phát triển trong tương lai.