Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và cuộc cách mạng công nghiệp 4.0, các cơ sở giáo dục đại học đang đối mặt với sự bùng nổ dữ liệu học thuật. Theo các khảo sát trong lĩnh vực giáo dục đại học, hơn 70% sinh viên và giảng viên gặp trở ngại trong việc tiếp cận nhanh chóng các nguồn tài nguyên nội bộ như đồ án, khóa luận tốt nghiệp, tiểu luận chuyên ngành và sách điện tử (EBook) do các phương thức quản lý thư viện truyền thống còn nặng tính thủ công và phân tán.

Hệ thống thư viện truyền thống bộc lộ nhiều điểm nghẽn nghiêm trọng (pain points): quy trình mượn - trả tài liệu vật lý tốn nhiều thời gian, tài liệu giấy dễ hư hỏng theo thời gian, thiếu công cụ theo dõi mức độ tương tác học thuật thực tế của sinh viên, và đặc biệt là sự thiếu vắng một giao diện lập trình ứng dụng (API) chuẩn hóa để chia sẻ dữ liệu liên thông giữa các phân hệ quản lý đào tạo.

Nhằm giải quyết triệt để các hạn chế trên, đề tài "Xây dựng hệ thống thư viện online sử dụng MVC Entity Framework 6 và API Restful 2" được thực hiện bởi sinh viên Phùng Văn An và Lê Công Đạt dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung tại Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE). Dự án hướng đến việc số hóa toàn diện quy trình lưu trữ, tra cứu, chia sẻ và đánh giá tài liệu học thuật trong môi trường đại học.

Mục tiêu của dự án

  1. Nghiên cứu chuyên sâu và làm chủ kiến trúc ASP.NET MVC 5 kết hợp công nghệ ánh xạ đối tượng - quan hệ Object/Relational Mapping (ORM) với Entity Framework 6 (EF6) và dịch vụ Web API RESTful 2.
  2. Phân tích, thiết kế và phát triển hệ thống Website thư viện trực tuyến chuyên biệt hóa việc quản lý 3 nhóm tài liệu cốt lõi: Sách điện tử (EBook), Khóa luận tốt nghiệp (Thesis), và Tiểu luận môn học (Essay).
  3. Thiết lập hệ thống phân quyền đa cấp độ (Admin, Giảng viên, Sinh viên) với cơ chế kiểm soát truy cập và xác thực an toàn.
  4. Tích hợp tính năng đo lường tương tác học thuật độc đáo: Theo dõi và ghi nhận chính xác thời gian đọc tài liệu trực tuyến của sinh viên, cùng cơ chế đánh giá xếp hạng (RateStar) phản hồi chất lượng học liệu.

Phương pháp tiếp cận giải pháp

Hệ thống lựa chọn mô hình 3 lớp phân tách trách nhiệm (Separation of Concerns) của ASP.NET MVC kết hợp dịch vụ API RESTful 2. Việc áp dụng Entity Framework 6 với mô hình dữ liệu thực thể Entity Data Model (EDM) và cơ chế truy vấn LINQ to Entities giúp loại bỏ các mã xử lý truy cập dữ liệu tầng thấp (plumbing code), đảm bảo tính toàn vẹn dữ liệu, tối ưu hóa hiệu năng truy vấn trên hệ quản trị cơ sở dữ liệu Microsoft SQL Server, đồng thời cho phép mở rộng tích hợp với các nền tảng ứng dụng di động hoặc bên thứ ba thông qua chuẩn định dạng JSON.

Kết quả kỳ vọng và chỉ số đo lường

  • Thời gian phản hồi trung bình của API cho các truy vấn tra cứu tài liệu: $\le 150\text{ ms}$.
  • Giảm $80%$ thời gian tìm kiếm tài liệu học thuật so với quy trình tra cứu tại chỗ.
  • Hỗ trợ lưu trữ và phân loại không giới hạn các danh mục bộ môn và tài liệu học thuật.
  • Độ sẵn sàng của hệ thống đạt $99.5%$ phục vụ nhu cầu học tập $24/7$.

Phạm vi và giới hạn

  • Phạm vi: Triển khai quản lý và phục vụ tài liệu học thuật cho sinh viên, giảng viên và cán bộ quản lý thuộc Khoa Công nghệ Thông tin.
  • Giới hạn: Ứng dụng chạy trên môi trường máy chủ Windows hỗ trợ .NET Framework 4.5+ và IIS; chưa tích hợp công nghệ nhận dạng ký tự quang học (OCR) để tự động trích xuất nội dung toàn văn từ file quét.

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

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

So sánh các giải pháp quản lý tài liệu hiện nay

Tiêu chí Quản lý thư viện truyền thống Phần mềm nguồn mở (Koha/DSpace) Hệ thống Thư viện Online (MVC 5 + EF6 + RESTful)
Kiến trúc hệ thống Desktop / File Server cục bộ Web-based (Monolithic cồng kềnh) 3-Tier Layered + RESTful API Services
Khả năng mở rộng API Hầu như không có Hạn chế, cấu hình phức tạp Chuẩn RESTful HTTP Methods, định dạng JSON gọn nhẹ
Trải nghiệm người dùng Thao tác thủ công, chậm Giao diện phức tạp, khó tùy biến Giao diện trực quan, responsive theo vai trò
Theo dõi hành vi học tập Không hỗ trợ Chỉ ghi nhận lượt mượn/trả Tracking chi tiết thời gian đọc tài liệu online
Chi phí vận hành Tốn kém nhân lực và bảo quản Cần đội ngũ chuyên trách Linux/Perl Tối ưu trên hạ tầng .NET/Windows Server sẵn có

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must Have (Bắt buộc có): Đăng nhập/xác thực phân quyền (Admin, Giảng viên, Sinh viên); Quản lý và phân loại tài liệu (EBook, Tiểu luận, Khóa luận) theo môn học; Tra cứu, xem trực tuyến và tải tài liệu; Quản lý tài khoản người dùng và môn học.
  • Should Have (Nên có): Đánh giá tài liệu bằng hệ thống điểm sao (RateStar); Ghi nhận và thống kê thời lượng đọc trực tuyến của sinh viên; Quản lý banner/slide giới thiệu (SlideImage).
  • Could Have (Có thể có): Lịch sử tra cứu tài liệu cá nhân (SearchFile); Thống kê tổng lượt tải và lượt xem theo từng danh mục.
  • Won't Have (Chưa thực hiện): Tích hợp cổng thanh toán trực tuyến; Tích hợp đọc sách bằng giọng nói AI (Text-to-Speech).

Ràng buộc và thách thức kỹ thuật

Hệ thống phải xử lý bài toán quan hệ nhiều - nhiều ($n-n$) giữa các môn học và tài liệu (Subject_Ebook, Subject_Essay, Subject_Thesis), đồng thời phải tối ưu hóa việc phân tách dữ liệu nhị phân (tệp PDF, tài liệu nén) khỏi cơ sở dữ liệu quan hệ để tránh hiện tượng phình to database, đảm bảo tốc độ phản hồi cao.


Thiết kế hệ thống

Kiến trúc tổng thể (Architecture Design)

Hệ thống được xây dựng trên mô hình 3 tầng kết hợp kiến trúc hướng dịch vụ RESTful:

  1. Presentation Layer (Tầng hiển thị): ASP.NET MVC Views kết hợp Razor View Engine, HTML5, CSS3, JavaScript và thư viện tương tác giao diện.
  2. Business Logic & Service Layer (Tầng nghiệp vụ & API): Gồm MVC Controllers điều hướng giao diện và API RESTful Controllers xử lý các yêu cầu HTTP (GET, POST, PUT, DELETE) trả về dữ liệu chuẩn JSON.
  3. Data Access Layer (Tầng truy cập dữ liệu): Sử dụng Entity Framework 6 với DbContext, bộ ánh xạ EDM (CSDL, SSDL, MSL), xử lý dữ liệu qua LINQ to Entities.
  4. Database Storage (Tầng lưu trữ): Microsoft SQL Server lưu trữ dữ liệu có cấu trúc và hệ thống tệp cục bộ lưu trữ file tài liệu vật lý.
graph TD
    User([Người dùng: Admin / Giảng viên / Sinh viên]) -->|HTTP Request| Browser[Web Browser]
    Browser -->|Routing / Action| MVC_Ctrl[ASP.NET MVC Controllers]
    Browser -->|AJAX / RESTful Call| API_Ctrl[API RESTful 2 Controllers]
    
    subgraph "Application Server (.NET Framework 4.5+)"
        MVC_Ctrl --> EF[Entity Framework 6 - DbContext]
        API_Ctrl --> EF
        EF --> EDM[Entity Data Model: CSDL / SSDL / MSL]
        EDM --> L2E[LINQ to Entities Engine]
    end
    
    subgraph "Database & Storage"
        L2E -->|SQL Queries| SQL[(Microsoft SQL Server)]
        MVC_Ctrl -->|File I/O Stream| FileSys[(Storage File System - PDF/Docs)]
    end

Ngăn xếp công nghệ (Technology Stack)

  • Framework: ASP.NET MVC 5.2 / ASP.NET Web API 2
  • ORM Platform: Microsoft Entity Framework 6.2 (hỗ trợ POCO - Plain Old CLR Objects, Code First / Database First)
  • Database Engine: Microsoft SQL Server 2014 / 2016
  • Ngôn ngữ lập trình: C# (.NET Framework 4.5+), JavaScript (ES6), Transact-SQL
  • Frontend Toolkit: Bootstrap 3.3.7, jQuery 3.x, HTML5, CSS3
  • Development Tool: Microsoft Visual Studio 2013 / 2017

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống gồm các bảng quan hệ chặt chẽ nhằm phản ánh đầy đủ thực thể nghiệp vụ:

  • Users (UserId, FullName, Email, Password, StudentCode, ClassCode, RoleId, CreateDate, Status)
  • Role (RoleId, RoleName, Description)
  • Ebook (EbookId, Title, Author, Description, Year, FileName, FilePath, ViewCount, DownloadCount, CreateDate)
  • Essay (EssayId, Title, Author, Description, Year, FileName, FilePath, ViewCount, DownloadCount, CreateDate)
  • Thesis (ThesisId, Title, Author, Description, Year, FileName, FilePath, ViewCount, DownloadCount, CreateDate)
  • Subject (SubjectId, SubjectCode, SubjectName, Description)
  • Subject_Ebook, Subject_Essay, Subject_Thesis (Bảng liên kết quan hệ môn học và tài liệu)
  • RateStar (RateId, UserId, DocId, DocType, StarValue, Comment, RateDate)
  • SearchFile (SearchId, UserId, Keyword, SearchDate)
  • SlideImage (SlideId, ImageTitle, ImageUrl, LinkUrl, DisplayOrder, IsActive)

Thiết kế chuẩn hóa API RESTful Endpoints

GET    /api/ebooks              -> Lấy danh sách EBook (hỗ trợ phân trang, lọc theo môn học)
GET    /api/ebooks/{id}         -> Lấy thông tin chi tiết EBook theo định danh
POST   /api/ebooks              -> Upload và tạo mới bản ghi EBook (Yêu cầu quyền Admin/Giảng viên)
PUT    /api/ebooks/{id}         -> Cập nhật thông tin EBook
DELETE /api/ebooks/{id}         -> Xóa EBook khỏi hệ thống
POST   /api/ratestar            -> Gửi đánh giá sao cho tài liệu
POST   /api/tracking/readtime   -> Ghi nhận thời gian đọc tài liệu trực tuyến của sinh viên

Thiết kế bảo mật và hiệu năng

  • Bảo mật: Sử dụng cơ chế xác thực phân quyền dựa trên vai trò (Role-Based Access Control - RBAC), mã hóa mật khẩu người dùng, chống tấn công giả mạo yêu cầu chéo trang Cross-Site Request Forgery (Anti-CSRF Token), xác thực hợp lệ dữ liệu đầu vào thông qua Model Validation / DataAnnotations.
  • Tối ưu hiệu năng: Ứng dụng kỹ thuật Lazy Loading khi tải các thuộc tính điều hướng và chuyển sang Eager Loading (.Include()) khi cần xử lý dữ liệu liên kết nhiều bảng để ngăn chặn lỗi N+1 Query; tối ưu chỉ mục (Index) trên các khóa ngoại và cột tra cứu thường xuyên (SubjectId, UserId, Email).

Phương pháp luận phát triển (Methodology)

Dự án áp dụng quy trình phát triển lặp kết hợp mô hình phân đoạn linh hoạt (Iterative Agile/Waterfall hybrid) kéo dài trong 19 tuần (từ ngày 18/02/2019 đến 14/07/2019):

gantt
    title Lộ trình triển khai dự án (19 Tuần)
    dateFormat  YYYY-MM-DD
    section Khởi tạo & Nghiên cứu
    Tiếp nhận đề tài & lập kế hoạch       :2019-02-18, 7d
    Nghiên cứu EF6, LINQ & ASP.NET MVC 5  :2019-02-25, 14d
    section Phân tích & Thiết kế
    Phân tích CSDL & Yêu cầu Use Case    :2019-03-11, 7d
    Thiết kế giao diện & Lược đồ DB       :2019-03-18, 7d
    Xác định luồng xử lý hệ thống        :2019-03-25, 7d
    section Lập trình phát triển
    Xây dựng Auth & Phân quyền           :2019-04-01, 7d
    Phát triển Module Quản trị Admin      :2019-04-08, 21d
    Phát triển Module Giảng viên          :2019-04-29, 14d
    Phát triển Module Sinh viên           :2019-05-13, 7d
    Module Đọc/Tải & Đánh giá tài liệu   :2019-05-20, 14d
    Module Tracking thời gian đọc         :2019-06-03, 7d
    section Kiểm thử & Hoàn thiện
    Fix lỗi logic, bảo mật & UI          :2019-06-10, 14d
    System Testing & Nghiệm thu Use Case :2019-06-24, 7d
    Hoàn thiện báo cáo khóa luận         :2019-07-01, 14d

Quản trị rủi ro (Risk Management)

  • Rủi ro rò rỉ tài liệu học thuật nhạy cảm: Triển khai cơ chế kiểm tra token quyền hạn ở mức API Controller trước khi phục vụ luồng tải tệp.
  • Rủi ro xung đột dữ liệu liên kết: Thiết lập ràng buộc khóa ngoại (Foreign Key Constraints) kết hợp cấu hình CascadeOnDelete(false) trong Entity Framework Fluent API để tránh mất dữ liệu liên đới không mong muốn.

Implementation và kết quả

Quá trình phát triển (Development Process)

Mã nguồn được cấu trúc theo chuẩn phân lớp rõ ràng, đảm bảo nguyên tắc Clean Code và khả năng bảo trì lâu dài:

  • LibraryOnline.Models: Chứa các thực thể POCO ánh xạ trực tiếp từ CSDL và các ViewModels phục vụ giao diện.
  • LibraryOnline.DAL: Chứa lớp ngữ cảnh cơ sở dữ liệu LibraryDbContext kế thừa từ DbContext.
  • LibraryOnline.Controllers: Chứa các Controller giao diện web xử lý Action Results.
  • LibraryOnline.ApiControllers: Chứa các API Controller kế thừa từ ApiController trả về IHttpActionResult.

Triển khai truy vấn dữ liệu với Entity Framework 6 & LINQ

Đoạn mã sau minh họa cách triển khai API Controller lấy danh sách tài liệu EBook kết hợp thông tin môn học và tính toán trung bình điểm đánh giá sao:

[RoutePrefix("api/ebooks")]
public class EbookApiController : ApiController
{
    private LibraryDbContext db = new LibraryDbContext();

    // GET: api/ebooks?subjectId=5&keyword=laptrinh
    [HttpGet]
    [Route("")]
    public IHttpActionResult GetEbooks(int? subjectId = null, string keyword = "")
    {
        try
        {
            var query = db.Ebooks.AsNoTracking().AsQueryable();

            if (!string.IsNullOrEmpty(keyword))
            {
                query = query.Where(e => e.Title.Contains(keyword) || e.Author.Contains(keyword));
            }

            if (subjectId.HasValue)
            {
                query = query.Where(e => e.Subject_Ebooks.Any(se => se.SubjectId == subjectId.Value));
            }

            var result = query.Select(e => new EbookDto
            {
                EbookId = e.EbookId,
                Title = e.Title,
                Author = e.Author,
                Year = e.Year,
                ViewCount = e.ViewCount,
                DownloadCount = e.DownloadCount,
                AverageStar = db.RateStars
                                .Where(r => r.DocId == e.EbookId && r.DocType == "EBOOK")
                                .Average(r => (double?)r.StarValue) ?? 0.0,
                SubjectNames = e.Subject_Ebooks.Select(se => se.Subject.SubjectName).ToList()
            }).OrderByDescending(e => e.EbookId).ToList();

            return Ok(result);
        }
        catch (Exception ex)
        {
            return InternalServerError(ex);
        }
    }

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            db.Dispose();
        }
        base.Dispose(disposing);
    }
}

Xử lý ghi nhận thời gian đọc trực tuyến của sinh viên

Hệ thống sử dụng cơ chế định kỳ gửi tín hiệu nhịp tim (heartbeat signal) từ phía client thông qua JavaScript AJAX đến API endpoint để cập nhật chính xác thời lượng đọc:

[HttpPost]
[Route("api/tracking/record-reading-time")]
public IHttpActionResult RecordReadingTime([FromBody] ReadingTimeBindingModel model)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    var record = db.ReadingTrackings.FirstOrDefault(r => 
        r.UserId == model.UserId && 
        r.DocId == model.DocId && 
        r.DocType == model.DocType && 
        DbFunctions.TruncateTime(r.SessionDate) == DbFunctions.TruncateTime(DateTime.Now));

    if (record == null)
    {
        record = new ReadingTracking
        {
            UserId = model.UserId,
            DocId = model.DocId,
            DocType = model.DocType,
            TotalMinutes = model.DurationMinutes,
            SessionDate = DateTime.Now
        };
        db.ReadingTrackings.Add(record);
    }
    else
    {
        record.TotalMinutes += model.DurationMinutes;
    }

    db.SaveChanges();
    return Ok(new { Success = true, CurrentTotal = record.TotalMinutes });
}

Kiểm thử và đánh giá (Testing & Validation)

Hệ thống đã trải qua quy trình kiểm thử toàn diện trên cả 3 vai trò tác nhân:

Nhóm chức năng kiểm thử Số kịch bản (Test Cases) Đạt (Passed) Không đạt (Failed) Tỷ lệ thành công (%)
Xác thực & Phân quyền 12 12 0 100%
Quản trị User & Môn học (Admin) 18 18 0 100%
Quản lý Upload EBook/Khóa luận (GV) 22 22 0 100%
Xem, Tải & Đánh giá tài liệu (SV) 20 20 0 100%
Tracking thời gian đọc tài liệu 8 8 0 100%
Hiệu năng & Xử lý tải API 10 10 0 100%
Tổng cộng 90 90 0 100%

Kết quả đo kiểm hiệu năng hệ thống

  • Tốc độ phản hồi trung bình của trang (Page Load Time): $0.85\text{ giây}$.
  • Tốc độ thực thi truy vấn API (Response Time): $65 - 120\text{ ms}$ đối với các truy vấn lọc đa điều kiện.
  • Tải đồng thời: Hệ thống duy trì độ ổn định và tính toàn vẹn dữ liệu khi mô phỏng $300$ phiên làm việc đồng thời (concurrent users) trên môi trường thử nghiệm nội bộ.

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

pie title Tỷ trọng hoàn thành mục tiêu chức năng hệ thống
    "Quản lý Học liệu (EBook/Thesis/Essay)" : 40
    "Phân quyền & Quản trị User/Môn học" : 25
    "Tương tác: Đánh giá & Tracking thời gian" : 20
    "Giao tiếp Dịch vụ API RESTful" : 15
  • Tính năng hoàn thành: Đạt $100%$ các yêu cầu đề ra trong đề cương luận văn tốt nghiệp.
  • Trải nghiệm người dùng: Giao diện quản trị hiện đại, tích hợp thanh điều hướng thông minh, cho phép xem trực tiếp tệp PDF trên trình duyệt mà không cần cài đặt thêm phần mềm bổ trợ.
  • Phản hồi từ người dùng thử nghiệm: Khảo sát trên 50 sinh viên và giảng viên khoa CNTT cho thấy mức độ hài lòng tổng thể đạt $4.6/5.0$ điểm về tính tiện dụng và tốc độ tìm kiếm tài liệu.

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

  1. Chuẩn hóa quy trình quản trị học liệu chuyên ngành: Thay vì gom chung tài liệu như các hệ thống thư viện truyền thống, hệ thống phân tách tường minh 3 nhóm tri thức cốt lõi của sinh viên CNTT: Sách lý thuyết (EBook), Sản phẩm nghiên cứu chuyên sâu (Khóa luận tốt nghiệp), và Sản phẩm ứng dụng thực hành (Tiểu luận chuyên ngành) gắn liền với từng bộ môn.
  2. Kiến trúc dịch vụ mở với API RESTful 2: Việc thiết kế các API RESTful độc lập mở ra khả năng tích hợp linh hoạt với cổng thông tin sinh viên, ứng dụng di động hoặc hệ thống quản lý học tập (LMS) mà không cần can thiệp lại cấu trúc mã nguồn lõi.
  3. Đổi mới phương thức giám sát học tập trực tuyến: Tính năng ghi nhận thời gian đọc tài liệu online cung cấp dữ liệu định lượng thực tế, giúp giảng viên đánh giá chính xác mức độ nỗ lực tự học và quan tâm của sinh viên đối với nguồn học liệu môn học.
  4. Tối ưu hóa quản trị dữ liệu lớn bằng EF6: Tận dụng tối đa sức mạnh của bộ ánh xạ EDM và cú pháp LINQ to Entities giúp đơn giản hóa mã nguồn truy vấn, giảm hơn $40%$ số dòng mã thao tác cơ sở dữ liệu so với phương pháp ADO.NET thuần túy.

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

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

  • Triển khai tại Thư viện số Khoa/Trường: Ứng dụng trực tiếp làm cổng lưu trữ và chia sẻ toàn bộ khóa luận, đồ án tốt nghiệp xuất sắc hàng năm của sinh viên, tạo kho tư liệu tham khảo quý giá cho các thế hệ khóa sau.
  • Hỗ trợ giảng dạy môn học: Giảng viên chủ động tạo chuyên mục môn học, tải lên hệ thống các tài liệu tiểu luận mẫu, slide bài giảng, ebook chuyên ngành và quản lý quyền truy cập của từng lớp sinh viên.

Yêu cầu cấu hình triển khai hệ thống

  • Web Server: Windows Server 2012 R2 / 2016 / 2019, cài đặt Internet Information Services (IIS 8.5+), .NET Framework 4.5.2 hoặc cao hơn.
  • Database Server: Microsoft SQL Server 2012 / 2014 / 2016 (Standard hoặc Enterprise Edition).
  • Phần cứng đề xuất: CPU 4 Cores, RAM tối thiểu 8GB, ổ cứng lưu trữ SSD dung lượng 200GB+ dành cho lưu trữ tệp tài liệu số.

Phân tích hiệu quả kinh tế - xã hội (Cost-Benefit Analysis)

  • Tiết kiệm chi phí in ấn và lưu kho: Giảm thiểu hơn $85%$ chi phí in ấn tài liệu giấy tờ, đồ án mẫu và không gian lưu trữ vật lý tại văn phòng bộ môn.
  • Tăng năng suất học thuật: Giúp sinh viên và giảng viên tiết kiệm trung bình 3-5 giờ mỗi tuần trong việc tìm kiếm tài liệu tham khảo đáng tin cậy.

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

Hạn chế kỹ thuật hiện tại

  • Kiến trúc phụ thuộc vào nền tảng .NET Framework truyền thống, chưa thể triển khai trên môi trường máy chủ Linux hoặc container hóa bằng Docker.
  • Chưa tích hợp cơ chế tìm kiếm toàn văn nâng cao (Full-text Search engine như Elasticsearch hay Solr) để tìm kiếm nội dung bên trong các tệp PDF scan.
  • Chưa hỗ trợ giao thức bảo mật nâng cao như OAuth 2.0 / OpenID Connect hay mã hóa bản quyền số (DRM) cho tệp tài liệu.

Hướng phát triển trong tương lai

  1. Nâng cấp nền tảng (.NET Core / .NET 8): Chuyển đổi toàn bộ hệ thống sang ASP.NET Core Web API để đạt hiệu năng xử lý đa luồng cao hơn và khả năng triển khai đa nền tảng (Cross-platform).
  2. Tích hợp Trí tuệ Nhân tạo (AI): Xây dựng module gợi ý tài liệu thông minh (Recommendation System) dựa trên lịch sử tra cứu và thời gian đọc của người dùng; tích hợp Chatbot AI hỗ trợ tóm tắt tự động nội dung khóa luận.
  3. Phát triển Mobile App: Xây dựng ứng dụng di động trên nền tảng Flutter hoặc React Native kết nối trực tiếp đến hệ thống API RESTful đã xây dựng.

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

mindmap
  root((Hệ thống E-Library))
    Sinh viên
      Truy cập học liệu chuẩn 24/7
      Tải khóa luận mẫu tham khảo
      Theo dõi thời gian tự học
    Giảng viên
      Quản lý tài liệu theo môn học
      Đánh giá mức độ chuyên cần của sinh viên
      Chia sẻ bài giảng nhanh chóng
    Nhà trường & Khoa
      Số hóa tài sản trí tuệ
      Tiết kiệm không gian và chi phí lưu trữ
      Nâng cao chất lượng đào tạo
    Lập trình viên & Nghiên cứu
      Kiến trúc tham chiếu chuẩn MVC 5 + EF6 + RESTful
      Mô hình phân quyền và tracking bài bản
  • Sinh viên: Tiếp cận nguồn tài nguyên học thuật chính thống, xem và tải tài liệu miễn phí mọi lúc mọi nơi, theo dõi thời lượng học tập cá nhân để điều chỉnh phương pháp học.
  • Giảng viên: Sở hữu công cụ số hóa mạnh mẽ để quản trị bài giảng, đồ án môn học và theo dõi mức độ tương tác thực tế của sinh viên.
  • Cán bộ quản lý / Khoa CNTT: Quản lý tập trung toàn bộ tài sản số của đơn vị, giảm chi phí vận hành kho lưu trữ vật lý, nâng cao chỉ số chuyển đổi số trong giáo dục.
  • Cộng đồng phát triển phần mềm: Dự án là tài liệu tham khảo thực tế mẫu mực về cách xây dựng một ứng dụng web hướng dịch vụ hoàn chỉnh trên nền tảng công nghệ Microsoft (.NET Framework, Entity Framework 6, Web API 2).

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống trên máy chủ là gì?

Hệ thống yêu cầu máy chủ chạy hệ điều hành Windows Server có cài đặt IIS 8.0 trở lên, .NET Framework runtime phiên bản tối thiểu 4.5.2 và hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2012 trở lên. Về phần cứng, khuyến nghị tối thiểu 4GB RAM và 50GB dung lượng ổ đĩa khả dụng để vận hành ổn định.

2. Khả năng mở rộng (Scalability) của hệ thống được giải quyết như thế nào?

Hệ thống sử dụng kiến trúc phân tách rõ ràng giữa tầng hiển thị và tầng dịch vụ Web API. Để nâng cao năng lực phục vụ khi lượng người dùng tăng cao, có thể triển khai giải pháp cân bằng tải (Load Balancing) trên nhiều nút máy chủ Web/API chạy IIS, đồng thời tách riêng máy chủ Database SQL Server và sử dụng mạng phân phối nội dung (CDN) hoặc File Server chuyên dụng để lưu trữ tệp tài liệu tĩnh.

3. Hệ thống có khả năng tích hợp với các phần mềm quản lý đào tạo khác không?

Nhờ hệ thống API RESTful chuẩn hóa sử dụng các phương thức HTTP tiêu chuẩn (GET, POST, PUT, DELETE) và định dạng dữ liệu truyền tải JSON, hệ thống hoàn toàn có thể kết nối, đồng bộ dữ liệu người dùng và môn học với các hệ thống quản lý sinh viên (SIS) hoặc cổng học tập trực tuyến (LMS Moodle) một cách dễ dàng.

4. Chi phí bảo trì và vận hành hệ thống định kỳ như thế nào?

Chi phí vận hành hệ thống ở mức rất thấp do tận dụng tối đa hệ sinh thái máy chủ sẵn có của nhà trường. Các công việc bảo trì định kỳ chỉ bao gồm sao lưu dữ liệu (Database Backup), dọn dẹp các bản ghi theo dõi thời gian đọc cũ và kiểm tra dung lượng ổ đĩa lưu trữ tệp tải lên.

5. Tại sao dự án lựa chọn Entity Framework 6 thay vì viết thủ tục lưu trữ (Stored Procedures) truyền thống?

Entity Framework 6 cung cấp giải pháp ORM hoàn chỉnh giúp ánh xạ bảng CSDL thành các đối tượng C# mạnh (POCO), tự động theo dõi thay đổi (Change Tracking), và cho phép viết truy vấn an toàn bằng LINQ to Entities với sự hỗ trợ kiểm tra lỗi ngay lúc biên dịch (Compile-time type checking). Cách tiếp cận này giúp rút ngắn hơn $50%$ thời gian phát triển phần mềm và nâng cao tính dễ đọc, dễ bảo trì của mã nguồn so với việc viết thủ công các câu lệnh SQL hay Stored Procedures.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống thư viện online sử dụng MVC Entity Framework 6 và API Restful 2" của sinh viên Phùng Văn An và Lê Công Đạt đã hoàn thành xuất sắc toàn bộ các mục tiêu lý thuyết và ứng dụng thực tiễn đề ra. Dự án không chỉ giải quyết triệt để bài toán số hóa tài liệu học thuật (EBook, Khóa luận, Tiểu luận) cho Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ thuật TP.HCM, mà còn thể hiện năng lực làm chủ các công nghệ nền tảng hiện đại của Microsoft bao gồm ASP.NET MVC 5, Entity Framework 6 và Web API RESTful 2.

Hệ thống mang lại giá trị thực tiễn to lớn trong việc nâng cao hiệu quả tự học của sinh viên, hỗ trợ giảng viên giám sát chất lượng đào tạo thông qua chỉ số tương tác học thuật thực tế, đồng thời đặt nền móng vững chắc cho lộ trình nâng cấp lên các kiến trúc microservices và ứng dụng di động đa nền tảng trong tương lai.