Nội dung của luận văn
Mục tiêu của tác giả là xây dựng một hệ thống quản lý ảnh/video online hoàn chỉnh, nhằm quảng cáo và tăng lượng người dùng đăng ký, từ đó nâng cao sự tín nhiệm của hệ thống Tác giả cần thúc đẩy việc upload ảnh/video để quảng bá sản phẩm bán hàng Để đạt được mục tiêu này, tác giả chia nhỏ thành các bước cụ thể: đầu tiên, thực hiện phân tích và thiết kế hệ thống, bao gồm việc thu thập và phân tích yêu cầu, xây dựng thiết kế chính xác và đúng đắn, đồng thời phân tích các thách thức công nghệ và đảm bảo tính mở rộng cho tương lai Thứ hai, cần phân tích ưu nhược điểm của hệ thống và đặt ra các mục tiêu phát triển Cuối cùng, hệ thống cần hoàn thành việc cài đặt và triển khai để sử dụng, đảm bảo tính thực tiễn của dự án.
Cấu trúc của luận văn
Luận văn bao gồm những nội dung như sau:
Chương 1 cung cấp cái nhìn tổng quan về hệ thống đang được xây dựng, nhấn mạnh sự cần thiết và các nhiệm vụ quan trọng mà hệ thống sẽ thực hiện Đồng thời, chương này cũng làm rõ những đóng góp của luận văn đối với lĩnh vực nghiên cứu và ứng dụng thực tiễn.
Chương 2 sẽ giới thiệu và phân tích các công nghệ quan trọng trong việc phát triển hệ thống, bao gồm ngôn ngữ lập trình ASP.NET, mô hình MVC, và hệ quản trị cơ sở dữ liệu SQL Server Những công nghệ này không chỉ giúp tối ưu hóa quy trình phát triển mà còn nâng cao hiệu suất và tính bảo mật của hệ thống.
Chương 3 trình bày quá trình phân tích thiết kế hệ thống, bao gồm việc phân tích các yêu cầu chức năng và phi chức năng, xây dựng các mô hình use case và đặc tả use case, phát triển các mô hình lớp và lưu đồ hoạt động, thiết kế dữ liệu, thiết kế kiến trúc và thiết kế chức năng.
Chương 4 trình bày các vấn đề quan trọng liên quan đến cài đặt và triển khai hệ thống, bao gồm cài đặt giao diện người dùng, cài đặt chương trình, và triển khai hệ thống trên nền tảng Windows Những bước này là cần thiết để đảm bảo hệ thống hoạt động hiệu quả và đáp ứng nhu cầu của người dùng.
Chương 5: Trình bày tóm tắt các kết quả đạt được và đề xuất các hướng mở rộng, phát triển trong tương lai.
MỘT SỐ CÔNG NGHỆ ĐỂ XÂY DỰNG HỆ THỐNG
Ngôn ngữ lập trình ASP.NET MVC
Tổng quát về ASP.NET MVC
Asp.Net MVC là một framework dựa trên Net Framework, được thiết kế để phát triển các ứng dụng web động Nó áp dụng mẫu thiết kế MVC, giúp người dùng dễ dàng phát triển phần mềm hiệu quả.
MVC là một mẫu phát triển ứng dụng chia nhỏ ứng dụng thành ba thành phần chính: models, views và controllers Mỗi thành phần có vai trò riêng biệt và tương tác lẫn nhau, giúp tối ưu hóa quá trình cài đặt và phát triển ứng dụng.
Các đặc trưng của chính của Model, View và Controller trong mẫu thiết kế chuẩn MVC[2,tr.28]:
Các đối tượng Model là thành phần quan trọng trong ứng dụng, chịu trách nhiệm thiết lập logic cho dữ liệu Chúng thường được sử dụng để lấy và lưu trữ trạng thái của model trong cơ sở dữ liệu (CSDL).
View: là các thành phần dùng để hiển thị giao diện người dùng (UI), view được tạo dựa vào thông tin dữ liệu model
Controller là thành phần quản lý tương tác người dùng, làm việc với model và chọn view để hiển thị giao diện Trong kiến trúc MVC, view chỉ có chức năng hiển thị thông tin, trong khi controller chịu trách nhiệm quản lý và phản hồi nội dung người dùng nhập cũng như tương tác của họ.
Hình 2.1 [2,tr29] mô tả mô hình thiết kế MVC:
Hình 2.1: Mẫu thiết kế MVC
Lợi ích khi xây dựng ứng dụng dựa trên mô hình MVC
Mô hình MVC mang lại nhiều lợi ích trong phát triển hệ thống phần mềm, giúp quản lý sự phức tạp của ứng dụng hiệu quả hơn bằng cách chia thành ba thành phần: model, view và controller Điều này không chỉ đơn giản hóa quá trình phát triển theo hướng kiểm thử, mà còn nâng cao tính bảo mật, bảo trì và nâng cấp hệ thống mà vẫn đảm bảo chất lượng Hơn nữa, mô hình này hỗ trợ quản lý dự án tốt hơn, cho phép các nhà phát triển và thiết kế làm việc đồng thời, từ đó tăng cường hiệu suất và tính linh hoạt trong quá trình phát triển.
Sent to be presented to user
Send as part of the request phép thay đổi trong một phần của ứng dụng mà không ảnh hưởng đến các phần khác của ứng dụng
Kiến trúc MVC tách biệt sự phụ thuộc giữa các thành phần trong đối tượng đồ họa, giúp tăng tính linh động và khả năng tái sử dụng Nhờ đó, người dùng có thể dễ dàng thay đổi giao diện bằng cách điều chỉnh thành phần View mà không ảnh hưởng đến cách lưu trữ (Model) hay xử lý (Controller) Tương tự, việc thay đổi phương thức lưu trữ hoặc xử lý cũng không làm ảnh hưởng đến các thành phần còn lại của đối tượng đồ họa.
Kiến trúc MVC đã được áp dụng rộng rãi trong việc phát triển nhiều framework và thư viện đồ họa, nổi bật là bộ thư viện đồ họa của ngôn ngữ lập trình SmallTalk, được nghiên cứu và phát triển bởi Xerox PARC vào thập niên 70 Ngoài ra, các Swing Components trong Java cũng được xây dựng dựa trên kiến trúc này Đặc biệt, nền tảng ASP.NET MVC Framework do Microsoft phát triển là một ví dụ tiêu biểu khác của việc ứng dụng kiến trúc MVC.
Tính năng quan trọng của nền tảng ASP.NET MVC [16]
1 Tách bạch các tác vụ của ứng dụng (logic nhập liệu, business logic, và logic giao diện), dễ dàng kiểm thử và mặc định áp dụng hướng phát triển hướng kiểm thử Tất cả các tính năng chính của mô hình MVC được cài đặt dựa trên giao diện và được kiểm thử bằng cách sử dụng các đối tượng mocks, mock object là các đối tượng mô phỏng các tính năng của những đối tượng thực sự trong ứng dụng Bạn có thể kiểm thử unit-test cho ứng dụng mà không cần chạy controller trong tiến trình ASP.NET, và điều đó giúp unit test được áp dụng nhanh chóng và tiện dụng Bạn có thể sử dụng bất kỳ nền tảng unit-testing nào tương thích với nền tảng NET
2 MVC là một nền tảng khả mở rộng (extensible) và khả nhúng (pluggable) Các thành phần của ASP.NET MVC được thiết kể để chúng có thể được thay thế một cách dễ dàng hoặc dễ dàng tùy chỉnh Bạn có thể nhúng thêm view engine, cơ chế định tuyến cho URL, cách kết xuất tham số của action-method và các thành phần khác ASP.NET MVC cũng hỗ trợ việc sử dụng Dependency Injection (DI) và Inversion of Control (IoC) DI cho phép bạn gắn các đối tượng vào một lớp cho lớp đó sử dụng thay vì buộc lớp đó phải tự mình khởi tạo các đối tượng IoC quy định rằng, nếu một đối tượng yêu cầu một đối tượng khác, đối tượng đầu sẽ lấy đối tượng thứ hai từ một nguồn bên ngoài, ví dụ như từ tập tin cấu hình Và nhờ vậy, việc sử dụng DI và IoC sẽ giúp kiểm thử dễ dàng hơn
3 ASP.NET MVC có thành phần ánh xạ URL mạnh mẽ cho phép bạn xây dựng những ứng dụng có các địa chỉ URL xúc tích và dễ tìm kiếm Các địa chỉ URL không cần phải có phần mở rộng của tên tập tin và được thiết kế để hỗ trợ các mẫu định dạng tên phù hợp với việc tối ưu hóa tìm kiếm (URL) và phù hợp với lập địa chỉ theo kiểu REST
4 Hỗ trợ các tính năng có sẵn của ASP.NET như cơ chế xác thực người dùng, quản lý thành viên, quyền, output caching và data caching, seession và profile, quản lý tình trạng ứng dụng, hệ thống cấu hình…
5 ASP.NET MVC sử dụng view engine Razor View Engine cho phép thiết lập các view nhanh chóng, dễ dàng và tốn ít công sức hơn so với việc sử dụng Web Forms view engine
Giao tiếp trong kiến trúc ASP.NET MVC
Các thành phần cơ bản của ứng dụng Asp.Net MVC là: Route engine, Route configuration, MVC Framework, View, View engine, Model, Control
Các thành phần trong Asp.Net MVC sẽ tương tác để xử lý yêu cầu của ứng dụng Quá trình này thường diễn ra qua một chuỗi xử lý, trong đó mỗi bước sẽ được đảm nhận bởi một thành phần riêng biệt trong Asp.Net.
Hình 2.2[2,tr.43] mô tả cách giao tiếp trong kiến trúc ASP.NET theo mô hình MVC
Hình 2.2: Giao tiếp trong kiến trúc ASP.NET MVC
1 Trình duyệt gửi yêu cầu của ứng dụng Asp.Net MVC
2 MVC Engine chuyển yêu cầu tới cho Routing engine (Bộ điều hướng)
3 Routing engine kiểm tra cấu hình điều hướng (route configuration) của ứng dụng nhằm chuyển đến các Controller phù hợp với yêu cầu
4 Khi Controller được tìm thấy, Control này sẽ được thực thi
5 Nếu Controller không được tìm thấy, bộ điều hướng sẽ chỉ ra rằng Controller không được tìm thấy và MVC Engine sẽ thông báo lỗi cho trình duyệt
6 Controller giao tiếp với Model, tầng Model đại diện cho các Entity bên trong hệ thống, Controller làm việc với tầng model để lấy thông tin cần cho người dùng
7 Controller yêu cầu View engine hiển thị thông tin dựa trên dữ liệu của tầng Model
8 View engine trả kết quả cho Controller
9 Controller gửi kết quả cho trình duyệt thông qua giao thức Http
ASP.NET là ngôn ngữ lý tưởng cho việc xây dựng hệ thống quản lý ảnh/video nhờ vào khả năng tùy biến và mở rộng linh hoạt Qua trải nghiệm cá nhân, tác giả nhận thấy các website sử dụng ASP.NET như dantri.com.vn và vnexpress.net hoạt động mượt mà, ổn định với tốc độ tải trang nhanh Tuy nhiên, lập trình bằng ASP.NET cũng gặp thách thức, đặc biệt là việc yêu cầu tạo mã nguồn mới hoàn toàn, khác với một số framework khác Do đó, người phát triển cần có kỹ năng và tư duy tốt để tối ưu hóa các tính năng của hệ thống.
Hệ quản trị cơ sở dữ liệu SQL Server
SQL Server is a relational database management system (RDBMS) that utilizes SQL (Transact-SQL) for data exchange between clients and the SQL Server installation An RDBMS consists of databases, a database engine, and applications designed to manage data and various components within the RDBMS.
SQL Server is optimized to operate in very large database environments, capable of handling data up to terabytes and supporting thousands of users simultaneously It seamlessly integrates with other servers, including Microsoft Internet Information Server (IIS), E-Commerce Server, and Proxy Server.
SQL Server consists of various components, including the Database Engine, Reporting Services, Notification Services, Integration Services, and Full Text Search Service These components work together to create a comprehensive solution that facilitates easy data storage and analysis Figure 2.3 illustrates the main components of SQL Server.
Hình 2.3: Các thành phần chính của SQL Server
Hệ thống quản lý ảnh/video online cần chú trọng vào cơ sở dữ liệu do lượng dữ liệu sẽ tăng dần theo thời gian Việc lựa chọn cơ sở dữ liệu là rất quan trọng, và SQL Server được đánh giá cao nhờ vào khả năng quản lý và truy xuất dữ liệu mạnh mẽ, tính tương thích với ASP.NET, cùng khả năng chịu tải trong môi trường cơ sở dữ liệu lớn Mặc dù cần đầu tư tài chính nhiều hơn so với các hệ cơ sở dữ liệu miễn phí khác, nhưng đây là một khoản đầu tư hợp lý cho sự mở rộng và phát triển của hệ thống trong tương lai.
Mô hình cài đặt
Lựa chọn mô hình cài đặt
Một trong những mô hình cài đặt phổ biến hiện nay cho các ứng dụng là kiến trúc đa tầng N-tier Kiến trúc N-tier, thường được hiểu là mô hình 3 tầng, được thể hiện qua hình 2.4 và hình 2.5 trong tài liệu tham khảo.
Hình 2.4: Ví dụ mô hình 3-tier
Hình 2.5: Mô hình mô tả kiến trúc 3-Tier
Các thuận lợi mà kiến trúc này có thể mang lại là[6,tr.35]:
1 Việc thay đổi các xử lý ở tầng truy xuất dữ liệu sẽ không ảnh hưởng và làm thay đổi tầng giao diện người dùng
2 Tất cả các thủ tục truy xuất dữ liệu sẽ được đóng gói vào các đối tượng thay vì dùng các lời gọi hàm
3 SQL sẽ được loại trừ ra khỏi code phía client Client chỉ còn quan tâm đến các phương thức và các thuộc tính
4 Tên của các bảng và cột sẽ được loại trừ ra khỏi code phía client Các datasets được định kiểu có thể mô tả các bảng và cột dữ liệu như là các thuộc tính, cung cấp một danh sách các IntellliSense
5 Code phía client sẽ không quan tâm đến việc dữ liệu có từ đâu Nó chỉ quan tâm rằng nó có thể nhận và điều chỉnh dữ liệu trong các đối tượng và đối tượng này sẽ quan tâm tới các chi tiết
6 Code phía client sẽ được đơn giản hóa, thay vì sử dụng nhiều hàm (functions) thì các ứng dụng nên sử dụng các đối tượng với các thuộc tính (properties) và phương thức (methods)
7 Việc tạo và sử dụng các đối tượng sẽ dễ dàng hơn là dùng các lời gọi hàm
8 Việc thêm và thay đổi các chức năng của ứng dụng cũng sẽ dễ dàng hơn do không làm thay đổi code phía client
Mặc dù kiến trúc 3-tier mang lại nhiều lợi ích, nhưng cũng tồn tại một số bất lợi Đầu tiên, việc cần tạo ra nhiều lớp hơn có thể ảnh hưởng đến bảo trì và hiệu suất, vì việc tạo lớp mới tại thời điểm chạy sẽ tốn thời gian Thứ hai, kiến trúc này không hoạt động hiệu quả khi cấu trúc bảng dữ liệu chưa được xác định Thứ ba, quá trình truyền dữ liệu giữa các tầng sẽ chậm hơn do phải thực hiện qua các tiến trình khác nhau, yêu cầu đóng gói và mở gói dữ liệu Cuối cùng, phát triển ứng dụng theo kiến trúc 3-tier sẽ phức tạp hơn so với các kiến trúc khác Tuy nhiên, những lợi thế mà kiến trúc này mang lại vẫn lớn hơn nhiều so với bất lợi, do đó tác giả quyết định xây dựng ứng dụng theo kiến trúc 3-tier.
Xây dựng các lớp xử lý chính
Trong kiến trúc 3-tier, mỗi tầng sẽ có các lớp đối tượng riêng biệt với trách nhiệm cụ thể Tầng giao diện người dùng sử dụng các trang aspx và web forms để trình bày nội dung cho phía client Tầng giữa đóng vai trò là cầu nối, xử lý các yêu cầu giữa tầng giao diện và tầng dữ liệu Cuối cùng, tầng dữ liệu chịu trách nhiệm truy xuất và cập nhật thông tin, với các lớp đối tượng được phân chia rõ ràng cho từng nhiệm vụ của các tầng.
Trong ứng dụng này, mỗi đối tượng phục vụ của hệ thống được đóng gói trong các namespace khác nhau, cho phép xây dựng độc lập ở tầng giao diện và xử lý Tầng dữ liệu tập trung vào việc xử lý tất cả các yêu cầu truy xuất dữ liệu của các đối tượng, tạo ra sự tách biệt rõ ràng trong việc xây dựng các lớp xử lý theo kiến trúc 3-tier.
Cách thức truy cập cơ sở dữ liệu (ADO.NET)
Trong môi trường phát triển Microsoft NET, tất cả các ứng dụng webform và winform đều sử dụng ADO.NET (Active Data Object) để truy xuất và thao tác với cơ sở dữ liệu ADO.NET là một bộ thư viện hướng đối tượng nằm trong NET Framework, giúp các ứng dụng Windows (như C#, VB.NET) và ứng dụng web (như ASP.NET) dễ dàng tương tác với nhiều nguồn dữ liệu khác nhau, bao gồm cơ sở dữ liệu, file text và file Excel.
XML là một phần quan trọng trong việc tương tác với nhiều loại cơ sở dữ liệu như SQL Server, MS Access, và Oracle Mô hình ADO.NET được thiết kế để giúp lập trình viên thao tác với các cơ sở dữ liệu này một cách đồng nhất Hình 2.6 minh họa vị trí của ADO.NET trong kiến trúc của NET Framework.
Hình 2.6: Vị trí của ADO NET trong kiến trúc của NET Framwork
ADO.NET là một thành phần quan trọng của NET Framework, cho phép sử dụng linh hoạt trong tất cả các ngôn ngữ hỗ trợ NET như C# và VB.NET mà không gặp phải sự khác biệt nào.
ADO.NET cho phép tương tác với nhiều loại dữ liệu và kiểu cơ sở dữ liệu khác nhau Mỗi loại dữ liệu yêu cầu phương pháp truy xuất riêng, với các loại dữ liệu cũ sử dụng giao thức ODBC và các loại dữ liệu mới hơn sử dụng OleDb Do đó, cần có một thư viện thống nhất để quản lý và làm việc với chúng, và đó chính là lý do ADO.NET ra đời.
ADO.NET cung cấp một phương thức chung để tương tác với các nguồn dữ liệu, nhưng mỗi loại dữ liệu yêu cầu một thư viện khác nhau, được gọi là Data Provider, thường được đặt tên theo giao thức hoặc loại dữ liệu mà chúng hỗ trợ Để làm việc với dữ liệu trong ADO.NET, bạn cần nắm rõ năm đối tượng chính: SqlConnection, SqlCommand, SqlDataReader, DataSet và SqlDataAdapter.
1 Đối tượng SqlConnection cho phép bạn quản lý một kết nối đến nguồn dữ liệu
2 Đối tượng SqlCommand cho phép bạn gửi lệnh đến dữ liệu
3 Đối tượng SqlDataReader cho phép đọc dữ liệu nhanh theo cơ chế forward-only
4 Đối tượng DataSet sẽ được sử dụng nếu muốn làm việc với dữ liệu đã ngắt kết nối
5 Đối tượng SqlDataAdalter sẽ cho phép bạn thực hiện việc đọc và ghi đến dữ liệu nguồn
Hình 2.7 sau đây mô tả kiến trúc của ADO.NET:
Common Language Runtime System Service
Hình 2.7: Kiến trúc của ADO.NET
Việc lựa chọn ASP.NET cho phát triển hệ thống được củng cố qua các phân tích, cho thấy rằng việc sử dụng ASP.NET kết hợp với ADO.NET sẽ hỗ trợ mở rộng và phát triển cơ sở dữ liệu của hệ thống trong tương lai.
Bảo mật và cơ chế phân quyền trong hệ thống
Quản lý vai trò của các đối tượng là yếu tố thiết yếu trong bất kỳ ứng dụng nào, nhằm đảm bảo an toàn cho hệ thống và phân chia nhiệm vụ giữa các đối tượng Việc thiết kế quản lý vai trò giúp cấp quyền truy cập cho đối tượng tương ứng với quyền hạn của họ, từ đó nâng cao tính bảo mật cho hệ thống Hầu hết các framework đều hỗ trợ tính năng phân quyền mặc định, như NET Framework với các thành phần như Membership Provider, SimpleMembership, Universal Provider, Identity và Role Provider Tuy nhiên, việc thao tác với cơ sở dữ liệu của người dùng có thể gặp khó khăn, do đó, việc sử dụng Custom Provider là giải pháp hợp lý để khắc phục vấn đề này Các nhà cung cấp dữ liệu của NET Framework như Data Provider for SQL Server, OLE DB, ODBC và Oracle trong ADO NET cũng hỗ trợ cho việc quản lý vai trò hiệu quả hơn.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Các đối tượng tham gia vào hệ thống
3.1.1 Người quản trị hệ thống (Admin)
Người quản trị hệ thống có quyền truy cập từ xa, cho phép họ kiểm soát toàn bộ hoạt động của hệ thống Họ có thể xem danh sách người dùng đăng ký, thực hiện các thao tác thêm, xóa, sửa và cập nhật thông tin người dùng khi cần Bên cạnh đó, quản trị viên còn có khả năng tùy chỉnh giao diện hệ thống để phù hợp với từng thời điểm Họ cũng có thể thống kê số lượng ảnh/video theo lượt xem, thể loại và mức độ yêu thích từ người dùng.
3.1.2 Người sử dụng hệ thống (User)
User là thành viên đã đăng ký tài khoản trong hệ thống, cho phép họ đăng nhập và đăng xuất Họ có khả năng tải lên hình ảnh và video cá nhân, sử dụng các công cụ chỉnh sửa mà hệ thống cung cấp Ngoài ra, user có thể tìm kiếm và thêm ảnh của thành viên khác vào album cá nhân Họ cũng có thể thiết kế slide trình chiếu ảnh và xem trực tiếp trên hệ thống Trang cá nhân của user có thể được tùy chỉnh với ảnh đại diện, ảnh bìa và thông tin cá nhân Cuối cùng, user có thể yêu thích và bình luận về ảnh, video của chính mình hoặc bạn bè trên nền tảng.
3.1.3 Khách vãng lai (User Guest)
User Guest là người dùng chưa đăng ký tài khoản trong hệ thống, cho phép họ tìm kiếm ảnh và video theo từ khóa mà không cần đăng nhập Ngoài ra, user guest còn có khả năng thực hiện đăng ký để trở thành thành viên của hệ thống.
Các yêu cầu chính mà hệ thống phải thực hiện
1 Từng đối tượng user sẽ có các chức năng được xử lý độc lập như thêm, sửa, đăng ký thông tin
2 Admin có thể thực hiện được các chức năng quản trị cả hệ thống như: quản lý user, quản lý thông tin đăng ký Admin có thể tùy chỉnh giao diện của hệ thống cho bắt mắt và phù hợp với thị yếu theo thời gian
3 User có thể đăng ký làm thành viên, đăng nhập vào hệ thống, xem và tìm kiếm ảnh theo chủ đề, có thể tải ảnh của cá nhân lên và cài đặt các quyền hạn cho ảnh tương ứng User còn có thể chỉnh sửa ảnh và video của mình bằng một số tính năng trên hệ thống cung cấp
4 User guest có thể xem và tìm kiếm ảnh theo chủ đề, có thể đăng ký thành viên và có thể bình luận về ảnh, video mà có quyền public
5 Hệ thống phải đảm bảo tính bảo mật trong các thông tin đăng ký, đăng nhập, quản trị
6 Hệ thống có khả năng nhận diện những hình ảnh phản cảm để lọc và không cho công khai để tránh tình trạng thành nơi lưu giữ ảnh phản cảm
7 Hệ thống có cơ chế tự nhận dạng và phân loại ảnh theo chủ đề nếu user không tự thực hiện phân loại.
Phân tích yêu cầu hệ thống
Hệ thống cần cung cấp chức năng đăng ký và đăng nhập, xác định tài khoản để phân quyền truy cập với vai trò admin hoặc người dùng thông thường Đảm bảo lưu trữ thông tin an toàn và cho phép người dùng tìm kiếm ảnh, video theo từ khóa hoặc chủ đề Giao diện thân thiện giúp người dùng dễ dàng tải ảnh, video lên và quản lý, chỉnh sửa nội dung cá nhân Hệ thống cũng cần hỗ trợ phân loại ảnh, video khi tải lên, cùng với tính năng chia sẻ, bình luận, yêu thích để tăng cường tương tác giữa người dùng Đối với quản trị viên, hệ thống cần có giao diện riêng để quản lý thông tin, có quyền thêm, xóa, sửa thông tin và cơ chế nhận diện ảnh giúp phân loại ảnh phản cảm, bảo vệ uy tín và ảnh hưởng tích cực đến người dùng.
3.3.1.2 Yêu cầu chức năng hệ thống
Hệ thống cần thiết lập phân quyền cho từng đối tượng người dùng, cho phép họ đăng nhập với vai trò khác nhau và quản lý quyền truy cập tới tài nguyên tương ứng Đồng thời, hệ thống phải đảm bảo bảo mật thông tin người dùng, bao gồm địa chỉ email, số điện thoại, địa chỉ, tên người dùng và mật khẩu.
3.3.2 Các yêu cầu phi chức năng 3.3.2.1 Nhắm tới lợi ích của các đối tượng người dùng
Tính tiện dụng: Giao diện thân thiện dễ sử dụng đối với những người sử dụng Windows, dễ tìm kiếm thông tin cần thiết và nhanh chóng
Tính hiệu quả: Đảm bảo việc truy xuất nhanh đến các trang và khả năng kiểm soát lỗi tốt, đăng ký, đăng nhập dễ dàng nhanh chóng
Tính tương thích: Hỗ trợ tốt trên các trình duyệt từ IE 8 trở lên và các trình duyệt khác như Opera, Mozilla Firefox, Google Chrome, …
Sử dụng AI trong phân loại ảnh và nhận diện hình ảnh phản cảm mang lại tính tiến hóa vượt bậc Công nghệ này có khả năng tự học hỏi thông qua quá trình học máy, giúp cải thiện hiệu quả tự động phân loại ảnh dựa trên dữ liệu từ người dùng.
3.3.2.2 Nhắm tới lợi ích của việc phát triển dự án
Thiết kế theo mô hình Three-tiers
Các tham số của hệ thống được thiết kế động, dễ tùy chỉnh
Tính dùng lại của code.
Bảng chú giải
Bảng chú giải này định nghĩa các thuật ngữ chuyên ngành trong bài toán, giải thích những từ ngữ có thể chưa quen thuộc với người đọc trong các mô tả ca sử dụng và tài liệu liên quan Tài liệu này có thể được coi là một từ điển dữ liệu không chính thức, ghi lại các định nghĩa để mô tả ca sử dụng và các tài liệu khác, tập trung vào những yêu cầu mà hệ thống cần thực hiện.
3.4.2 Bảng danh sách các tác nhân
Bảng 3.1: Bảng danh sách các tác nhân:
STT Tác nhân Mô tả
1 Admin Admin - Quản trị của hệ thống
Người dùng có thể đăng ký và đăng nhập vào hệ thống để tải ảnh và video lên, cũng như chỉnh sửa các nội dung này theo nhu cầu của mình.
Người dùng khách (Guest User) là kiểu người dùng có khả năng tìm kiếm và xem ảnh, video mà không cần phải đăng nhập Họ chỉ có thể truy cập những nội dung mà người dùng khác đã tải lên và đặt quyền cho phép tất cả mọi người xem.
3.4.3 Bảng chuyển đổi các yêu cầu chức năng sang ca sử dụng
Dựa trên phân tích các đối tượng tham gia và các yêu cầu, chức năng cần thiết của hệ thống, tác giả đã phân rã và chuyển đổi các chức năng thành các ca sử dụng, như được trình bày trong bảng 3.2 dưới đây.
Bảng 3.2: Bảng chuyển đổi các yêu cầu chức năng sang ca sử dụng STT ID Ca sử dụng Actor chính Actor phụ Mô tả tóm tắt
Cho phép actor đăng nhập vào hệ thống
Cho phép actor đăng xuất khỏi hệ thống
Quản lý giao tiếp giữa người dùng và quản trị viên hệ thống là rất quan trọng Người dùng cần báo cáo lỗi hệ thống hoặc yêu cầu hỗ trợ liên quan đến tài khoản của họ để đảm bảo hoạt động trơn tru.
Cho phép actor chỉnh sửa, update nội dung thông báo
Cho phép actor xem nội dung các yêu cầu mình gửi hoặc được gửi tới mình
Trả lời lại các thông báo, yêu cầu mà actor nhận được
Gửi các thông báo, yêu cầu, trao đổi thông tin giữa người quản trị và user
Quản lý nội dung bình luận của User
Admin Ẩn bình luận của người dùng có nội dung vi phạm
Admin Hiển thị lại nội dung bình luận của người dùng
Quản lý ảnh mà người dùng tải lên hệ thống
Admin Ẩn ảnh có nội dung không phù hợp
Admin Hiển thị lại ảnh của người dùng
Quản lý video mà người dùng tải lên hệ thống
Admin Ẩn video có nội dung không phù hợp
Admin Hiển thị lại video của người dùng
Admin Quản lý người dùng
18 UC18 LockUser Admin Khóa tài khoản người dùng
19 UC19 UnlockUser Admin Mở khóa cho tài khoản người dùng
Admin Quản lý tài khoản admin
Admin Thêm một tài khoản admin vào hệ thống
22 UC22 EditAdmin Admin Chỉnh sửa tài khoản admin
Admin Vô hiệu hóa tài khoản admin
Tìm kiếm user từ trong hệ thống
Quản lý giao diện cá nhân hoặc của hệ thống
Admin Thêm quảng cáo trên hệ thống
27 UC27 SettingsSite Admin Thay đổi cài đặt của hệ thống
Thay đổi ngôn ngữ hiển thị
Admin Cập nhật các menu hiển thị trên hệ thống
User Thực hiện bình luận về ảnh hoặc video
User Chỉnh sửa lại nội dung bình luận
Xóa nội dung bình luận
User Actor thực hiện việc xóa video
User Tải video lên hệ thống
User Cập nhật thêm thông tin về video ví dụ như loại video, từ khóa, điều chỉnh quyền hiển thị video,…
User Actor thêm password vào ảnh,video để tăng bảo mật
User User cập nhật từ khóa cho ảnh, video giúp dễ dàng hơn trong việc tìm kiếm ảnh,video
User User cập nhật quyền hiển thị ảnh,video
40 UC40 ShareVideo User Chia sẻ video trên một hệ thống khác
Actor thực hiện việc tìm kiếm video
42 UC42 EditVideo User Actor sử dụng công cụ của hệ thống chỉnh sửa video
43 UC43 LikeVideo User Actor yêu thích một video
User Actor thêm video hoặc ảnh vào album của mình
Actor thực hiện việc xem ảnh
46 UC46 EditImage User Actor sử dụng công cụ của hệ thống chỉnh sửa ảnh
48 UC48 ShareImage User Chia sẻ ảnh trên một hệ thống khác
User Cập nhật thêm thông tin về ảnh ví dụ như loại ảnh, từ khóa, điều chỉnh quyền hiển thị ảnh,…
User Tải ảnh lên hệ thống
Actor thực hiện việc tìm kiếm ảnh
Hệ thống tự động kiểm tra tính hợp lệ của ảnh ngay sau khi người dùng tải lên, đảm bảo chỉ những ảnh phù hợp mới được đưa vào hệ thống.
53 UC53 LikeImage User User thực hiện yêu thích ảnh
User Khôi phục tài khoản trong hệ thống
User Người dùng thực hiện việc cập nhật ảnh bìa của trang cá nhân
User Người dùng thực hiện việc cập nhật ảnh đại diện
User Người dùng thực hiện việc cập nhật thông tin cá nhân
58 UC58 Registration User Guest Khách vãng lai thực hiện đăng ký tài khoản trên hệ thống
System Khi người dùng tải ảnh lên hệ thống thì hệ thống tự động nhận diện hình ảnh và thêm từ khóa giúp việc tìm kiếm dễ dàng hơn.
Đặc tả ca sử dụng
Phần Đặc tả ca sử dụng xin xem chi tiết tại Phụ lục 1.
Đặc tả bổ sung
Mục tiêu của tài liệu này là định nghĩa các yêu cầu cho Hệ thống quản lý ảnh/video trực tuyến Bản đặc tả bổ sung này nêu rõ các yêu cầu chưa được thể hiện trong các ca sử dụng, nhằm cung cấp cái nhìn toàn diện về hệ thống Kết hợp với các ca sử dụng trong mô hình, bản đặc tả bổ sung sẽ giúp thể hiện đầy đủ các yêu cầu cần thiết cho hệ thống này.
3.6.2 Phạm vi Đặc tả bổ sung áp dụng cho Hệ thống quản lý ảnh/video online do người thực hiện đề tài phát triển Đặc tả này vạch rõ các yêu cầu phi chức năng của hệ thống, như tính ổn định, tính khả dụng, và tính hỗ trợ cũng như các yêu cầu chức năng chung của một số ca sử dụng.
Hệ thống cần hỗ trợ nhiều người dùng làm việc đồng thời và thực hiện việc tải ảnh, video nhanh chóng Cơ chế tự động phân loại và kiểm tra ảnh phải được thực hiện với tốc độ nhanh và độ chính xác cao.
Hệ thống nghệ thuật cần có giao diện đẹp mắt và phù hợp với xu hướng người dùng, nhưng không nên quá phức tạp để đảm bảo dễ sử dụng Cần cung cấp hướng dẫn chi tiết cho người dùng và tạo các tài liệu hỗ trợ cho người quản trị, giúp họ dễ dàng tiếp cận và quản lý hệ thống hiệu quả hơn.
Hệ thống cần hoạt động liên tục 24/7, với thời gian bảo trì tối đa là 5 phút Để đáp ứng nhu cầu người dùng, hệ thống phải nhanh chóng và đảm bảo độ chính xác cao.
Hệ thống cần đảm bảo khả năng hỗ trợ hàng ngàn người truy cập cơ sở dữ liệu trung tâm đồng thời, bất kể thời điểm nào Để đáp ứng nhu cầu tăng trưởng trong tương lai, cần thiết lập cơ chế mở rộng linh hoạt cho số lượng người sử dụng tăng lên.
1 Vai trò của từng đối tượng phải được thể hiện rõ ràng
2 Người quản trị có quyền cao nhất có thể thêm hay xóa bất kì đối tượng nào
3 Các đối tượng được phân cấp quyền rõ ràng
4 Các thông tin chung của mỗi đối tượng do tự đối tượng đó quản lý
3.6.8 Các ràng buộc thiết kế
Hệ thống phải hỗ trợ hầu hết các trình duyệt của Windows như: Internet Explorer, Opera, Mozilla Firefox, Google Chrome…
Các sơ đồ ca sử dụng
Hình 3.3: Mô hình ca sử dụng của Admin
3.7.2 Mô hình các ca sử dụng của User
Hình 3.4: Mô hình ca sử dụng của User
3.7.3 Mô hình các trường hợp sử dụng của User Guest
Hình 3.5: Mô hình ca sử dụng của User Guest
Các biểu đồ tuần tự
Sau khi hoàn thành việc đặc tả ca sử dụng và các yêu cầu bổ sung, tác giả sẽ tiến hành phân tích thiết kế biểu đồ tuần tự cho các ca sử dụng tương ứng Mục tiêu của việc này là xác định trình tự diễn ra các sự kiện giữa các đối tượng tác động lên hệ thống Biểu đồ tuần tự cần mô tả chi tiết các thông điệp được gửi và nhận giữa các đối tượng, đồng thời chú trọng đến trình tự thời gian của việc gửi và nhận những thông điệp này.
Khi truy cập vào hệ thống, người dùng sẽ thấy màn hình chính ở trạng thái chưa đăng nhập Để đăng nhập, người dùng có tài khoản chỉ cần nhấn vào nút “Đăng nhập” ở góc trái màn hình.
Tên biểu đồ: UC01:Login
Biểu đồ tuần tự (Sequence Diagram):
Hình 3.6: Biểu đồ tuần tự: Đăng nhập hệ thống
3.8.2 Người dùng đăng xuất khỏi hệ thống
Tên biểu đồ: UC02:Logout
Hình 3.7: Biểu đồ tuần tự: Đăng xuất khỏi hệ thống
3.8.3 Người dùng chỉnh sửa nội dung báo cáo
Tên biểu đồ: UC04:UpdateReport
Hình 3.8: Biểu đồ tuần tự: Chỉnh sửa báo cáo
Tên biểu đồ: UC05:View Report
Hình 3.9: Biểu đồ tuần tự: Xem thông báo, báo cáo
Tên biểu đồ: UC06:ReplyReport
Hình 3.10: Biểu đồ tuần tự: Trả lời lại báo cáo
3.8.6 Gửi báo cáo lên hệ thống
Tên biểu đồ: UC07:SendReport
Hình 3.11: Biểu đồ tuần tự: Gửi báo cáo lên hệ thống
3.8.7 Vô hiệu hóa bình luận
Tên biểu đồ: UC09:DeactiveComment
Hình 3.12: Biểu đồ tuần tự: Vô hiệu hóa bình luận
Tên biểu đồ: UC10:ActiveComment
Hình 3.13: Biểu đồ tuần tự: Kích hoạt bình luận
Tên biểu đồ: UC12:DeactiveImage
Hình 3.14: Biểu đồ tuần tự: Vô hiệu hóa ảnh
Tên biểu đồ: UC13:ActiveImage
Hình 3.15: Biểu đồ tuần tự: Kích hoạt ảnh
Tên biểu đồ: UC15:DeactiveVideo
Hình 3.16: Biểu đồ tuần tự: Vô hiệu hóa video
Tên biểu đồ: UC16:ActiveVideo
Hình 3.17: Biểu đồ tuần tự: Kích hoạt video
3.8.13 Khóa tài khoản người dùng
Tên biểu đồ: UC18:LockUser
Hình 3.18: Biểu đồ tuần tự: Khóa tài khoản người dùng
3.8.14 Mở khóa tài khoản người dùng
Tên biểu đồ: UC19:UnlockUser
Hình 3.19: Biều đồ tuần tự: Mở khóa tài khoản người dùng
Tên biểu đồ: UC21:AddNewAdmin
Hình 3.20: Biểu đồ tuần tự: Thêm tài khoản admin
3.8.16 Chỉnh sửa tài khoản admin
Tên biểu đồ: UC22:EditAdmin
Hình 3.21: Biểu đồ tuần tự: Chỉnh sửa tài khoản admin
3.8.17 Vô hiệu hóa tài khoản admin
Tên biểu đồ: UC23:DeactiveAdmin
Hình 3.22: Biểu đồ tuần tự: Vô hiệu hóa tài khoản admin
Tên biểu đồ: UC24:FindUser
Hình 3.23: Biểu đồ tuần tự: Tìm kiếm người dùng
Tên biểu đồ: UC26:AddAdvertisement
Hình 3.24: Biểu đồ tuần tự: Thêm quảng cáo
3.8.20 Thay đổi ngôn ngữ hiển thị
Tên biều đồ: UC28:Choose Language
Hình 3.25: Biểu đồ tuần tự: Thay đổi ngôn ngữ hiển thị
Tên biều đồ: UC29:UpdateMenus
Hình 3.26: Biểu đồ tuần tự: Cập nhật menus
Tên biều đồ: UC30:AddComment
Hình 3.27: Biểu đồ tuần tự: Thêm bình luận
Tên biều đồ: UC31:EditComment
Hình 3.28: Biểu đồ tuần tự: Chỉnh sửa bình luận
Tên biều đồ: UC32:DeleteComment
Hình 3.29: Biểu đồ tuần tự: Xóa bình luận
Tên biều đồ: UC33:ViewVideo
Hình 3.30: Biểu đồ tuần tự: Xem video
Tên biều đồ: UC34:DeleteVideo
Hình 3.31: Biểu đồ tuần tự: Xóa video
3.8.27 Tải video lên hệ thống
Tên biều đồ: UC35:UploadVideo
Hình 3.32: Biểu đồ tuần tự: Tải video lên hệ thống
3.8.28 Thêm mật khẩu cho ảnh, video
Tên biều đồ: UC37:AddPassword
Hình 3.33: Biểu đồ tuần tự: Thêm mật khẩu cho ảnh, video
3.8.29 Cập nhật từ khóa cho ảnh, video
Tên biều đồ: UC38:UpdateKeyWord
Hình 3.34: Biểu đồ tuần tự: Cập nhật từ khóa cho ảnh, video
3.8.30 Cập nhật quyền xem ảnh, video
Tên biều đồ: UC39:UpdatePermission
Hình 3.35: Biểu đồ tuần tự: Cập nhật quyền xem ảnh, video
Tên biều đồ: UC40:ShareVideo
Hình 3.36: Biểu đồ tuần tự: Chia sẻ video
Tên biều đồ: UC41:FindVideo
Hình 3.37: Biểu đồ tuần tự: Tìm kiếm video
Tên biều đồ: UC42:EditVideo
Hình 3.38: Biểu đồ tuần tự: Chỉnh sửa video
Tên biều đồ: UC43:LikeVideo
Hình 3.39: Biểu đồ tuần tự: Yêu thích video
3.8.35 Thêm ảnh, video vào album
Tên biều đồ: UC44:AddToAlbum
Hình 3.40: Biểu đồ tuần tự: Thêm ảnh, video vào album
Tên biều đồ: UC45:ViewImage
Hình 3.41: Biểu đồ tuần tự: Xem ảnh
Tên biều đồ: UC46:EditImage
Hình 3.42: Biểu đồ tuần tự: Chỉnh sửa ảnh
Tên biều đồ: UC47:DeleteImage
Hình 3.43: Biểu đồ tuần tự: Xóa ảnh
Tên biều đồ: UC48:ShareImage
Hình 3.44: Biểu đồ tuần tự: Chia sẻ ảnh
3.8.40 Tải ảnh lên hệ thống
Tên biều đồ: UC50:UploadImage
Hình 3.45: Biểu đồ tuần tự: Tải ảnh lên hệ thống
Tên biều đồ: UC51:FindImage
Hình 3.46: Biểu đồ tuần tự: Tìm kiếm ảnh
3.8.42 Kiểm tra ảnh có tính chất phản cảm
Tên biều đồ: UC52:CheckImage
Hình 3.47: Biểu đồ tuần tự: Kiểm tra ảnh có tính chất phản cảm
Tên biều đồ: UC53:LikeImage
Hình 3.48: Biểu đồ tuần tự: Yêu thích ảnh
3.8.44 Lấy lại tài khoản từ hệ thống
Tên biều đồ: UC54:RecoverAccount
Hình 3.49: Biểu đồ tuần tự: Lấy lại tài khoản từ hệ thống
Tên biều đồ: UC55:UpdateCoverImage
Hình 3.50: Biểu đồ tuần tự: Cập nhật ảnh bìa
3.8.46 Cập nhật ảnh đại diện
Tên biều đồ: UC56:UpdateAvatar
Hình 3.51: Biểu đồ tuần tự: Cập nhật ảnh đại diện
3.8.47 Cập nhật thông tin cá nhân
Tên biều đồ: UC57:UpdatePersonalInfo
Hình 3.52: Biểu đồ tuần tự: Cập nhật thông tin cá nhân
3.8.48 Đăng ký tài khoản vào hệ thống
Tên biều đồ: UC58:Registration
Hình 3.53: Biểu đồ tuần tự: Đăng ký tài khoản vào hệ thống
Tên biều đồ: UC59:ImageRecognition
Hình 3.54: Biểu đồ tuần tự: Nhận dạng hình ảnh
Biểu đồ lớp
Dựa vào biểu đồ tuần tự tại mục 5.8.1 và phần đặc tả ca sử dụng, có thể xác định các lớp tham gia trong quá trình đăng nhập của người dùng.
STT Tên lớp Mô tả
1 login Hiển thị giao diện trang đăng nhập cho người dùng
2 UsersBO Thao tác với cơ sở dữ liệu nhằm kiểm tra tài khoản người dùng
3 indexAfterUserControl Hiển thị giao diện sau khi người dùng đăng nhập thành công
4 PhotosBO Class indexAfterUserControl sẽ dùng để lấy ảnh hiển thị sau khi đăng nhập thành công
5 VideosBO Class indexAfterUserControl sẽ dùng để lấy video hiển thị sau khi đăng nhập thành công
6 SearchCategoryBO Class indexAfterUserControl lấy ảnh, video phân loại theo category
Hình 3.55: Biểu đồ lớp: Đăng nhập hệ thống
3.9.2 Biểu đồ lớp đăng ký thành viên
Dựa vào biểu đồ tuần tự tại mục 5.48.8 và phần đặc tả ca sử dụng, có thể xác định các lớp tham gia trong quá trình đăng ký thành viên của người dùng như được trình bày trong bảng dưới đây.
STT Tên lớp Mô tả
1 register Hiển thị giao diện trang đăng ký cho người dùng
2 UsersBO Thao tác với cơ sở dữ liệu nhằm lưu thông tin tài khoản người dùng mới đăng ký vào cơ sở dữ liệu
Hình 3.56: Biểu đồ lớp: Đăng ký thành viên
3.9.3 Biểu đồ lớp quản lý ảnh/video
Hình 3.57: Biểu đồ lớp: Quản lý ảnh/video
3.9.4 Biểu đồ lớp quản lý người dùng
Hình 3.58: Biểu đồ lớp: Quản lý người dùng
3.9.5 Biểu đồ lớp trao đổi thông tin
Hình 3.59: Biểu đồ lớp: Trao đổi thông tin
3.9.6 Biểu đồ lớp quản lý hệ thống
Hình 3.60: Biểu đồ lớp: Quản lý hệ thống
3.9.7 Biểu đồ lớp quản lý tìm kiếm
Hình 3.61: Biểu đồ lớp: Quản lý tìm kiếm
3.10 Thiết kế dữ liệu 3.10.1 Mô hình dữ liệu logic ở dạng sơ đồ
Dựa vào các biểu đồ lớp đã được tạo, và biểu đồ tuần tự xác định các đối tượng tương ứng trong biểu đồ quan hệ tại bảng 3.62:
Bảng 3.62: Bảng mô tả ánh xạ giữa đối tượng trong lớp và đối tượng trong biểu đồ quan hệ
STT Tên lớp Mô tả ánh xạ giữa thiết kế lớp và thiết kế dữ liệu
Ca sử dụng liên quan
Lớp UserBO cung cấp các phương thức để truy xuất thông tin người dùng, bao gồm họ tên, số điện thoại, địa chỉ email và giới tính Để lưu trữ những thông tin này, cần tạo một lớp mới có tên là "User Info".
Biểu đồ lớp: Quản lý người dùng
UC01 UC54 UC55 UC56 UC57 UC58
2 AlbumBO Lớp lưu thông tin về một album như: tên, ngày tạo, mô tả về album Lớp AlBumBO được mô tả trong Biểu đồ lớp:
3 MenuBO Quản lý các menus mà hệ người quản trị tạo ra cho hệ thống
Lớp SearchCategoryBO cung cấp các phương thức và thuộc tính hỗ trợ tìm kiếm ảnh theo loại, đồng thời tạo ra bảng SearchCategory tương ứng để tăng tốc độ tìm kiếm.
Lớp SearchKeywordBO cung cấp các phương thức và thuộc tính hỗ trợ tìm kiếm hình ảnh theo từ khóa, đồng thời tạo ra bảng SearchKeyword tương ứng để tối ưu hóa quá trình tìm kiếm.
6 PhotosBO Lớp lưu thông tin ảnh, video: tên, ngày tải lên, đường dẫn tới ảnh,…Lớp PhotosBO được mô tả trong Biểu đồ lớp:
UC12,UC13 UC15,UC16 UC30,UC31 UC32,UC33 UC34,UC35 UC37,UC38
UC39,UC40 UC41,UC42 UC43,UC44 UC45,UC46 UC47,UC48 UC50,UC51 UC52,UC53 UC59
Lớp CategoryBO lưu trữ thông tin về loại ảnh và video, bao gồm tên danh mục và ngày tạo Để quản lý hiệu quả, cần tạo một đối tượng Categories trong cơ sở dữ liệu để lưu trữ các thông tin này.
UC12,UC13 UC15,UC16 UC30,UC31 UC32,UC33 UC34,UC35 UC37,UC38 UC39,UC40 UC41,UC42 UC43,UC44 UC45,UC46 UC47,UC48 UC50,UC51 UC52,UC53 UC59
8 Bảng giúp tạo mối liên kết giữa ảnh với album Để dễ dàng hơn trong việc quản lý ảnh theo album
UC12,UC13 UC15,UC16 UC30,UC31 UC32,UC33 UC34,UC35 UC37,UC38 UC39,UC40 UC41,UC42 UC43,UC44 UC45,UC46 UC47,UC48 UC50,UC51 UC52,UC53 UC59
9 Để thống kê lượng xem ảnh và dự đoán xu hướng về loại ảnh mà cộng đồng muốn xem, tác giả tạo ra bảng Views lưu trữ
10 Trong hệ thống cần lưu trữ người thực hiện bình luận ảnh
Nội dung bình luận tương ứng với ảnh nào nên cần tạo ra bảng Comments
Trong hệ thống, cần thiết phải lưu trữ số lượt thích của ảnh và xác định người dùng đã thích ảnh đó Do đó, việc tạo ra bảng Likes để lưu trữ thông tin này là rất quan trọng.
12 Như phân tích về các đối tượng tham gia vào hệ thống
Cần tạo ra bảng Roles để phân quyền cho người dùng
UC01 UC18 UC19 UC21 UC22 UC23
Hình 3.63: Sơ đồ mô hình dữ liệu
3.10.2 Danh sách các bảng dữ liệu 3.10.2.1 Roles
Mô tả: Phân quyền cho user trong hệ thống
Các thành phần lưu trữ: RoleID, RoleName Khóa chính là: RoleName
AlbumID AlbumName CreatedDate UserID Description Permission
CommentID Contents UserID PhotoID CreatedDate
MenuID Name Url ParentID Status
PhotoID Title Description KeyWord Permission Url DateOfUpload CategoryID UserID IsVideo Password
UserID Email Password FirstName LastName DateOfBirth Sex RoleID Avatar CoverImage DateOfRegister Phone Address Description Status
Mô tả: Lưu trữ thông tin của người sử dụng
Các thành phần lưu trữ: UserID, Email, Password, FirstName, LastName, DateOfBirth, RoleID, Avatar, DateOfRegister, CoverImage Khóa chính là: UserID
Mô tả: Lưu trữ quản lý thông tin menu
Các thành phần lưu trữ: MenuID, Name, Url, ParentID, Status Khóa chính là: MenuID
Mô tả: Lưu trữ quản lý thông tin đánh giá, bình luận
Các thành phần lưu trữ: ID, UserID, PhotoID, CreateDate Khóa chính là: ID
Mô tả: Lưu trữ quản lý album ảnh, video
Các thành phần lưu trữ: AlbumID, AlbumName, CreatedDate, UserID, Description, Permission Khóa chính là: AlbumID
Mô tả: Lưu trữ quản lý bình luận của người dùng
Các thành phần lưu trữ: CommentID, Contents, UserID, PhotoID, CreatedDate Khóa chính là: CommentID
Mô tả: Lưu trữ liên kết album ảnh và ảnh
Các thành phần lưu trữ: ID, PhotoID, AlbumID Khóa chính là: IDCommentID
Mô tả: Lưu trữ quản lý ảnh/video
Các thành phần lưu trữ: PhotoID, Title, Description, KeyWord, Permission, Url, DateOfUpload, CategoryID, UserID, MediaType Khóa chính là: PhotoID
Mô tả: Lưu trữ quản lý categories
Các thành phần lưu trữ: CategoryID, CategoryName, Created, ParentID Khóa chính là: CategoryID
Mô tả: Lưu trữ thông tin về categories giúp tối ưu việc tìm kiếm
Các thành phần lưu trữ: ID, CategoryId, CategoryName, CreateDate Khóa chính là:
Mô tả: Lưu trữ thông tin về ảnh giúp tối ưu việc tìm kiếm
Các thành phần lưu trữ: ID, Keyword, CreateDate Khóa chính là: ID
Lưu trữ quản lý việc xem ảnh của người dùng giúp người quản trị thống kê loại ảnh được xem nhiều nhất, từ đó phán đoán xu hướng người dùng một cách hiệu quả.
Các thành phần lưu trữ: ID, UserID, PhotoID, CreatedDate Khóa chính là: ID
3.10.3 Danh sách các thành phần của lược đồ dữ liệu
Bảng 3.64: Danh sách các thành phần của lược đồ dữ liệu
STT Tên Loại Ý nghĩa Ghi chú
1 Roles Tham số Phân quyền user hoặc admin
2 User Đối tượng Danh sách các user đăng ký trong hệ thống
3 Likes Tham số Lưu trữ số lượng yêu thích
4 Menus Đối tượng Quản lý các menus trên hệ thống website
5 Albums Đối tượng Các album ảnh, video
6 Comments Đối tượng Quản lý comment của các bức ảnh, video
7 PhotoAlbum Đối tượng Liên kết ảnh và album
8 Photos Đối tượng Thông tin chi tiết của mỗi bức ảnh, video
9 Categories Tham số Phân loại ảnh, video
10 SearchCategory Tham số Tìm kiếm ảnh theo loại ảnh
11 SearchKeyword Tham số Tìm kiếm ảnh theo từ khóa
12 Views Tham số Thống kê số lượng người xem
3.10.4 Danh sách các thuộc tính của từng thành phần
Về thuộc tính của từng thành phần dữ liệu xin xem chi tiết tại Phụ lục 2.
Thiết kế kiến trúc
Cấu trúc cây phân nhóm - Cấp 1
Cấu trúc cây phân nhóm – Cấp 2: User Guest
Hệ thống quản lý Ảnh/Video Online
Vai trò của User Vai trò của User
Vai trò của User Guest
Xem, đánh giá ảnh, video
Cấu trúc cây phân nhóm – Cấp 2: User
Cấu trúc cây phân nhóm – Cấp 2: Admin
Upload, chia sẻ ảnh, video Điều chỉnh thông tin cá nhân
Quản lý trao đổi thông tin
Quản lý giao diện website
CÀI ĐẶT
Cài đặt chương trình
Dưới đây là một số hình ảnh về hệ thống mà tác giả đã cài đặt:
Giao diện màn hình chính khi bắt đầu vào website:
Người dùng có thể tìm kiếm ảnh và video theo từ khóa mà không cần đăng nhập vào hệ thống Chẳng hạn, khi tìm kiếm với từ khóa "đẹp", hệ thống sẽ hiển thị tất cả các ảnh công khai có liên quan đến từ khóa này.
Khi người dùng lựa chọn “Đăng ký” thì giao diện form “Đăng ký” được hiển thị để người dùng có thể “Đăng ký” tài khoản vào hệ thống:
Nếu đã có tài khoản đăng nhập hệ thống người dùng chọn “Đăng nhập”:
Sau khi “Đăng nhập” vào hệ thống ảnh/video của các user khác trong hệ thống mà ở chế độ public được hiển thị:
Click vào “Bạn” để xem tất cả ảnh/video của cá nhân đã upload trước đó:
Có thể thực hiện tìm kiếm ảnh/video theo từ khóa sau khi “Đăng nhập”:
Thực hiện select một Ảnh bất kỳ mà tìm được có thể thực hiện “Thích” hoặc “Comment” dưới ảnh:
Có thể tùy chỉnh thông tin cá nhân bằng cách chọn vào icon của cá nhân và chọn “Thiết lập”
Người dùng có thể thay đổi ảnh đại diện hoặc ảnh bìa bằng cách sử dụng ảnh có sẵn trong kho ảnh cá nhân, từ album hoặc tải ảnh lên trực tiếp từ máy tính.
Từ hệ thống có thể vào mục “Khám phá” để tìm kiếm ảnh/video theo chủ đề/thể loại có sẵn:
Khi thực hiện view ảnh cá nhân upload có thể thực hiện chỉnh sửa bằng cách click vào biểu tượng tool chỉnh sửa góc dưới bên phải của ảnh:
Khi nhấn vào ảnh cá nhân đã tải lên, bạn có thể cập nhật thông tin ảnh bằng cách thêm vào album khác, gán từ khóa, thay đổi chế độ hiển thị, cập nhật thể loại ảnh và thiết lập mật khẩu để bảo vệ ảnh.
Người dùng có khả năng tải lên ảnh hoặc video lên hệ thống, đồng thời có thể cập nhật tên, thêm từ khóa, chọn thể loại và chế độ hiển thị Ngoài ra, người dùng cũng có thể thiết lập mật khẩu cho ảnh để ngăn người khác xem nội dung của mình, với tùy chọn tải lên một hoặc nhiều ảnh/video cùng lúc.
Để xem ảnh có mật khẩu, người dùng cần nhập đúng mật khẩu Khi quản trị hệ thống đăng nhập vào trang admin, họ sẽ thấy giao diện được thiết kế đặc biệt để quản lý và kiểm soát các quyền truy cập.
Trong mục “Thông tin user”, admin có thể tùy chỉnh các người dùng trong hệ thống, thêm người quản trị mới và tìm kiếm bất kỳ user nào.
Để thực hiện thêm danh mục và quản lý danh mục, admin chỉ cần nhấn vào “Quản lý danh mục” Tại đây, admin có khả năng tạo mới một danh mục hoặc xóa những danh mục đã được tạo trước đó.
Admin có thể theo dõi thống kê từ khóa mà người dùng tìm kiếm, thống kê theo danh mục được ưa chuộng và thống kê lượt xem, lượt thích Điều này giúp hiểu rõ hơn về xu hướng và sở thích của người dùng.
Triển khai và thử nghiệm chương trình
Để truy cập vào website, đầu tiên bạn cần sao chép thư mục ứng dụng PhotosStore vào ổ cứng (ví dụ: C:/PhotosStore) Sau đó, cấu hình IIS và ASP.NET trong IIS, bạn có thể truy cập trang web qua địa chỉ http://localhost:8080/default.aspx, với trang mặc định là Default.aspx Các bước cấu hình bao gồm: vào IIS, chọn Default Web Site, nhấp chuột phải và chọn Add Virtual Directory, nhập tên truy cập vào ô Alias (ví dụ: C:/PhotosStore), chọn đường dẫn tới thư mục đã sao chép (C:/PhotosStore), thiết lập quyền truy xuất và hoàn tất.
Để tạo cơ sở dữ liệu cho ứng dụng trong SQL Server, bạn cần sử dụng trình điều khiển Microsoft SQL Server Management Studio, như được minh họa trong hình 4.1.
Hình 4.1: Microsoft SQL Sever Management Studio
Next, create a database named PhotosManagement by selecting the Database panel, right-clicking, and choosing New Database Name the database PhotosManagement and select a location to save it.
Hình 4.2: Tạo cơ sở dữ liệu PhotosManagement
Hình 4.3: Chọn chức năng Restore Database
Sau khi hoàn tất việc tạo cơ sở dữ liệu PhotosManagement, tên của nó sẽ được hiển thị trong danh sách cơ sở dữ liệu của SQL Server Bước tiếp theo là sao chép tệp backup có tên PhotosManagement từ thư mục Database trên đĩa cài đặt vào ổ cứng.
To restore data from a backup file in Microsoft SQL Server Management Studio, right-click on the PhotosManagement database, navigate to Tasks, and select Restore, followed by Database Choose the backup file path and click OK to successfully restore the PhotosManagement database After refreshing the PhotosManagement database, you will see the updated database as shown in Figure 4.4.
Hình 4.4: Danh sách các đối tượng cơ sở dữ liệu
TỔNG KẾT
Kết luận
Với sự phát triển không ngừng của công nghệ, nhu cầu lưu trữ và chia sẻ ảnh, video trên internet ngày càng tăng Để đáp ứng nhu cầu này, tôi mong muốn phát triển một ứng dụng quản lý ảnh/video online thực tiễn, giúp người dùng dễ dàng lưu trữ và chia sẻ nội dung Tuy nhiên, việc phát triển ứng dụng gặp nhiều thách thức, bao gồm sự cạnh tranh từ các website tương tự và thiếu kinh nghiệm lập trình web, đặc biệt là với ASP.NET Quá trình thực hiện luận văn đã gặp nhiều khó khăn và tốn thời gian để làm quen với công nghệ này Hơn nữa, giao diện của website cũng rất quan trọng, cần có sự kết hợp giữa tính hấp dẫn và sự thân thiện, nhưng tôi nhận thấy mình còn thiếu kinh nghiệm trong thiết kế giao diện, dẫn đến giao diện hiện tại vẫn còn khá đơn giản.
Dưới đây là những phần đã hoàn thành trong luận văn, mặc dù còn nhiều ý tưởng và dự định chưa thể thực hiện do hạn chế về khả năng và thời gian Hy vọng rằng trong tương lai, tôi có thể hoàn thiện hơn nữa các nội dung này.
1 Giao diện được xây dựng khá hoàn chỉnh, tương ứng với từng đối tượng người dùng có thanh menu riêng, chứa các khả năng có thể thực hiện
2 Với đối tượng người dùng là Quản trị thì có thể thực hiện được các chức năng sau:
Đăng nhập vào hệ thống
Xem danh sách người dùng với vai trò quản trị
Xem thông tin chi tiết của từng người dùng với vai trò quản trị
Xóa một người dùng khỏi cơ sở dữ liệu
Điều chỉnh thông tin các nhân
Quản lý tùy chỉnh giao diện của website
Thêm một người sử dụng mới với vai trò quản trị
Xem nội dụng thông điệp, gửi và xóa thông điệp trong danh sách
Để đảm bảo an toàn cho ứng dụng, cần áp dụng kiến trúc bảo mật của ASP.NET Ngoài ra, ứng dụng cũng phải tương thích với nhiều trình duyệt khác nhau, bao gồm Internet Explorer, Mozilla Firefox và Google Chrome, để tận dụng tối đa các tính năng bảo mật mới của ASP.NET.
Hướng phát triển
Hệ thống hiện tại còn tồn tại nhiều hạn chế về giao diện và chức năng, chưa đáp ứng đúng nhu cầu của người dùng Trong tương lai, việc mở rộng các chức năng mới và chuyên biệt hóa theo một loại ảnh nghệ thuật cụ thể sẽ giúp website hoàn thiện hơn Điều này sẽ thu hút sự chú ý lớn hơn từ người dùng.
5.2.2 Mở rộng thêm các chức năng edit Ảnh/Video
Chức năng chỉnh sửa ảnh và video hiện tại còn khá đơn giản, nhưng nhu cầu của người dùng ngày càng tăng Nhiều người muốn có khả năng thêm hiệu ứng đẹp mắt cho ảnh trước khi chia sẻ trên website Việc phát triển thêm các tính năng chỉnh sửa sẽ thu hút người dùng hơn nữa.
5.2.3 Sử dụng AI cho việc nhận diện Ảnh và Video
Trong hệ thống của mình, tôi đã đề cập đến việc tự động nhận diện ảnh và gán tag tên cùng từ khóa cho việc tìm kiếm ảnh, video, nhưng chức năng này vẫn chưa hoàn thiện Hiện nay, AI đang là một bước tiến quan trọng trong công nghệ Với định hướng tiếp theo, tôi mong muốn áp dụng AI vào tính năng này để phân loại ảnh và video một cách chính xác hơn, đồng thời giúp người quản trị kiểm soát các nội dung phản cảm trên hệ thống.
5.2.4 Tăng cường quảng cáo giới thiệu hệ thống tới người dùng
Để tối ưu hóa hiệu quả bán hàng và quảng cáo trên website, cần tăng cường quảng bá hình ảnh của trang nhằm thu hút nhiều lượt truy cập hơn Việc tạo ra các mẫu thiết kế kết hợp với chỉnh sửa ảnh và video sẽ giúp người dùng bán hàng sử dụng website như một công cụ thiết kế banner, giới thiệu sản phẩm một cách chuyên nghiệp và hấp dẫn hơn.