- Mô tả hệ thống hiện tại Hoạt động website xem phim Beta Cinema có thể mô tả như sau: ● Trên giao diện trang chủ, phim được chia theo một số loại để ngườidùng dễ dàng chọn lựa theo các
NỘI DUNG
Tổng quan
Hiện nay, Việt Nam đang trải qua quá trình công nghiệp hóa hiện đại hóa, dẫn đến đời sống con người ngày càng được cải thiện Do đó, nhu cầu giải trí của người dân cũng tăng cao Sự phát triển của Internet đã thúc đẩy sự ra đời của nhiều website xem phim, nhằm đáp ứng nhu cầu giải trí ngày càng lớn của đại bộ phận người dân.
Nhằm đáp ứng nhu cầu ngày càng tăng của người dùng trong việc xem phim online, tôi đã phát triển một trang web xem phim trực tuyến, giúp người xem thư giãn và giải trí sau những giờ làm việc căng thẳng.
- Mô tả hệ thống hiện tại
Hoạt động website xem phim Beta Cinema có thể mô tả như sau:
Trên trang chủ, người dùng có thể dễ dàng lựa chọn phim theo các tiêu chí như phim mới cập nhật, phim nổi bật và phim có nhiều lượt xem.
● Người dùng có thể tìm kiếm trực tiếp bộ phim mong muốn ngay tại trang chủ thông qua ô Search ở phía trên của Website.
● Bộ phim bao gồm những thông tin: Tên phim, tác giả, năm sản xuất, ngày phát hành, điểm IMDb(IMDb chính viết tắt của cụm từlà
Cơ sở dữ liệu điện ảnh trên Internet (IMDb) là một thư viện điện ảnh nổi tiếng, cung cấp thông tin chi tiết về các bộ phim, diễn viên, đạo diễn cùng nhiều chủ đề liên quan đến điện ảnh, truyền hình và video game IMDb không chỉ là nơi lưu trữ dữ liệu mà còn là nền tảng để phê bình và xếp hạng phim, thu hút sự quan tâm của người yêu điện ảnh.
Khi khách hàng chọn một bộ phim trên website, họ sẽ được chuyển đến trang xem phim, nơi hiển thị các thông tin quan trọng như thời gian chiếu, nội dung phim, số lượt xem và các tính năng bổ sung dành cho người dùng đã đăng nhập.
Khi khách hàng chọn một bộ phim trên website, họ sẽ được chuyển hướng đến trang xem phim, nơi hiển thị các thông tin quan trọng như lịch chiếu, nội dung phim và số lượt xem, ngay cả khi chưa đăng nhập.
Người dùng có thể sử dụng công cụ bình luận của Facebook để gửi ý kiến trực tiếp trên website hoặc tương tác với Fanpage qua tính năng Live Chat, giúp quản trị viên nhanh chóng nhận được thông tin từ người dùng.
1.1.2 Tổng quan về hệ thống mới
Giao diện website thiết kế hợp lý, dễ nhìn và thân thiện với người dùng
Có các tính năng mở rộng cho người dùng sử dụng một các dễ dàng
Trang quản trị có những chức năng: quản lí phim, quản lí thành viên,…
1.1.3 Các mục tiêu chính của hệ thống
- Yêu cầu về mặt giao diện:
- Giao diện trang web thân thiện, dễ sử dụng, phân chia trên các thể loại khác nhau
- Hiển thị định dạng cho các Browser phổ biến hiện nay như FireFox, Chrome, Brave…
- Tông màu chính trên Website là màu đen mang lại trải nghệm tốt cho người dùng, dễ dàng tuỳ biến được màu nền, màu chữ của Website.
- Thay đổi phim, banner,thể loại, một cách dễ dàng với tư cách của một quản trị viên Web.
- Giao diện có tuỳ biến cho các nên tảng như Window, IOS, Android
Yêu cầu về mặt chức năng:
Quản lý phim cho phép người dùng thực hiện các chức năng như thêm, sửa và xoá thông tin liên quan đến bộ phim Đồng thời, quản lý thể loại cũng cung cấp khả năng thêm, sửa và xoá thông tin về các thể loại phim, giúp người dùng dễ dàng tổ chức và cập nhật dữ liệu phim một cách hiệu quả.
+ Chức năng tìm kiếm phim.
- Chức năng tìm kiếm người dùng thông qua ô Search ở phía trên cùng của Website
- Chức năng tìm kiếm dữ liệu trong trang quản trị bằng JS.
1.2 Xác định yêu cầu khách hàng
1.2.2 Danh sách các yêu cầu trên trang quản trị
- Hiển thị danh sách tất cả các bộ phim được thêm và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của bộ phim một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa bộ phim ngay trên danh sách phim.
- Thêm những bộ phim mới của website.
- Cập nhật thông tin của bộ phim.
- Hiển thị danh sách tất cả người dùng được thêm và phân trang để dễ quản lý.
- Người quản trị có thể khoá tạm thời tài khoản của người dùng một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa người dùng ngay trên danh sách phim.
- Thêm những người dùng của website.
- Cập nhật thông tin của người dùng thông qua, dễ dàng thao tác.
- Hiển thị danh sách tất cả các thể loại và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của thể loại một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa thể loại ngay trên danh sách phim.
- Thêm những thể loại mới của website bằng.
- Cập nhật thông tin của thể loại , dễ dàng thao tác.
- Hiển thị danh sách tất cả các quảng cáo và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của quảng cáo một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa quảng cáo ngay trên danh sách bằng Ajax
- Thêm những quảng cáo mới của website.
- Cập nhật thông tin của quảng cáo thông qua.
- Hiển thị danh sách tất cả các Slide và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của Slide một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa Slide ngay trên danh sách Slide.
- Thêm những Slide mới của website.
- Cập nhật thông tin của Slide, dễ dàng thao tác.
- Hiển thị danh sách tất cả liên hệ và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của liên hệ một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa liên hệ ngay trên danh sách phim.
- Thêm những liên hệ mới của website.
- Cập nhật thông tin của liên hệ thông qua Partial View và Ajax, dễ dàng thao tác.
7 Quản lý Tin Tức Phim
- Hiển thị danh sách tất cả các tin tức và phân trang để dễ quản lý.
- Người quản trị có thể tắt bật trạng thái hiển thị của tin tức một dễ dàng thông qua nút “Kích hoạt” ở ngoài danh sách.
- Quản trị viên xóa tin tức ngay trên danh sách tin tức
- Thêm những tin tức mới vào website.
- Cập nhật thông tin của tin tức, dễ dàng thao tác.
Hệ thống Website Xem Phim Online OneMovies
1 Phải xác định rõ dữ liệu đầu vào, đầu ra, và quy trình xử lý.
2 Với mỗi yêu cầu phức tạp, quy trình xử lý cần được minh hoạ bằng lưu đồ giải thuật.
3 Hệ thống phải được lập trình trên nền tảng Visual Studio và SQLserver.
4 Ngôn ngữ lập trình NodeJS, ReactJS.
1.2.1 Danh sách các yêu cầu trên trang hiển thị
• Cho phép người dùng đăng ký tài khoản mới để trở thành thành viên.
• Thông tin đăng ký bao gồm: Họ và Tên, UserName, PassWord, Địa Chỉ, Số điện thoại, Email(Email là bắt buộc nhập)
• Người dùng sẽ phải xác nhận mã captcha khi đăng kí để tránh spammer hay Ddos Website.
Khi người dùng điền đầy đủ thông tin hợp lệ và nhập đúng mã captcha trước khi nhấn đăng ký, hệ thống sẽ thông báo các lỗi như: tên người dùng đã tồn tại, mật khẩu cần ít nhất 6 ký tự, email đã được sử dụng, hoặc mã captcha không chính xác Người dùng sẽ được yêu cầu nhập lại thông tin để hoàn tất quá trình đăng ký.
• Hỗ trợ đăng nhập bằng tài khoản hệ thống và tài khoản mạng xã hội như Facebook
• Thực hiện phân quyền tài khoản cho các User để tăng cường bảo mật cho Website.
• Sau khi đăng nhập, người dùng sẽ sử dụng được một số tính năng mở rộng
- Hiển thị menu đa cấp ngay phần đầu của Website bao gồm: Trang chủ, Tin Tức , Thể loại, Quốc Gia, Liên Hệ , Giới Thiệu.
• Phim được chia theo từng tiêu chí như :
• phim mới: Dựa theo ngày được thêm.
• phim nổi bật: ( Được xếp theo điểm Rate IMDb, giảm dần và theongày được thêm.
• phim phổ biến: Được xếp theo lượt xem, giảm dần và theo ngày thêm.
5 Chức năng tìm kiếm phim
• Người dùng có thể tìm kiếm các bộ phim bằng tên bộ phim, thể loại phim
Kết quả tìm kiếm sẽ được hiển thị trên trang tìm kiếm, giúp người dùng dễ dàng thao tác Nếu không tìm thấy phim, hệ thống sẽ thông báo cho người dùng biết.
1.3 Phương pháp nghiên cứ và hướng giải quyết vấn đề
Trong việc xây dựng hệ thống phần mềm, có nhiều công nghệ khác nhau có thể được áp dụng Trong khóa luận này, chúng tôi đã chọn sử dụng ngôn ngữ lập trình C# kết hợp với mô hình MVC để triển khai chương trình.
Visual Studio Code (VS Code) là một IDE miễn phí và mã nguồn mở do Microsoft phát triển, nổi bật với tính linh hoạt, hiệu suất cao và khả năng tùy chỉnh mạnh mẽ, khiến nó trở thành công cụ ưa chuộng của nhiều lập trình viên.
MySQL Workbench là công cụ GUI quản lý cơ sở dữ liệu dành riêng cho MySQL, được phát triển bởi Oracle Công cụ này giúp quản trị viên và nhà phát triển dễ dàng thiết kế, triển khai, quản lý và tối ưu hóa cơ sở dữ liệu một cách trực quan.
1.3.2 Phân tích thiết kế bài toán
Để giải quyết vấn đề, chúng tôi lựa chọn phương pháp phân tích và thiết kế hệ thống bằng ngôn ngữ UML (Unified Modeling Language) Quá trình này bao gồm các bước cụ thể nhằm đạt được kết quả hiệu quả nhất.
- Mô hình hóa nghiệp vụ:
Dựa trên quá trình khảo sát thực trạng, chúng em sử dụng công cụ VisualParadigm thiết kế UML để mô hình hóa chức năng.
Phân tích nhằm xây dựng các mô hình tổng quát giúp quan sát trạng thái tĩnh của các chức năng, quy trình liên quan đến từng chức năng, cũng như các tác nhân (Actor) tham gia trong hệ thống.
Từ kết quả ở mức phân tích, triển khai thiết kế để đạt được các kết quả sau: Thiết kế cơ sở dữ liệu: MySQL
Thiết kế ứng dụng: Sử dụng ngôn ngữ JavaScript
Thực hiện cài đặt các kết quả đã thiết kế trên Visual Studio Code 2022 và hệ quản trị cơ sở dữ liệu MySQL 8.0.
Chạy chương trình nhiều lần trên hệ điều hành Windows 11.
Test lỗi và hoàn thiện các chức năng của hệ thống.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Phân tích các chức năng
2.1.1.1.Xác định các tác nhân
Qua khảo sát hiện trạng thực tế, kết hợp với việc tham khảo tài liệu và phân tích ý kiến của người dùng, hệ thống có các tác nhân sau:
BẢNG 1: Xác định tác nhân
STT Tác Nhân Diễn Giải
Những người thuộc nhóm quyền này có quyền truy cập các chức năng quản lý hệ thống, bao gồm đăng nhập, đổi mật khẩu, thay đổi thông tin cá nhân, và quản lý nhóm người dùng Họ có khả năng quản lý người dùng, sao lưu và phục hồi dữ liệu, cũng như quản lý phim và bài viết đánh giá chi tiết về phim Ngoài ra, họ cũng có thể quản lý quảng cáo, thống kê truy cập và lượt xem phim hàng tháng, đồng thời phân quyền và quản lý người dùng hiệu quả.
- Xác định các tình huống sử dụng ( usecase)
T Tác nhân chính Tên Use case
Quản lí phim,thể loại, thành viên, quảng cáo, liên hệ, …
ADMIN Quản lí thành viên
4 Người dùng Tìm kiếm phim
5 Người dùng Xem thông tin phim
6 Người dùng Xem trailer, phim.
7 Người dùng Bình luận phim
Người dùng Phản hồi, báo cáo ( only login)
BẢNG 2:Xác định các ca sử dụng (Usecase)
UML (Unified Model Language) là một ngôn ngữ dùng cho phân tích thiết kế hướng đối tượng (OOAD – Object Oriented Analys and Design)
UML, được duy trì và phát triển bởi OMG (Object Management Group), là một ngôn ngữ mô hình hóa quan trọng trong lĩnh vực phần mềm Nó được sáng lập bởi ba chuyên gia nổi tiếng là Jacobson, Booch và Rumbaugh, cùng với sự hỗ trợ từ hàng trăm tập đoàn lớn khác trong ngành công nghiệp.
Các biểu đồ UML cho ta cái nhìn rõ hơn về hệ thống (cái nhìn tĩnh và động)
Hiện nay UML được sử dụng rất phổ biến trong các dự án phần mềm.
UML thể hiện phương pháp phân tích hướng đối tượng nên không lệ thuộc ngôn ngữ lập trình.
Có rất nhiều công cụ phần mềm hỗ trợ phân tích thiết kế dùng UML.
Nhiều công cụ có thể sinh ra mã từ UML và ngược lại.
UML không phải là ngôn ngữ lập trình.
UML là một ngôn ngữ dùng để:
+ Dùng tập các ký hiệu đồ họa phong phú để biểu diễn hệ thống đang được nghiên cứu.
+ Hệ thống ký hiệu đều có ngữ nghĩa chặt chẽ, có thể hiểu bởi nhiều công cụ khác nhau.
+ Giúp cho các nhà thiết kế, nhà lập trình khác biệt về ngôn ngữ đều có thể hiểu được
+ UML giúp xây dựng các mô hình chính xác, đầy đủ và không nhập nhằng
+ Tất cả các công đoạn từ phân tích, thiết kế cho đến triển khai đều có các biểu đồ UML biểu diễn
+ Use case (dùng cho phân tích); Class, Sequence, Activity (cho thiết kế); Component, Deployment (cho triển khai).
Các mô hình UML có khả năng kết nối với nhiều ngôn ngữ lập trình khác nhau, cho phép ánh xạ các mô hình này sang các ngôn ngữ như C++ và Java.
+ Việc chuyển các mô hình trong UML thành Code trong ngôn ngữ lập trình Forward engineering
+ Việc chuyển ngược trở lại code trong một ngôn ngữ lập trình thành UML Reverse Engineering.
+ Cần công cụ để chuyển đổi “xuôi” & “ngược”
+ Giúp xây dựng tài liệu đặc tả - requirements
+ Tài liệu kiến trúc (architecture)
+ Tài liệu để kiểm thử - Test
+ Tài liệu triển khai – Deployment
Một số biểu đồ UML cơ bản
- Biểu đồ Ca sử dụng Use Case Diagram
Use case (Sơ đồ tình huống sử dụng) cung cấp cái nhìn tổng quan về hoạt động của hệ thống hiện tại hoặc những thay đổi dự kiến trong hệ thống mới.
- Use case mô tả một chuỗi các hành động mà hệ thống sẽ thực hiện để đạt được kết quả có ý nghĩa đối với một tác nhân.
Các use case thường được xây dựng trong giai đoạn đầu của dự án, nhưng cũng có thể được sử dụng ở giai đoạn sau để mô tả các tình huống kiểm tra Chúng đóng vai trò quan trọng trong việc xác định giao tiếp giữa người dùng và hệ thống, giúp người dùng cuối hiểu rõ và tương tác với hệ thống một cách tổng quát.
Actor là người hoặc hệ thống tương tác với các use case, thường là người dùng của hệ thống Trong biểu đồ use case, mỗi actor được biểu diễn bằng một hình người và tên vai trò (role name) được đặt bên dưới.
- Khi actor là người thì tên actor là tên vai trò mà actor đảm nhiệm chứ không phải là tên công việc
- Biểu đồ lớp Class Diagram
Biểu đồ lớp (Class Diagram) cung cấp cái nhìn tĩnh về các lớp trong mô hình hoặc một phần của mô hình Nó hiển thị các thuộc tính và thao tác của lớp, đồng thời thể hiện các mối quan hệ giữa các lớp khác nhau.
Trong biểu đồ lớp, có nhiều kiểu lớp khác nhau, nhưng chúng ta sẽ tập trung vào ba loại lớp chính: lớp biên (phần giao diện), lớp điều khiển và lớp cơ sở dữ liệu.
+ Lớp biên: là lớp thể hiện phần giao diện mà người dùng trực tiếp tương tác với hệ thống qua những giao diện của lớp này.
+ Lớp thực thể (lớp cơ sở dữ liệu): là lớp biểu diễn cho những thực thể có mối quan hệ với nhau và liên quan đến hệ thống.
Lớp điều khiển là một lớp trung gian quan trọng, nằm giữa lớp biên và lớp thực thể Chức năng chính của lớp này là thu thập và xử lý dữ liệu, sau đó hiển thị thông tin ra lớp biên một cách hiệu quả.
- Biểu đồ tuần tựSequence Diagram
Biểu đồ tuần tự (Sequence Diagram) thể hiện sự tương tác giữa các đối tượng theo trình tự thời gian Nó có mối liên hệ chặt chẽ với biểu đồ lớp và mô tả thứ tự các tương tác thông qua việc đánh số các thông điệp Mỗi biểu đồ tuần tự đại diện cho một tình huống xử lý cụ thể.
Biểu diễn các Actor (tác nhân) biểu diễn người hay hệ thống khác tương tác với hệ thống hiện tại.
Biểu diễn các Use Case (tình huống sử dụng) biểu diễn chuỗi hành động mà hệ thống thực hiện.
Biểu diễn mối quan hệ giữa Actor (người dùng) và UseCase (chức năng của hệ thống)
Quan hệ thể hiện Use Case này chứa Use Case khác.
Use case A được gọi là Include B nếu trong xử lý của A có gọi đến B ít nhất 1 lần.
Quan hệ trong UML thể hiện mối quan hệ giữa các Use Case, trong đó một Use Case có thể mở rộng một Use Case khác Cụ thể, Use Case B được coi là mở rộng Use Case A khi B được gọi bởi A, nhưng chỉ khi các điều kiện nhất định được thỏa mãn.
Quan hệ tổng quát hóa (thừa kế):
Use case A được gọi là Generalization Use Case B nếu Use
Case B là một trường hợp riêng của Use Case A.
- Mô tả các đối tượng và mối quanhệ của chúng trong hệ thống.
- Mô tả các thuộc tính và các hànhvi (Behavior) của đối tượng.
Generalization relationship indicates that class A inherits from class B, meaning class A is a specific instance of class B, while class B serves as a broader category encompassing class A This relationship is often described as an "Is a" relationship.
Lớp A bao hàm lớp B, nhưng lớp B không thể tồn tại độc lập và không thuộc về lớp nào khác Điều này có nghĩa là sự hiện diện của lớp B luôn dẫn đến sự tồn tại của lớp A.
- Mô tả sự tương tác của các đốitượng theo trình tự về thời gian.
- Có sự liên kết chặt chẽ với biểuđồ lớp.
- Mỗi biểu đồ tuần tự mô tả mộttình huống xử lý nhất định.
Biểu diễn mô tả các ký hiệu
2.2.1 Biểu đồ usecase tổng quát
Biểu đồ use-case tổng quát
2.2.2 Biểu đồ use-case tìm kiếm
Biểu đồ use-case tìm kiếm
Khi người dùng sử dụng chức năng tìm kiếm, họ cần nhập thông tin vào ô tìm kiếm Hệ thống sẽ kiểm tra tính tồn tại của thông tin đó Nếu thông tin khách hàng nhập vào có trong cơ sở dữ liệu, hệ thống sẽ hiển thị kết quả Ngược lại, nếu không tìm thấy thông tin, hệ thống sẽ thông báo “Không tìm thấy bộ phim với từ khoá…”.
2.2.3.Biểu đồ use-case đăng nhập
Biểu đồ use-case đăng nhập
Khi người quản trị truy cập vào trang quản trị, họ cần nhập tài khoản và mật khẩu Nếu thông tin đăng nhập chính xác, hệ thống sẽ hiển thị thông báo đăng nhập thành công.
Biểu đồ lớp
Biểu đồ lớp là công cụ mô tả các lớp, đóng vai trò như những viên gạch cơ bản để xây dựng hệ thống hướng đối tượng Sự cộng tác giữa các lớp được thể hiện qua việc truyền thông điệp, điều này được chỉ ra thông qua các mối quan hệ giữa chúng.
Biểu đồ lớp cung cấp cái nhìn tổng quan về các lớp trong mô hình, hiển thị các thuộc tính và thao tác của lớp, cùng với các mối quan hệ giữa chúng Nó giống như một bản đồ, trong đó các lớp được ví như các thành phố và các mối quan hệ là những con đường kết nối giữa các thành phố đó.
Từ việc phân tích biểu đồ UseCase ta có các đối tượng sau:
- Users: Lưu thông tin của người dùng và Admin - Movie: Lưu thông tin những bộ phim.
- Category: Lưu thông tin thể loại phim.
2.3.2 Thể hiện biểu đồ lớp
Biều đồ tuần tự
2.4.1 Biểu đồ tuần tự cho quá trình “ Đăng Nhập”
Biểu đồ tuần tự cho quá trình “Đăng nhập” 2.4.2 Biểu đồ tuần tự cho quá trình “ Tìm Kiếm”
Biểu đồ tuần tự cho quá trình “Tìm Kiếm”
2.4.3 Biểu đồ tuần tự cho quá trình “ Thêm Phim”
Biểu đồ tuần tự cho quá trình “Thêm Phim”
2.4.4 Biểu đồ tuần tự cho quá trình “ Sửa phim”
Biểu đồ tuần tự cho quá trình “Sửa phim”
2.4.5 Biểu đồ tuần tự cho quá trình “ Xóa phim”
Biểu đồ tuần tự cho quá trình “Xóa phim”
2.4.6 Biểu đồ tuần tự cho chức năng “Thêm User”
Biểu đồ tuần tự cho chức năng “Thêm User”
2.4.7 Biểu đồ tuần tự cho chức năng “Sửa User”
Biểu đồ tuần tự cho chức năng “Sửa User”
2.4.8 Biểu đồ tuần tự cho chức năng “Xóa User”
Biểu đồ tuần tự cho chức năng “Xóa User”
THIẾT KẾ CƠ SỞ DỮ LIỆU
Các bảng dữ liệu
Tên trường Kiểu dữ liệu Ràng buộc
3 Image Nvarchar(max) Ảnh phim
4 Actor Nvarchar(100) Diễn viên b Bảng booking
Tên trường Kiểu dữ liệu Ràng buộc
1 NewID int Not null Khóa chính
2 Name Text Not null Tên tin tức
3 Image Nvarchar(max) Not null Ảnh
4 Viewed Nvarchar(100) Lượt xem c Bảng Seat
STT Tên trường Kiểu dữ liệu Ràng buộc
2 NameAds text Tên quảng cáo
6 Status bit Trạng thái d Bảng Room
STT Tên trường Kiểu dữ liệu Ràng Mô tả buộc
Biểu đồ cơ sở dữ liệu
Biểu đồ cơ sJ dK liêụ
GIAO DIỆN WEBSITE
Giao điện Trang chủ
Giao diện trang Chi tiết Phim
Giao diện trang Chi tiết phim
Giao điện trang Đăng Nhập Người Dùng
Giao diện trang đăng nhập người dùng.