4.1. Trang tổng quan
Cho phép người quản trị xem được tình trạng hệ thống, các thống kê cơ bản.
Hình 25: Giao diện trang tổng quan
4.2. Nhóm các trang xem danh sách
Hiển thị danh sách của các đối tượng như: Danh sách thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 26: Giao diện một trang xem danh sách
4.3. Nhóm các trang xem chi tiết một đối tượng
Hiển thị chi tiết các đối tượng: Chi tiết thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 27: Giao diện một trang xem chi tiết một đối tượng
4.4. Nhóm các trang tạo mới một đối tượng
Cho phép người quản trị có thể tạo mới một đối tượng: Tạo mới thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 28: Giao diện một trang thêm mới một đối tượng
4.5. Nhóm các trang chỉnh sửa một đối tượng
Cho phép người quản trị có thể chỉnh sửa một đối tượng: Chỉnh sửa thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 29: Giao diện một trang chỉnh sửa một đối tượng
4.6. Nhóm các trang xóa một đối tượng
Cho phép người quản trị có thể xóa một đối tượng: Xóa thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
CHƯƠNG 5. KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 1. KẾT QUẢ ĐẠT ĐƯỢC
Sau một thời gian dài tìm hiểu, thực hiện các khảo sát đối với các website xem phim và nghiên cứu một số tài liệu về lập trình web bằng ASP.NET Web Forms. Từ đó, nhóm chúng em đã hoàn thành được cơ bản đề tài “Website xem phim online” với những kết quả đạt được như sau:
Về chức năng: Hệ thống website đã hoàn thiện được hầu hết chức năng cơ bản của một website xem phim như là:
Người dùng có thể tạo tài khoản, đăng nhập, lấy lại mật khẩu và sử dụng các chức năng như xem danh sách phim, tìm kiếm phim, xem chi tiết phim, xem phim,…
Người quản trị có thể xem thống kê cơ bản như xem số lượng phim, thể loại, thẻ tag, lượng người đang truy cập. Người quản trị sẽ được sử dụng các chức năng thêm, xóa, sửa, xem chi tiết phim, thể loại, ngôn ngữ, quốc gia,...
Về giao diện: Hệ thống đã phát triển được giao diện tương đối đẹp, bố cục gọn gàng. Hệ thống website có 4 phần giao diện bao gồm:
Phần dành cho quản trị: Giao diện được thiết kế trên tông màu sáng, có sidebar chứa những chức năng quản lý cần thiết. Các chức năng được thiết kế một cách tối ưu, đơn giản, không gây rối nhằm đáp ứng tốt cho người quản trị.
Phần tài khoản: Giao diện được thiết kế trong tông màu tối, đáp ứng cơ bản cho các chức năng đăng nhập, đăng ký và các thao tác khác liên quan đến tài khoản.
Phần danh cho người dùng, khách truy cập: Giao diện được thiết kết trên tông màu xanh tối, bố cục giao diện được sắp xếp hợp lý phù hợp nhằm mang tới những trải nghiệm tốt cho người dùng và khách truy cập.
Phần danh cho người dùng, khách truy cập (phiên bản rút gọn): Giao diện được rút gọn ở mức tối đa, loại bỏ các chức năng không cần thiết nhằm tăng tốc độ trong trường hợp tốc độ truy cập chậm.
Về hiệu năng: Hệ thống có hiệu năng ở mức chấp nhận được, khả năng đáp ứng của hệ thống tương đối nhanh. Hệ thống được kiểm tra tương đối kỹ, giảm thiểu được phần lớn các lỗi cố xảy ra.
Về kiến thức và kỹ năng: Thông qua đồ án này, nhóm em đã được tiếp cận thêm nhiều kiến thức mới về ngôn ngữ lập trình C#, cách sử dụng HTML, CSS, Javascript, thư viện Boostrap, Video.js,… để xây dựng giao diện. Bên cạnh đó, các kỹ năng tìm kiếm thông tin, phân tích nghiệp vụ, xử lý các vấn đề phát sinh trong quá trình làm đồ án được cải thiện lên rất nhiều.
2. KẾT QUẢ CHƯA ĐẠT ĐƯỢC
Song song với các kết quả đạt được bên trên thì hệ thống cũng còn nhiều thiếu sót về nhiều mặt như là:
Về chức năng: Hệ thống hiện tại vẫn còn thiếu những chức năng cần thiết và nâng cao như sau:
Người dùng vẫn chưa có chức năng như bình luận, viết đánh giá phim, thêm phim vào danh sách yêu thích, nhận thông báo khi có phim mới,… Chưa có các chức năng cập nhật thông tin cho tài khoản người dùng.
Người quản trị chỉ có thể xem các thông kê cơ bản, các thống kê chi tiết, công cụ phân tích vẫn chưa có. Các chức năng của phần quản trị được thiết kế chỉ đáp ứng được với lượng dữ liệu nhỏ.
Về giao diện: Phần lớn giao diện được thiết kế đẹp, tuy nhiên vẫn còn tại những vấn đề sau:
Phần dành cho quản trị, phần tài khoản, phần danh cho người dùng, khách truy cập (phiên bản rút gọn): Thiết kế chưa đáp ứng cho các thiết bị di động (chưa responsive).
Phần danh cho người dùng, khách truy cập: Giao diện có nhiều thành phần, kích thước lớn làm giảm hiệu năng cho hệ thống.
Về hiệu năng: Tại thời điểm hiện tại, hệ thống đáp ứng tốt các yêu cầu sử dụng. Tuy nhiên, trong tương lai khi quy mô của hệ thống thay đổi thì chắc chắn hệ thống sẽ không thể đáp ứng được các yêu cầu, lúc đó hệ thống phải được thiết kế lại.
Về bảo mật:Hệ thống vẫn tồn tại những lổ hổng tiềm ẩn. Những lổ hổng này nếu bị khai thác cho mục đích tấn công hệ thống thì sẽ gây ảnh hưởng lớn cho hệ thống.
3. ĐỊNH HƯỚNG PHÁT TRIỂN
Trong tương lai, nhóm chúng em sẽ tiếp tục phát triển các chức năng đang ở mức cơ bản của hệ thống. Bên cạnh đó, nhóm em sẽ phát triển thêm nhiều các chức năng mới cho hệ thống: Hỗ trợ thanh toán online, viết đánh giá phim, thông báo khi có phim mới, chức năng xử lý ảnh, lưu trữ video trên các nền tảng đám
mây,…
Việc cải thiện hiệu năng cũng vô cùng quan trọng trong tương lai khi mà lượng người dùng và dữ liệu ngày một nhiều lên. Giải pháp trong tương lai là tối ưu lại toàn bộ câu truy vấn cơ sở dữ liệu, thiết kế lại toàn bộ cơ sở dữ liệu, giao diện loại bỏ bớt hiệu ứng không cần thiết, chuyển hình ảnh và video lên nền tảng đám mây…
TÀI LIỆU THAM KHẢO 1. TÀI LIỆU
Ths.Nguyễn Minh Đạo, Giáo trình lập trình web với ASP.NET, Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh - 2014.
2. TRANG WEB
Retrieving Property name from lambda expression:
https://stackoverflow.com/questions/671968/retrieving-property-name-from- lambda-expression
How do I extract the property name and value being passed into an Expression<Func<T,bool>>?:
https://stackoverflow.com/questions/7433630/how-do-i-extract-the-property- name-and-value-being-passed-into-an-expressionfun
Func<T,TResult> Delegate:
https://docs.microsoft.com/en-us/dotnet/api/system.func-2?view=net-5.0
Creating Custom Attributes (C#):
https://docs.microsoft.com/en-us/dotnet/csharp/programming- guide/concepts/attributes/creating-custom-attributes
Accessing Attributes by Using Reflection (C#):
https://docs.microsoft.com/en-us/dotnet/csharp/programming- guide/concepts/attributes/accessing-attributes-by-using-reflection
datetime (Transact-SQL):
https://docs.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact- sql?view=sql-server-ver15
Access the value of a member expression:
https://stackoverflow.com/questions/2616638/access-the-value-of-a-member- expression
URL Routing:
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting- started/getting-started-with-aspnet-45-web-forms/url-routing
Asp.net - <customErrors mode=“Off”/> error when trying to access working webpage:
https://stackoverflow.com/questions/4363941/asp-net-customerrors-mode-off- error-when-trying-to-access-working-webpage
Add CustomValidator Dynamically:
https://www.tek-tips.com/viewthread.cfm?qid=1361532
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and- structs/extension-methods
RegisterForEventValidation can only be called during Render:
https://stackoverflow.com/questions/7228718/registerforeventvalidation-can- only-be-called-during-render
How do you get total amount of RAM the computer has?:
https://stackoverflow.com/questions/105031/how-do-you-get-total-amount-of- ram-the-computer-has
Getting the IP address of server in ASP.NET?:
https://stackoverflow.com/questions/646525/getting-the-ip-address-of-server-in- asp-net
Get public/external IP address?:
https://stackoverflow.com/questions/3253701/get-public-external-ip-address
how to pass runtime type to generic method using reflection:
https://forums.xamarin.com/discussion/62342/how-to-pass-runtime-type-to- generic-method-using-reflection
C# generic list <T> how to get the type of T? [duplicate]:
https://stackoverflow.com/questions/1043755/c-sharp-generic-list-t-how-to-get- the-type-of-t
Request.Form not working while using masterpage:
https://stackoverflow.com/questions/44521505/request-form-not-working-while- using-masterpage
Unicode characters in Regex:
https://stackoverflow.com/questions/20641297/unicode-characters-in-regex
DropDownList's SelectedIndexChanged event not firing:
https://stackoverflow.com/questions/4905406/dropdownlists- selectedindexchanged-event-not-firing
How to handle “Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.” on Desktop with Chrome 66?:
https://stackoverflow.com/questions/49930680/how-to-handle-uncaught-in- promise-domexception-play-failed-because-the-use
“The Controls collection cannot be modified because the control contains code blocks”:
https://stackoverflow.com/questions/778952/the-controls-collection-cannot-be- modified-because-the-control-contains-code-bl
If an exception occurs inside a “using” block, is the Dispose method called? [duplicate]:
https://stackoverflow.com/questions/21533599/if-an-exception-occurs-inside-a- using-block-is-the-dispose-method-called