VIDEO giới thiệu: https://www.youtube.com/watch?v=ao8PsUxFYvo Xây dựng một Website lưu trữ, chia sẻ tài liệu cho khoa sư phạm toán tin. Mà ở đó các sinh viên có thể dễ dàng trao đổi tài liệu với nhau một cách thuận tiện. Mặc khác, với mong muốn lang tỏa sự chia sẻ, giúp đỡ nhau trong học tập nên em sẽ xây dựng công cụ đóng góp tài liệu, để cho tất cả mọi người đều có thể chia sẻ tài liệu của mình lên Website. Điều này làm thúc đẩy sự phong phú cho kho tài liệu hơn. Nhưng để đảm bảo tiêu chí quan trọng đầu tiên là tôn trọng quyền tác giả, quyền sở hữu trí tuệ. Website sẽ có chức năng kiểm duyệt, chỉ những tài liệu được sự cho phép của tác giả, chứng minh nguồn góc rõ ràng và đảm bảo phù hợp pháp luật, có giá trị tri thức thì mới được duyệt lên Website.
CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
Khái niệm
SQL Server is a relational database management system (RDBMS) that utilizes SQL commands to facilitate data exchange between the SQL Server installation and client machines An RDBMS comprises databases, a database engine, and applications designed to manage various components within the RDBMS and other data.
Lịch sử ra đời
SQL Server 1.0 ra mắt vào năm 1989, được phát triển cho các hệ điều hành 16 bit và đã trải qua nhiều cải tiến cho đến nay Phiên bản 6.5 được thị trường chấp nhận rộng rãi, trong khi SQL Server 7.0 đánh dấu một bước đột phá với engine hoàn toàn mới do Microsoft phát triển Phiên bản 8.0 tiếp tục cải tiến, tập trung vào tính năng thiết kế web Hiện tại, phiên bản mới nhất là SQL Server 2019, hỗ trợ bộ vi xử lý 64 bit, được phát hành vào ngày 4 tháng 11 năm 2019.
Một vài ấn bản của SQL Server
Phiên bản Enterprise của SQL Server tích hợp đầy đủ các tính năng nổi bật, bao gồm công cụ tạo và quản lý phân cụm, nhân bộ máy cơ sở dữ liệu cùng với nhiều dịch vụ hỗ trợ Nó có khả năng đánh địa chỉ lên đến 12 terabytes và quản lý cơ sở dữ liệu với dung lượng tối đa 524 petabytes.
Phiên bản này hoạt động hiệu quả trên hệ thống với tối đa 4 CPU và 2 GB RAM, rất phù hợp cho các dịch vụ thiết kế web quy mô vừa và nhỏ.
Developer: Ấn bản này giới hạn số lượng người kết nối với server nhưng có đầy đủ các tính năng của Enterprise Edition
Workgroup: ấn bản SQL Server này có các chức năng lõi cơ sở dữ liệu nhưng không đi kèm các dịch vụ Ở phiên bản 2012 không có ấn bản này
Express: Ấn bản này dễ dàng sử dụng và quản trị cơ sở dữ liệu đơn giản.
Giới thiệu về ngôn ngữ lập trình C# và NET Framework
C# (hay C sharp) là ngôn ngữ lập trình đơn giản, hiện đại và hướng đối tượng, được phát triển bởi Microsoft vào năm 2000, dựa trên nền tảng của hai ngôn ngữ mạnh mẽ là C++ và Java.
C# là một ngôn ngữ lập trình đơn giản, loại bỏ nhiều phức tạp của Java và C++, như macro, template, đa kế thừa và lớp cơ sở ảo Dựa trên nền tảng của C và C++, C# có cú pháp và biểu thức tương tự, nhưng đã được cải tiến để trở nên dễ sử dụng hơn.
C# là một ngôn ngữ hiện đại với những đặc tính nổi bật như xử lý ngoại lệ, thu gom bộ nhớ tự động, kiểu dữ liệu mở rộng và bảo mật mã nguồn Những yếu tố này làm cho C# trở thành một lựa chọn lý tưởng trong phát triển phần mềm hiện đại.
Object-oriented programming (OOP) is a programming paradigm characterized by four key properties: abstraction, encapsulation, polymorphism, and inheritance C# fully supports all these features, making it a robust language for OOP development.
C# là một ngôn ngữ lập trình với số lượng từ khóa hạn chế, chủ yếu dùng để mô tả thông tin Mặc dù nhiều người cho rằng ngôn ngữ có nhiều từ khóa sẽ mạnh mẽ hơn, nhưng điều này không đúng trong trường hợp của C# Ngôn ngữ này vẫn có khả năng thực hiện mọi nhiệm vụ lập trình một cách hiệu quả.
.NET Framework, được Microsoft ra mắt vào năm 2002, chỉ hoạt động trên hệ điều hành Windows Các nền tảng ứng dụng như WPF, WinForms và ASP.NET đều dựa trên NET Framework.
Đến năm 2013, Microsoft đã chuyển hướng sang phát triển đa nền tảng với NET Core Hiện nay, NET Core được áp dụng trong các ứng dụng Universal Windows Platform và ASP.NET Core, cho phép C# được sử dụng để phát triển ứng dụng trên nhiều hệ điều hành khác nhau như Windows, Linux và MacOS.
Giới thiệu về Visual Studio 2019
Visual Studio là phần mềm hỗ trợ lập trình website hiệu quả, thuộc sở hữu của Microsoft Ra mắt lần đầu vào năm 1997 với tên mã Project Boston, phần mềm này đã được Microsoft phát triển và tích hợp nhiều công cụ phát triển thành một sản phẩm duy nhất.
Visual Studio là một hệ thống toàn diện cho phát triển ứng dụng, bao gồm trình chỉnh sửa mã, thiết kế và gỡ lỗi Với Visual Studio, người dùng có thể dễ dàng viết code, sửa lỗi và chỉnh sửa thiết kế ứng dụng chỉ với một phần mềm duy nhất Hơn nữa, người dùng còn có khả năng thiết kế giao diện và trải nghiệm tương tự như khi phát triển ứng dụng Xamarin, UWP bằng XAML hoặc Blend.
Phần mềm Visual Studio bao gồm hai phiên bản chính: Visual Studio Enterprise và Visual Studio Professional, cả hai đều là phiên bản có phí và thường được các công ty lập trình chuyên nghiệp sử dụng Ngoài ra, Microsoft cũng cung cấp phiên bản Community miễn phí, phù hợp với những người lập trình không chuyên, mới bắt đầu tìm hiểu công nghệ, như sinh viên, nhà phát triển cá nhân, các dự án mã nguồn mở và các tổ chức phi lợi nhuận với dưới 5 người dùng.
1.3.2 Các tính năng của Visual Studio
Phần mềm lập trình Visual Studio của Microsoft hỗ trợ đa nền tảng, cho phép sử dụng trên Windows, Linux và Mac Systems Điều này mang lại sự tiện lợi tối đa cho lập trình viên trong quá trình phát triển ứng dụng, khác biệt so với các trình viết code khác.
Visual Studio hỗ trợ đa ngôn ngữ lập trình như C#, F#, C/C++, HTML, CSS, Visual Basic và JavaScript, giúp phát hiện và thông báo lỗi trong các chương trình một cách dễ dàng.
+Hỗ trợ Website: Visual Studio code cũng hỗ trợ Website, đặc biệt trong công việc soạn thảo và thiết kế Web
Visual Studio cung cấp một kho tiện ích mở rộng phong phú, cho phép lập trình viên dễ dàng tải xuống và sử dụng các ngôn ngữ lập trình khác Tính năng này hoạt động như một phần chương trình độc lập, giúp đảm bảo hiệu năng của phần mềm không bị ảnh hưởng.
Lưu trữ phân cấp trong Visual Studio giúp tổ chức các tệp dữ liệu và đoạn mã một cách hiệu quả, với nhiều thư mục tương tự nhau Ngoài ra, Visual Studio còn cung cấp các thư mục đặc biệt để bạn có thể lưu trữ an toàn, dễ dàng tìm kiếm và sử dụng.
Visual Studio cung cấp tính năng lưu trữ an toàn, giúp người dùng yên tâm về việc bảo vệ dữ liệu Phần mềm này đã tích hợp GIT và hỗ trợ nhiều kho lưu trữ an toàn phổ biến hiện nay.
Visual Studio cung cấp tính năng màn hình đa nhiệm, cho phép người dùng mở nhiều tập tin và thư mục cùng lúc, ngay cả khi chúng không liên quan đến nhau.
Visual Studio hỗ trợ lập trình viên bằng cách đề xuất các tùy chọn thay thế cho đoạn code, giúp điều chỉnh và tối ưu hóa mã nguồn để nâng cao tính tiện dụng cho người dùng.
Phần mềm Visual Studio hỗ trợ tích hợp các loại thiết bị đầu cuối, giúp người dùng thực hiện các thao tác cần thiết mà không cần phải chuyển đổi giữa hai màn hình hoặc quay về thư mục gốc.
Visual Studio hỗ trợ Git thông qua kết nối với GitHub, cho phép người dùng sao chép và kéo thả mã code trực tiếp Các mã code này có thể được chỉnh sửa và lưu lại trong phần mềm.
Intellisense là tính năng nhắc tự động phổ biến trong các phần mềm lập trình, bao gồm cả Visual Studio Dù có nhiều trình viết mã khác, Visual Studio vẫn nổi bật nhờ tính chuyên nghiệp của nó Đặc biệt, Intellisense có khả năng phát hiện tất cả các lỗi trong mã nguồn.
Các đoạn mã không đầy đủ có thể nhắc nhở lập trình viên về việc sửa đổi, tự động khai báo biến khi quên, và giúp bổ sung cú pháp còn thiếu.
Tính năng comment cho phép lập trình viên ghi chú và lưu lại nhận xét, giúp họ dễ dàng nhớ các công việc cần hoàn thành mà không bỏ sót bất kỳ công đoạn nào Hầu hết các ngôn ngữ lập trình hiện nay đều hỗ trợ tính năng này.
Giới thiệu mô hình MVC
Thuật ngữ MVC hay Model – View – Controller đã được sử dụng từ cuối những năm
1970 Được dựa trên ngôn ngữ lập trình Smallalk, lập trình theo hướng đối tượng và sử dụng giao diện đồ họa (GUI)
Kiến trúc MVC ngày càng được cải tiến để giải quyết các vấn đề phát sinh trong quá trình phát triển phần mềm Mô hình này phân chia ứng dụng hoặc website thành ba thành phần chính.
+ Model: là thành phần đại diện cho dữ liệu của ứng dụng, bao gồm cả chức năng kiểm tra tính hợp lệ của dữ liệu
View là thành phần chịu trách nhiệm hiển thị dữ liệu và giao diện người dùng (UI) Controller là các thành phần tiếp nhận và xử lý các yêu cầu gửi đến ứng dụng, đồng thời điều phối công việc giữa View và Model.
Cấu trúc MVC gồm 3 thành phần tách biệt như sau:
Hình 1 Mô hình MVC
Mô hình MVC có một số ưu điểm như sau:
Phát triển phần mềm ngày càng trở nên chuyên nghiệp hơn, cho phép phân chia công việc giữa các nhóm chuyên môn khác nhau như nhóm thiết kế, nhóm lập trình và nhóm tổ chức cơ sở dữ liệu.
Mà không bị ảnh hưởng đến nhau Điều này giúp phát triển ứng dụng nhanh, đơn giản và dễ nâng cấp về sau
Bảo trì hệ thống trở nên dễ dàng hơn nhờ vào việc phân chia các lớp, giúp các thành phần có thể thay đổi một cách độc lập mà không làm ảnh hưởng đến toàn bộ chương trình.
- Mở rộng ứng dụng: thao tác thêm chức năng mới vào cho các lớp sẽ dễ dàng hơn là phân chia theo cách khác
Mô hình MVC có một số hạn chế như thời gian trung chuyển dữ liệu giữa các lớp và chi phí phát triển cao do sử dụng mã nguồn đóng Tuy nhiên, những hạn chế này có thể chấp nhận được khi so sánh với lợi ích mà mô hình MVC mang lại, giúp tạo ra chương trình hoặc website được đầu tư chỉnh chu và bài bản hơn.
Giới thiệu về ASP.NET MVC
ASP.NET MVC là một khung làm việc mạnh mẽ cho việc phát triển ứng dụng web theo mô hình MVC, tương tự như ASP.NET Web Form Nó được xây dựng dựa trên nền tảng của ASP.NET, cho phép sử dụng các API từ ứng dụng ASP.NET Web Form truyền thống trong ứng dụng ASP.NET MVC.
Ngày nay, ASP.NET MVC đã trải qua nhiều cải tiến, bao gồm việc nâng cao khả năng kiểm thử và tối ưu hóa cấu trúc website Khung làm việc MVC được định nghĩa trong namespace System.Web.MVC.
Kiến trúc: chúng ta thấy kiến trúc ASP.NET MVC gồm 3 thành phần chính:
Models là các thành phần chịu trách nhiệm truy xuất và cung cấp dữ liệu từ database, lưu trữ thông tin và trạng thái của các đối tượng Tất cả các nghiệp vụ logic được thực thi tại Model, nơi dữ liệu từ người dùng được kiểm tra qua View trước khi lưu vào database Việc truy xuất và xác nhận lưu dữ liệu hoàn toàn thuộc về Model.
View là các thành phần chịu trách nhiệm hiển thị thông tin người dùng qua giao diện (UI) Thông tin cần hiển thị trên View thường được tạo ra từ các thành phần Models trong mô hình dữ liệu.
Controllers là các thành phần chịu trách nhiệm xử lý tương tác với người dùng, làm việc với model và chọn View phù hợp để hiển thị trên giao diện Trong kiến trúc MVC, View chỉ đảm nhiệm việc hiển thị thông tin, trong khi Controller quản lý dòng nhập xuất của người dùng.
Hình 2 Kiến trúc của ASP.NET MVC
Trong mô hình ASP.NET MVC, không có mối quan hệ trực tiếp giữa một yêu cầu và tập tin vật lý trên web server Khác với Web Form truyền thống, nơi mỗi yêu cầu được chuyển thành một lời gọi đến tập tin vật lý, MVC xử lý yêu cầu mà không cần tìm kiếm tập tin tương ứng trong thư mục gốc của website Thay vào đó, MVC sử dụng các bộ điều khiển để xử lý yêu cầu và trả về kết quả dưới dạng HTML.
VD: http://dthu.dongthap.edu.vn/home/congthongtindientu, một thành phần được gọi là “Routing engine” sẽ so sánh yêu cầu với route cụ thể
Hình 3 Quy trình xử lý yêu cầu ASP.NET MVC
Router xác định yêu cầu thông qua một chuỗi nền, thiết lập Controller và phương thức trong lớp Controller để xử lý yêu cầu Khi route được nhận diện, công cụ định tuyến sẽ tạo ra bộ giám sát yêu cầu, từ đó tạo ra các đối tượng Controller nhằm xử lý yêu cầu đó.
Giới thiệu về HTML, CSS, JavaScript
HTML, viết tắt của Hyper Text Markup Language, là ngôn ngữ đánh dấu siêu văn bản cho phép người dùng tạo và cấu trúc các thành phần trên trang web như đoạn văn, tiêu đề, liên kết và bảng biểu Các phần tử trong HTML được đại diện bằng thẻ đánh dấu, giúp trình duyệt hiển thị nội dung mà không hiển thị chính các thẻ Mặc dù HTML không phải là ngôn ngữ lập trình, nhưng nó rất đơn giản và dễ học, phù hợp cho cả những người mới bắt đầu làm web.
Lịch sử ra đời của HTML
HTML được phát triển bởi Tim Berners-Lee, một nhà vật lý tại CERN, Thụy Sĩ, với ý tưởng về hệ thống siêu văn bản trên Internet Siêu văn bản cho phép người dùng truy cập ngay lập tức vào các liên kết đến văn bản khác Phiên bản HTML đầu tiên được ông công bố vào năm 1991, bao gồm 18 thẻ HTML Kể từ đó, ngôn ngữ HTML đã được mở rộng với nhiều thẻ và thuộc tính mới để cải thiện khả năng đánh dấu văn bản Theo tài liệu tham khảo HTML Element Reference của Mozilla Developer Network, hiện có khoảng
HTML hiện có 140 thẻ, trong đó bao gồm một số thẻ đã lỗi thời và không còn được hỗ trợ bởi các trình duyệt hiện đại Các thông số HTML hiện nay được duy trì và phát triển bởi W3C (World Wide Web Consortium).
Từ những ngày đầu của web, đã có nhiều phiên bản HTML được phát triển, bao gồm HTML (1991), HTML 2.0 (1995), HTML 3.2 (1997), HTML 4.01 (1999), XHTML (2000) và HTML 5 (2014) Trong số đó, HTML5 là bản nâng cấp lớn nhất, với việc bổ sung nhiều thẻ mới như , và .
CSS, hay Cascading Style Sheets, là ngôn ngữ thiết kế đơn giản giúp xử lý giao diện của trang web Nó mô tả cách các phần tử HTML hiển thị trên màn hình và các phương tiện khác, cho phép kiểm soát màu sắc, cỡ chữ, kiểu chữ, khoảng cách giữa các đoạn văn, kích thước thành phần, màu nền, thiết kế bố cục và cách hiển thị trên các kích thước màn hình khác nhau CSS rất hữu ích và tiện lợi, có khả năng kiểm soát tất cả các trang trên một website Các stylesheet được lưu trữ dưới dạng tập tin CSS và được kết hợp với ngôn ngữ đánh dấu HTML hoặc XHTML, giúp cải thiện trải nghiệm người dùng.
15 ta có thể dễ dàng nâng cấp, sửa đổi Website về mặt giao diện một cách dễ dàng và nhanh chống nhất
Một số ưu điểm của CSS:
Tiết kiệm thời gian là một lợi ích lớn khi viết CSS, vì bạn chỉ cần định nghĩa kiểu một lần và có thể áp dụng lại cho nhiều trang HTML Điều này cho phép bạn định kiểu cho từng phần tử HTML và sử dụng chúng trên nhiều trang web khác nhau một cách dễ dàng.
Sử dụng CSS giúp tải trang nhanh hơn vì bạn không cần khai báo thuộc tính cho từng thẻ HTML mỗi khi sử dụng Chỉ cần định nghĩa thuộc tính một lần trong CSS, và nó sẽ tự động áp dụng cho tất cả các thẻ tương ứng trên trang web Điều này giảm thiểu lượng mã cần viết, từ đó rút ngắn thời gian tải trang.
Bảo trì trang web trở nên đơn giản hơn bao giờ hết, vì bạn chỉ cần thay đổi kiểu trong file CSS để tự động cập nhật tất cả các thành phần trên trang.
CSS cung cấp nhiều thuộc tính phong phú hơn HTML, cho phép bạn cải thiện đáng kể cách hiển thị của trang web so với việc chỉ sử dụng HTML.
CSS giúp tối ưu hóa nội dung trên nhiều thiết bị khác nhau, cho phép hiển thị tốt trên máy tính, điện thoại, thiết bị cầm tay và cả khi in ấn, tất cả đều sử dụng cùng một tài liệu HTML.
Tiêu chuẩn Web toàn cầu khuyến nghị không sử dụng các thuộc tính HTML cũ, mà nên áp dụng CSS để tạo ra các trang web tương thích với mọi trình duyệt trong tương lai.
JavaScript được phát triển trong mười ngày bởi Brandan Eich, nhân viên của Netscape, vào tháng 9 năm 1995 Ban đầu, ngôn ngữ này được gọi là Mocha, sau đó đổi tên thành Mona và LiveScript trước khi trở thành JavaScript như hiện nay Phiên bản đầu tiên của JavaScript bị giới hạn bởi Netscape và chỉ có các tính năng cơ bản, nhưng ngôn ngữ này đã phát triển mạnh mẽ theo thời gian nhờ sự đóng góp của cộng đồng lập trình viên.
JavaScript, được chính thức gọi là ECMAScript vào năm 1996, đã trải qua nhiều phiên bản phát triển, với ECMAScript 2 ra mắt năm 1998 và ECMAScript 3 vào năm 1999 Ngày nay, JavaScript đã trở thành ngôn ngữ lập trình phổ biến, hoạt động trên tất cả các trình duyệt và thiết bị, từ di động đến máy tính bàn.
JavaScript đã trải qua sự phát triển mạnh mẽ và đạt tỷ lệ 92% website sử dụng vào năm 2016 Chỉ trong 20 năm, ngôn ngữ lập trình này đã chuyển mình từ một công cụ riêng lẻ thành một phần không thể thiếu trong bộ công cụ của các lập trình viên web.
JavaScript nổi bật với nhiều ưu điểm vượt trội so với các ngôn ngữ lập trình khác, đặc biệt trong các ứng dụng thực tế Dưới đây là một số lợi ích chính của JavaScript:
- Không cần một compiler vì web browser có thể biên dịch nó bằng HTML
- Nó dễ học hơn các ngôn ngữ lập trình khác
- Lỗi dễ phát hiện hơn và vì vậy dễ sửa hơn
- Nó có thể được gắn trên một số element của trang web hoặc event của trang web như là thông qua click chuột hoặc di chuột tới
- JavaScript hoạt động trên nhiều trình duyệt, nền tảng, vâng vâng
- Có thể sử dụng JavaScript để kiểm tra input và giảm thiểu việc kiểm tra thủ công khi truy xuất qua database
- Nó nhanh hơn và nhẹ hơn các ngôn ngữ lập trình khác
XÂY DỰNG WEBSITE MÔ HÌNH ASP.NET MVC 5
Mô tả bài toán
Website là nguồn tài liệu phong phú, cung cấp giáo trình và tài liệu học tập cho sinh viên và độc giả Khi cần tìm kiếm thông tin phục vụ cho việc học tập và nghiên cứu, người dùng có thể truy cập vào Website để tìm kiếm tài liệu Sau khi tìm thấy tài liệu cần thiết, họ có thể xem trực tuyến hoặc tải về để sử dụng.
Sinh viên và độc giả có thể chia sẻ tài liệu của mình trên trang web Sau khi nhận được tài liệu, quản trị viên sẽ tiến hành kiểm duyệt trước khi đăng tải lên trang chủ.
Quản trị viên Website có trách nhiệm quản lý thông tin tài liệu thông qua việc thêm, sửa, và xóa dữ liệu Họ cũng đảm nhiệm việc đăng tải các bài báo và giới thiệu về khoa, trường theo các danh mục tin tức.
Tài liệu hiển thị thông tin quan trọng như tên tài liệu, tên file, mô tả nội dung, người đăng, ngày đăng, ngày chỉnh sửa, Email người gửi và Avatar người gửi Mỗi tài liệu được phân loại theo ba cấp độ, ví dụ: Tài liệu lập trình, Lập trình CSDL và Tài liệu Sql Server.
Đặt tả hệ thống
2.2.1 Các quy trình nghiệp vụ
Xác định chức năng nghiệp vụ là yếu tố quan trọng để mô tả các khía cạnh con người trong hệ thống Nội dung chủ yếu tập trung vào thông tin liên quan đến việc thực hiện nghiệp vụ trong thực tế, nhưng chưa phản ánh rõ ràng việc thực hiện trên máy tính Mô tả này bao gồm phân tích các hành động, thao tác nghiệp vụ và quyền can thiệp của các đối tượng như người dùng bình thường, Administrator, người quản lý tin tức và người quản lý tài liệu Dựa vào quy mô tổ chức, cụ thể là tại Trường Đại học Đồng Tháp, tôi sẽ tiến hành phân loại.
3 lớp người dùng như sau:
• Administrator: Quyền cao nhất Bao gồm các quyền thêm, sửa, khóa tài khoản Thêm, sửa, xóa, kiểm duyệt tài liệu Thêm, sửa, xóa tin tức
• Quản lý tin tức – tài liệu: có quyền thêm, sửa, xóa, kiểm duyệt tài liệu Thêm, sửa, xóa tin tức
Người dùng bình thường có quyền xem và tải tài liệu trong phạm vi các tài liệu được người quản lý cho phép Tài liệu được đăng tải vào hệ thống với trạng thái mặc định là chưa được kiểm duyệt.
Yêu cầu chức năng của hệ thống
Chương trình gồm có những chức năng chính:
+ Quản lý tài liệu: Thêm, sửa, xóa thông tin tiêu đề, tóm tắt – nội dung của tài liệu
+ Quản lý tin tức: Thêm, sửa, xóa, quản lý các bảng tin, giới thiệu về khoa
+ Quản lý kiểm duyệt nội dung: Thêm, sửa, xóa, kiểm duyệt nội dung tài liệu
+ Cập nhật danh mục: Thêm, sửa, xóa, di dời danh mục tài liệu
+ Tìm kiếm tài liệu: Tìm kiếm tài liệu theo tiêu đề, tên file tài liệu
+ Đóng góp tài liệu: người dùng đăng tải tài liệu, tiêu đề, tóm tắt – nội dung
1 Chức năng quản lý tài liệu
• Nhập thông tin tài liệu vào hệ thống
• Cho phép chỉnh sửa, xóa, nhập dữ liệu
• Hiển thị danh sách các tài liệu
2 Chức năng quản lý tin tức:
• Nhập thông tin tin tức vào hệ thống
• Cho phép chỉnh sửa, xóa, nhập dữ liệu
• Hiển thị danh sách các tin tức
3 Chức năng kiểm duyệt nội dung
• Cho phép chỉnh sửa, xóa, nhập dữ liệu
• Hiển thị người, thời gian đăng nội dung
4 Chức năng cập nhật danh mục tài liệu
• Cập nhật danh mục tài liệu
• Cập nhật danh mục tin tức
5 Chức năng tìm kiếm tài liệu
• Tài liệu được tìm kiếm theo tên tài liệu, theo danh mục tài liệu
6 Chức năng đóng góp tài liệu
Người dùng cần đăng tải tài liệu bao gồm file tài liệu, tiêu đề và tóm tắt nội dung Lưu ý rằng trường file tài liệu và tiêu đề không được để trống.
• Yêu cầu phải vượt qua reCapcha nhằm xác minh là người dùng thực
Sơ đồ Use Case tổng quát:
Hệ thống có những chức năng chính được mô tả trong usecase dưới đây, giúp người dùng dễ dàng nhận diện từ góc nhìn của các tác nhân.
Hình 4 Sơ đồ Use Case tổng quát
Use Case quản lý kiểm duyệt tài liệu
Tác nhân: Người quản lý tài liệu – tin tức Điều kiện: Đăng nhập với quyền quản lý tài liệu – tin tức
Sau khi đăng nhập, tác nhân trên hệ thống quản lý có quyền quản lý tất cả các tài liệu, bao gồm việc thêm, sửa, và xóa cả những tài liệu chưa được duyệt Họ có khả năng xem xét tất cả tài liệu đã tải lên và có thể xóa hoặc duyệt chúng Hệ thống cũng cung cấp chức năng tìm kiếm theo tên hoặc mô tả tài liệu để hỗ trợ trong việc tìm kiếm và xử lý các tài liệu cần thiết.
Hình 5 Use Case Quản lý kiểm duyệt tài liệu
Use Case Quản lý tài khoản
Tác nhân: Người giữ quyền kiểm soát tổng quát tất cả các hoạt động trên Website gọi là
Administrator Điều kiện: Đăng nhập với quyền cao nhất là Administrator
Sau khi đăng nhập thành công, Administrator có quyền quản lý tất cả các tài khoản, bao gồm thêm, sửa, xóa và khóa tài khoản của người dùng, từ tài khoản quản lý tin tức – tài liệu đến tài khoản sinh viên Administrator cũng kế thừa toàn bộ quyền hạn của actor quản lý tin tức – tài liệu.
Hình 6 Use case mô tả tác nhân Administrator
Use Case tìm kiếm, xem, đăng tải tài liệu
Người dùng, hay còn gọi là User, cần phải đăng nhập khi truy cập vào Website để thực hiện việc đăng tải tài liệu.
Người dùng có thể dễ dàng đăng tải tài liệu lên Website bằng cách chọn danh mục phù hợp và nhập đầy đủ tên tài liệu, mô tả, cùng file tài liệu Sau khi hoàn tất quá trình đăng tải, hệ thống sẽ cung cấp mã số tài liệu và thông báo cám ơn, đồng thời thông báo rằng tài liệu đang trong quá trình kiểm duyệt Người dùng nên quay lại Website sau để kiểm tra tình trạng tài liệu của mình.
Sơ đồ Use Case chi tiết
- Mỗi thực thể tượng trưng cho một tài liệu
- Thuộc tính: IP_P, ID_MN, Tilte, Sumary, CreaData, ModiData, OrderKey,
Username, Hide, FileName, ID_File, QRCode
- Mỗi thực thể tượng trưng cho một danh mục tài liệu
- Thuộc tính: ID_MN, Parent, Pos, Lable, UrLink, OrderKey, Username, Hide
- Mỗi thực thể tượng trưng cho một tài khoản
- Thuộc tính: Username, Password, Fullname, Permission, Email, Lock, Active, Avarta
- Mỗi thực thể tượng trưng cho một bài viết
- Thuộc tính: ID_NEW, ID_MN_NEW, Title, Sumary, Contents, CreaData, ModiData, Username, Hide, image
Danh mục tin (Menus_News)
- Mỗi thực thể tượng trưng cho một danh mục tin tức
- Thuộc tính: ID_MN_NEW, Parent, Pos, Lable, Urlink, OrderKey, Username, Hide
2.2.4 Mô hình thực thể liên kết (ERD)
Để thể hiện các ràng buộc giữa các thực thể trong cơ sở dữ liệu, cần một mô hình rõ ràng, giúp xác định các loại quan hệ giữa các bảng Việc này rất quan trọng để đảm bảo sự toàn vẹn dữ liệu khi lập trình cơ sở dữ liệu Mô hình thực thể liên kết (ERD) sẽ được sử dụng để mô tả các mối quan hệ này.
Hình 7 Mô hình thực thể liên kết ERD
2.2.5 Mô tả chi tiết thực thể
Sau khi xác định các thực thể và mối liên kết giữa chúng, chúng ta cần mô tả chi tiết từng thực thể, bao gồm các diễn giải, kiểu dữ liệu, cũng như các ràng buộc về khóa chính, khóa ngoại và giá trị null.
Tên quan hệ: Tài liệu (PageItems) STT Tên thuộc tính Diễn giải Kiểu dữ liệu Ràng buộc
1 ID_P Mã số tài liệu bigint Khóa chính
2 ID_MN Mã số thể loại tài liệu bigint Khóa ngoại
3 Title Tiêu đề tài liêu nvarchar(200) Không null
4 Sumary Tóm tắt tài liệu nvarchar(200) Null
5 Contents Mô tả tài liệu Int Null
6 CreaData Ngày đăng tài liệu smalldatetime Không null
7 ModiData Ngày chỉnh sửa smalldatetime Null
8 Username Người đăng tải Varchar(50) Không null
9 Hide Bật/Tắt hiển thị bit Không null
10 ID_File Địa chỉ tên file trong Foder
11 Name_File Tên file tải lên Nvarchar(256) Không null
12 QRcode Tên file dùng để quét mã QR
Thực thể
Tên quan hệ: Thể loại tài liệu (Menus) STT Tên thuộc tính Diễn giải Kiểu dữ liệu Ràng buộc
1 ID_MN Mã số thể loại của tài liêu bigint Khóa chính
2 Parent Tên của menu cha bigint Không null
3 Lable Tên thể loại Nvarchar(200) Không null
5 Hide Bật/Tắt hiển thị bit Không null
Tên quan hệ: Bài viết (NEWS) STT Tên thuộc tính Diễn giải Kiểu dữ liệu Ràng buộc
1 ID_NEW Mã số của bài viết bigint Khóa chính
2 ID_MN_NEW Mã số chuyên mục bigint Không null
3 Title Tiêu đề bài viết Nvarchar(200) Không null
4 Sumary Tóm tắt bài viết Nvarchar(500) Không null
5 Contents Nội dung bài viết ntext Không null
6 CreaData Thời gian đăng tải smalldatetime Không null
7 ModiData Thời gian chỉnh sửa smalldatetime null
8 Username Người đăng tải Varchar(50) Không null
9 Hide Bật/Tắt hiển thị bit Không null
10 image Ảnh thông báo Varchar(256) Không null
Thực thể
Tên quan hệ: Danh mục tài liệu (Menus_NEWS) STT Tên thuộc tính Diễn giải Kiểu dữ liệu Ràng buộc
1 ID_MN_NEW Mã số danh mục bigint Khóa chính
2 Parent Tham chiếu đến danh mục cha của Menu bigint Không null
3 Lable Tên danh mục Nvarchar(200) Không null
5 Hide Bật/Tắt hiển thị bit Không null
Tên quan hệ: Độc giả (Acounts) STT Tên thuộc tính Diễn giải Kiểu dữ liệu Ràng buộc
1 Username Tên đăng nhập Varchar(50) Khóa chính
2 ID_User Mã số tài khoản bigint Không null
3 Password Mật khẩu đăng nhập
4 Fullname Tên đầy đủ của chủ tài khoản
5 Permission Quyền tinyint Không null
6 Email Email của tài khoản
7 Lock Bật/Khóa tài khoản bit Không null
8 Active Kích hoạt tài khoản bit Không null
9 Avarta Hình đại diện Varchar(50) null
Sau khi phân tích các bước như phát hiện thực thể, xây dựng mô hình liên kết ERD và mô tả chi tiết các thực thể, chúng ta đã có đủ dữ liệu để tạo cơ sở dữ liệu cho Web Tiếp theo, dựa vào các mô tả và bản vẽ đã có, chúng ta sẽ tiến hành lập trình cơ sở dữ liệu trên SQL Server.
Sau khi có cơ sở dữ liệu, việc tổ chức mã nguồn một cách bài bản là rất quan trọng cho bất kỳ dự án nào Thiết kế các lớp (class) hợp lý và rõ ràng sẽ hỗ trợ đáng kể cho việc mở rộng và bảo trì sau này Để đạt được điều này, cần thiết kế một bảng Class Diagram rõ ràng và hợp lý, đồng thời hiểu rõ yêu cầu và đặc trưng của Class Diagram.
- Class Diagram mô tả kiểu của các đối tượng trong hệ thống và các loại quan hệ khác nhau tồn tại giữa chúng
- Là một kỹ thuật mô hình hóa tồn tại ở tất cả các phương pháp phát triển hướng đối tượng
- Biểu đồ hay dùng nhất của UML và gần gũi nhất với các lập trình viên
- Giúp các lập trình viên trao đổi với nhau và hiểu rõ ý tưởng của nhau
Sơ đồ Class Diagram được xây dựng như sau:
Trong sơ đồ Class Diagram, cần chú ý đến chi tiết quan trọng về liên kết giữa thuộc tính Username của bảng Accounts với hai bảng Baiviet và PageItems, thể hiện mối quan hệ Aggregation Điều này có nghĩa là khi một tài khoản người dùng bị xóa, các bài viết và tài liệu mà họ đã chia sẻ trên Website vẫn được giữ lại, đảm bảo không mất tên người đăng và người gửi.
2.2.7 Sơ đồ hoạt động Activity Diagram
Khi vẽ sơ đồ Activity Diagram, mỗi người có phong cách riêng, nhưng cần đảm bảo rằng người đọc dễ dàng nắm bắt dòng sự kiện chính Điều này giúp lập trình viên tiết kiệm thời gian trong việc hiểu bản vẽ Do đó, tôi sẽ ưu tiên vẽ dòng sự kiện chính theo một đường thẳng trực quan từ trên xuống, trong khi các luồng sự kiện phụ sẽ được rẽ nhánh ra ngoài.
Mô tả: Khi người dùng thao tác đăng nhập ở giao diện trang chủ Sẽ chuyển đến View
Giao diện đăng nhập yêu cầu người dùng nhập tài khoản và mật khẩu, với cả hai trường thông tin đều bắt buộc Các trường này được kiểm tra lỗi bằng thuộc tính không cho phép để trống trong HTML5.
Giao diện và chức năng Website
Giao diện và chức năng trang chủ
Người dùng User đăng nhập bằng Username và mật khẩu Cả hai trường Username và mật khẩu đều không được bỏ trống
Hình 14 Giao diện đăng nhập
Màn hình giao diện trang chủ khi người dùng truy cập vào địa chỉ Website như sau:
3.1.3 Chức năng tìm kiếm tài liệu
Người dùng sau khi nhập từ khóa vào thanh tìm kiếm và nhấn tìm kiếm, kết quả tìm kiếm sẽ trả về như sau:
Hình 16 Tra cứu tài liệu
3.1.4 Chức năng xem và tải về tài liệu
Người dùng xem tài liệu được lọc theo danh mục:
Hình 17 Xem tài liệu theo danh mục
Giao diện xem tài liệu như sau:
Hình 18 Giao diện xem tài liệu
Sau khi người dùng Click và tin tức muốn xem, tin sẽ hiển thị như sau:
Hình 19 Xem tin tức
3.1.6 Chức năng đóng góp tài liệu
Người dùng muốn đóng góp tài liệu đăng tải tài liệu lên, yêu cầu vượt qua mã reCapcha để tiếp tục
Hình 20 Chức năng đóng góp tài liệu
Sau khi người dùng tải tài liệu lên hệ thống, hệ thống sẽ cung cấp mã số tài liệu cùng với thông tin về trạng thái kiểm duyệt của tài liệu đó.
Hình 21 Màn hình trả về sau khi người dùng đăng tải tài liệu lên
Giao diện chức năng quản lý
3.2.1 Chức năng kiểm duyệt tài liệu
Màn hình hiển thị tất cả danh sách cần kiểm duyệt như sau:
Hình 22 Danh sách tài liệu cần duyệt
Quản trị viên sẽ kiểm duyệt tài liệu sau khi xem tài liệu đạt đủ tiêu chí kiểm duyệt:
Hình 23 Xem và kiểm duyệt tài liệu
Màn hình thông báo xác nhận tin tức sẽ hiển thị tại trang chủ:
Hình 24 Thông báo kiểm duyệt tài liệu
3.2.2 Chức năng quản lý và xem tin tức
Người quản lý tin tức sẽ có quyền thêm, sửa, xóa tin tức, màn hình hiển thị như sau:
Hình 25 Quản lý tin tức
Chức năng thêm tin tức:
Hình 26 Chức năng thêm tin tức
Dựa trên kiến thức đã học và tài liệu tham khảo, tôi đã hiểu rõ quy trình xây dựng một Website hoàn chỉnh Website này bao gồm các chức năng cơ bản như: đóng góp và kiểm duyệt tài liệu, thêm, sửa, xóa, ẩn tài liệu, tìm kiếm tài liệu theo tên và phân loại, xem và phân loại tin tức, phân quyền hệ thống, cũng như khả năng xem và tải về tài liệu trực tuyến.
Các yêu cầu về tính năng và nhiệm vụ của đề tài đã được hoàn thành tốt Trong quá trình xây dựng Website, tôi đã gặp nhiều khó khăn và nỗ lực tìm kiếm giải pháp qua tài liệu, bạn bè, và Internet, cùng với sự hỗ trợ quý báu từ giảng viên Tôi đã tích lũy được nhiều kinh nghiệm trong việc phát triển Website ứng dụng mô hình lập trình ba lớp MVC 5 Mặc dù Website vẫn còn một số hạn chế, tôi sẽ tiếp tục nghiên cứu và cải thiện để hỗ trợ tốt hơn cho quá trình tự học và nghiên cứu sau này.
- Website chưa được tối ưu trên trình duyệt di động
- Những chức năng chưa hoạt động như: chia sẽ mã QR, click để vượt mã reCaptcha
- Sử dụng công nghệ bootstrap nhằm tối ưu cho trình duyệt trên di dộng
Sử dụng thư viện jQuery tương tự như reCaptcha là một giải pháp hiệu quả, vì reCaptcha yêu cầu website phải có hosting và máy chủ hoạt động Trong khi đó, thư viện jQuery chỉ xử lý trên lớp controller, do đó rất phù hợp cho các ứng dụng không cần hạ tầng phức tạp.
- Sử dụng các hàm thư viện để tạo mã QR tự động
- Sử dụng công nghệ reactJS để tối ưu khả năng tả trang và trải nghiệm sử dụng tốt hơn
Hướng dẫn cài đặt và sử dụng Website trên máy ảo LocalHost IIS cá nhân
• Để xem Website chạy demo trên máy tính hoặc laptop cá nhân Cần tải và chạy bằng phiên bản Visual Studio 2019 để đảm bảo sự ổn định
• Máy tính phải được cài đặt trình duyệt FireFox Đưa cơ sở dữ liệu vào SQL server bằng file sql đính kèm Lưu ý: lưu tên CSDL dưới tên “NEWS”
Hình 27 Cài đặt file sql
Sau khi mở lên, tiếp tục tạo mới CSDL tên NEWS và nhấn Execute như các bước bên dưới:
Hình 28 Nhấn chọn tạo mới Database
Tiếp tục ta đánh tên Database là NEWS và nhấn OK
Hình 29 Đặt tên Database
Hình 30 Khởi tạo Database
• Liên kết CSDL từ SQL server vào Visual Studio
Giải nén file “Website Cổng tài liệu điện tử - DTHU Shortcut.rar”, tìm đến file sln
Hình 31 Chạy file sln
Hình 32 Kết nối Add Connection
Nhập thông số tên Server của máy và tên Database là “NEWS”
Hình 33 Lưu thông số kết nối Database
Nhấn chạy IIS EXPRESS, Lưu ý: chạy trên trình duyệt FireFox
Hình 34 Chạy Website trên máy chủ IIS