



















Preview text:
  lOMoAR cPSD| 59114765
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI 
KHOA CÔNG NGHỆ THÔNG TIN  ─ ─ ─ ─ ─ ─    ĐỒ ÁN 
ĐỀ TÀI : TIỀN GIẢI THUẬT VÀ CÔNG NGHỆ  BLOCKCHAIN  GVHD :  TS Huy Lê  Họ và tên :  Trịnh Hải Sơn  Lớp :  TH27.38  Mã sinh viên:   2722226637                       
Hà Nội, tháng 6 năm 2025      lOMoAR cPSD| 59114765 Mục Lục 
CHƯƠNG 1 : GIỚI THIỆU...............................................................................................3 
1. Đặt vấn đề..................................................................................................................3 
2. Giải pháp....................................................................................................................3 
3. Mục tiêu đề tài............................................................................................................3 
3.1. Lý thuyết.............................................................................................................3 
3.2. Mục tiêu..............................................................................................................4 
3.3. Phạm vi...............................................................................................................4 
3.4. Phương pháp nghiên cứu.....................................................................................4 
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT..................................................................................5 
1. HTML........................................................................................................................5 
2. CSS............................................................................................................................6 
3. Tailwind.....................................................................................................................6 
4. Bootstrap....................................................................................................................7 
5. ReactJS......................................................................................................................9 
6. Java............................................................................................................................9 
7. Spring boot...............................................................................................................11 
8. Blockchain...............................................................................................................13 
9. Ethereum..................................................................................................................14 
10. Remix.....................................................................................................................14 
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU.............................................................15 
1. Danh sách người dùng..............................................................................................15 
2. Danh sách Usecase...................................................................................................15 
2.1. Người xem phim...............................................................................................15 
2.2. Admin................................................................................................................16 
3. Đặc tả Usecase.........................................................................................................16 
3.1. Đặc tả Usecase của người xem phim.................................................................16 
3.2. Đặc tả Usecase của admin.................................................................................21 
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN............................................................................29 
1. Đăng nhập................................................................................................................29 
2. Đăng ký....................................................................................................................30      lOMoAR cPSD| 59114765
3. Xác thực OTP...........................................................................................................30 
4. Nhận OTP qua mail................................................................................................31 
5. Thanh toán VNPay...................................................................................................31 
6. Trang chủ.................................................................................................................32 
7. Chi tiết phim............................................................................................................33 
8. Xem phim................................................................................................................34 
9. Thông tin tài khoản..................................................................................................35 
10. Đăng ký VIP...........................................................................................................36 
11. Quản lý phim..........................................................................................................36 
12. Danh sách phim......................................................................................................37 
CHƯƠNG 5 : KẾT LUẬN...............................................................................................38 
1. Tổng kết...................................................................................................................38 
2. Khó khăn..................................................................................................................38 
3. Hạn chế....................................................................................................................38 
4. Hướng phát triển......................................................................................................38 
TÀI LIỆU THAM KHẢO.............................................................................................39                          lOMoAR cPSD| 59114765    
CHƯƠNG 1 : GIỚI THIỆU  1. Đặt vấn đề 
Trong thời đại công nghệ số phát triển mạnh mẽ, nhu cầu giải trí trực tuyến của người 
dùng ngày càng gia tăng. Xem phim online đã trở thành một xu hướng phổ biến, đáp ứng 
nhu cầu tiếp cận nội dung giải trí đa dạng, tiện lợi và linh hoạt về thời gian, địa điểm. Các 
nền tảng như Netflix, YouTube, hay các dịch vụ streaming nội địa đã chứng minh tiềm 
năng to lớn của thị trường này. Tuy nhiên, việc xây dựng một hệ thống xem phim online 
hiệu quả, thân thiện với người dùng và đáp ứng các yêu cầu kỹ thuật như tốc độ tải, chất 
lượng video, và khả năng tùy chỉnh trải nghiệm vẫn là một thách thức lớn. 
Hiện nay, nhiều hệ thống xem phim trực tuyến tại Việt Nam còn gặp phải các vấn đề như 
tốc độ tải chậm, nội dung hạn chế, hoặc giao diện người dùng chưa tối ưu. Bên cạnh đó, 
các yêu cầu về tích hợp công nghệ mới như phát video tự động, quản lý dữ liệu lớn, và 
đảm bảo tính bảo mật cho người dùng cũng đòi hỏi sự đầu tư nghiêm túc về mặt kỹ thuật 
và chiến lược phát triển. 
Xuất phát từ thực trạng trên, việc xây dựng một hệ thống xem phim online hiện đại, tích 
hợp các công nghệ tiên tiến như xử lý video bất đồng bộ, giao diện thân thiện, và khả 
năng cá nhân hóa trải nghiệm người dùng là cần thiết. Hệ thống này không chỉ đáp ứng 
nhu cầu giải trí mà còn phải đảm bảo hiệu suất cao, khả năng mở rộng, và trải nghiệm 
mượt mà trên nhiều nền tảng. Báo cáo này sẽ trình bày quá trình thiết kế, phát triển, và 
triển khai hệ thống xem phim online, đồng thời đề xuất các giải pháp để khắc phục các 
hạn chế hiện có và nâng cao chất lượng dịch vụ.  2. Giải pháp 
Để giải quyết vấn đề trên, em quyết định chọn đề tài - xây dựng ứng dụng Blockchain hỗ 
trợ xem phim online để giúp những người yêu thích phim tiếp cận các bộ phim yêu thích 
dễ hơn và đồng thời giúp các nhà sản xuất phim tăng doanh thu hơn. 
3. Mục tiêu đề tài  3.1. Lý thuyết 
● Tìm hiểu và nghiên cứu Blockchain, React, Tailwind, Boostrap, Spring boot.      lOMoAR cPSD| 59114765
● Nắm rõ các thao tác trên Visual studio code, Intellij IDE. 
● Nghiên cứu các website xem phim online nổi tiếng trên thị trường như VieOn,  Netflix,...  3.2. Mục tiêu 
● Thiết kế giao diện bắt mắt, dễ sử dụng cho người dùng. 
● Đảm bảo tính năng an toàn và bảo mật. 
● Tối ưu hoá các chức năng của ứng dụng. 
● Người dùng dễ dàng tìm kiếm được bộ phim yêu thích.  3.3. Phạm vi 
● Phạm vi môi trường: triển khai trên website. 
● Đối tượng sử dụng: Khán giả có nhu cầu xem phim.  ● Phạm vi chức năng: 
o Khán giả tìm kiếm các được các bộ phim yêu thích. 
o Khán giả có thể đánh giá độ hấp dẫn của phim. 
o Khán giả có thể tương tác với phim. 
3.4. Phương pháp nghiên cứu 
● Phương pháp làm việc: làm nhóm 2 người thông qua hình thức offline và online 
qua google meeting dưới sự hướng dẫn của giảng viên. 
● Phương pháp nghiên cứu: 
o Khảo sát và nghiên cứu nhu cầu xem phim của mọi người o Nghiên cứu 
các tài liệu và công nghệ liên quan đến đề tài như: Blockchain, React,....      lOMoAR cPSD| 59114765
o Tham khảo các website xem phim hiện có như: netflix, VieOn,... để tối ưu  hoá website. 
● Phương pháp công nghệ: 
o Tìm hiểu các ngôn ngữ và framework liên quan đến đề tài. 
o Xây dựng giao diện website để tương tác người dùng và nhận phản hồi, sửa  chữa nếu cần thiết. 
o Tìm hiểu các thư viện hỗ trợ cho dự án.        lOMoAR cPSD| 59114765
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT  1. HTML 
HTML là viết tắt của cụm từ Hypertext Markup Language (tạm dịch là Ngôn ngữ 
đánh dấu siêu văn bản). HTML được sử dụng để tạo và cấu trúc các thành phần trong 
trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes… và 
HTML không phải là ngôn ngữ lập trình. 
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy 
định bằng các cặp thẻ (tag và attributes). Các cặp thẻ này được bao bọc bởi một dấu 
ngoặc ngọn (ví dụ ) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ 
mở và thẻ đóng. Ví dụ, chúng ta có thể tạo một đoạn văn bằng cách đặt văn bản vào trong 
cặp tag mở và đóng văn bản 
và
    Ưu điểm: 
a. Được sử dụng rộng rãi, có rất nhiều nguồn tài nguyên hỗ trợ và cộng đồng  sử dụng lớn. 
b. Học đơn giản và dễ hiểu. 
c. Mã nguồn mở và hoàn toàn miễn phí. 
d. Markup gọn gàng và đồng nhất. 
e. Tiêu chuẩn thế giới được vận hành bởi World Wide Web Consortium  (W3C).      lOMoAR cPSD| 59114765
f. Dễ dàng tích hợp với các ngôn ngữ backend như PHP, Python… Khuyết  điểm: 
g. Được dùng chủ yếu cho web tĩnh. Đối với các tính năng động như update 
hay realtime thời gian thực, bạn cần sử dụng JavaScript hoặc ngôn ngữ 
backend bên thứ 3 như PHP. 
h. Một số trình duyệt chậm hỗ trợ tính năng mới.  2. CSS 
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm 
và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML). Nói ngắn 
gọn hơn là ngôn ngữ tạo phong cách cho trang web   
Mối tương quan giữa HTML và CSS rất mật thiết. HTML là ngôn ngữ markup (nền tảng 
của site) và CSS định hình phong cách (tất cả những gì tạo nên giao diện website), chúng  là không thể tách rời.  3. Tailwind 
Tailwind là một utility-first CSS framework giúp cho bạn xây dựng giao diện người dùng 
một cách nhanh nhất. Tailwind CSS được phát hành lần đầu tiên vào tháng 10/2019 được 
phát triển bởi Adam Wathan. Nếu so sánh với các nền tảng lập trình CSS khác như      lOMoAR cPSD| 59114765
Bootstrap, Materialize, Foundation, Material Design… thì giữa chúng có điểm chung với  nhau.    Ưu điểm: 
● Xây dựng giao diện chỉ cần khai báo class trên file html 
● Chỉ xuất ra những file css chứa những class đã sử dụng trong giao diện. 
● Dễ dàng thiết lập Responsive ngay trên file html 
● Hỗ trợ tương tác hover, focus… ngay trên class html 
● Tối ưu những cấu trúc html css có tính lặp lại 
● Định nghĩa thêm class mới được phối hợp bởi các class có sẵn trong tailwind 
● Hỗ trợ chế độ tối Dark Mode 
● Dễ dàng mở rộng, chỉnh sửa và biến đổi 
● Tăng tốc độ code với Extension thông minh trên VS Code.      lOMoAR cPSD| 59114765 4. Bootstrap  Bootstrap là gì? 
Bootstrap là gì? Hiểu một cách đơn giản, Bootstrap một Framework bao gồm 3 thành 
phần cơ bản, đó là: HTML, CSS và JavaScript. Framework này được sử dụng để phát 
triển trang web chuẩn theo Responsive. Sử dụng Bootstrap giúp việc thiết kế web tiết 
kiệm nhiều thời gian và đơn giản hơn. 
Bootstrap là một bộ sưu tập hoàn toàn miễn phí. Bộ sưu tập này bao gồm các mã nguồn 
mở và các công cụ giúp bạn có thể tạo thành một website với đầy đủ các thành phần. 
Bootstrap sẽ quy định sẵn các thuộc tính về kích thích, màu sắc và các chiều dài, chiều 
rộng của các vùng website…. Thông qua đó, designer có thể dễ dàng sáng tạo ra các 
website theo mong muốn nhưng vẫn đảm bảo tính thẩm mỹ. Đồng thời, sử dụng 
Bootstrap sẽ giúp tiết kiệm rất nhiều thời gian.   
Lịch sử hình thành của Bootstrap 
Sau khi đã tìm hiểu Bootstrap là gì, chúng ta chắc chắn không thể bỏ qua lịch sử hình 
thành của Framework này. Bootstrap là Framework được nghiên cứu và phát triển bởi 
Mark Otto và Jacob Thornton. Đây là 2 kỹ sư tại Twitter.  • 
Bootstrap ra mắt lần đầu tiên vào ngày 19/8/2011 trên mạng xã hội GitHub. Ban 
đầu, Bootstrap được thiết kế như một mã nguồn mở và có tên gọi là Twitter  Blueprint.      lOMoAR cPSD| 59114765 • 
Ngày 31/1/2012, các nhà sáng lập phát hành phiên bản thứ 2 của Bootstrap. So với 
phiên bản cũ, phiên bản số 2 được bổ sung thêm 12 cột giúp người dùng có thể dễ 
dàng tùy chỉnh và thiết kế với nhiều kích thước màn hình khác nhau.  • 
Đến ngày 19/8/2013, phiên bản thứ 3 của Bootstrap được ra đời. Đây là phiên bản 
đầu tiên có giao diện dành cho điện thoại thông minh. Chính nhờ sự thay đổi này 
đã giúp Bootstrap tạo nên sự đột phá và đứng thứ 1 trên Bảng xếp hạng các dự án  của GitHub.  • 
Vào tháng 10/2014, các nhà phát triển tiếp tục nâng cấp và công bố phiên bản thứ  4 của Bootstrap.  • 
Tháng 8/2015, Bootstrap 4 giới thiệu phiên bản Alpha đầu tiên.  5. ReactJS 
React là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013, bản thân 
nó là một thư viện Javascript được dùng để để xây dựng các tương tác với các thành phần 
trên website. Một trong những điểm nổi bật nhất của ReactJS đó là việc render dữ liệu 
không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa.   
ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện 
người dùng hay UI. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm 
việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. UI là tập hợp 
những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có thể kể 
đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạn đang lập trình 
một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng ý rồi và 
nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà bạn phải làm đó là thêm sản 
phẩm được chọn vào giỏ hàng và hiển thị lại sản phẩm đó khi user vào xem => xử lý  tương tác.      lOMoAR cPSD| 59114765
Trước khi có ReactJS, lập trình viên thường gặp rất nhiều khó khăn trong việc sử dụng 
“vanilla JavaScript”(JavaScript thuần) và JQuery để xây dựng UI. Điều đó đồng nghĩa 
với việc quá trình phát triển ứng dụng sẽ lâu hơn và xuất hiện nhiều bug, rủi ro hơn. Vì 
vậy vào năm 2011, Jordan Walke – một nhân viên của Facebook đã khởi tạo ReactJS với 
mục đích chính là cải thiện quá trình phát triển UI.  6. Java 
Java là một trong những ngôn ngữ lập trình hướng đối tượng. Ngôn ngữ Java được sử 
dụng phổ biến trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị  di động. 
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 
1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia 
dụng, và có tên là Oak. Java được chính thức phát hành năm 1994, đến năm 2010 được 
Oracle mua lại từ Sun MicroSystem. 
Java được thiết kế với tiêu chí “Write Once, Run Anywhere” (viết một lần, chạy mọi 
nơi), tức là mã nguồn Java sau khi biên dịch có thể chạy trên bất kỳ nền tảng nào hỗ trợ 
Java Virtual Machine (JVM), mà không cần thay đổi lại mã. Điều này giúp Java trở thành 
một ngôn ngữ lập trình đa nền tảng và rất phổ biến. 
Đặc điểm của ngôn ngữ lập trình Java là gì?        lOMoAR cPSD| 59114765  
• Tương tự C++, hướng đối tượng hoàn toàn 
• Độc lập phần cứng và hệ điều hành  • Ngôn ngữ thông dịch 
• Ưu điểm : Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được 
trên nhiều nền tảng khác nhau. Với điều kiện là JVM có hỗ trợ chạy trên nền tảng  này. 
• Nhược điểm : Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn 
mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mức  chấp nhận được).      lOMoAR cPSD| 59114765
• Cơ chế thu gom rác tự động  • Đa luồng 
• Tính an toàn và bảo mật  7. Spring boot 
Spring Boot được xây dựng dựa trên nền của Spring Framework, phát triển bởi ngôn ngữ 
Java. Nó là một phiên bản có tính tự động hoá cao hơn và đơn giản hơn của Spring. 
Spring Boot khiến cho việc tạo và khởi chạy ứng dụng chỉ diễn ra trong vòng vài phút. 
Lịch sử phát triển của Spring Boot 
Spring Boot được phát triển bởi Pivotal Software, với phiên bản đầu tiên (Spring Boot 
1.0) được phát hành vào tháng 4 năm 2014. Mục tiêu ban đầu của Spring Boot là giải 
quyết những hạn chế và phức tạp trong việc cấu hình Spring Framework truyền thống. 
Spring Framework, mặc dù rất mạnh mẽ và linh hoạt, nhưng yêu cầu nhiều cấu hình thủ 
công và có thể trở nên cồng kềnh khi xây dựng các ứng dụng phức tạp. 
Trước khi Spring Boot ra đời, việc cấu hình một ứng dụng Spring thường đòi hỏi nhiều 
file XML hoặc các class Java cấu hình, gây khó khăn cho việc bảo trì và phát triển. 
Spring Boot được giới thiệu như một cách tiếp cận đơn giản và hiệu quả hơn, với các cấu 
hình tự động và các công cụ hỗ trợ như Spring Initializr, giúp nhà phát triển bắt đầu dự 
án mới nhanh chóng chỉ với một vài cú nhấp chuột. 
Từ khi ra mắt, Spring Boot đã nhanh chóng trở thành một trong những framework phổ 
biến nhất trong cộng đồng Java, được sử dụng rộng rãi trong nhiều loại ứng dụng khác 
nhau, từ các ứng dụng web đơn giản đến các hệ thống microservices phức tạp. Sự phát 
triển và cải tiến liên tục của Spring Boot đã giúp nó trở thành một phần không thể 
thiếu trong hệ sinh thái Spring, giúp các nhà phát triển xây dựng các ứng dụng hiện đại 
một cách dễ dàng và nhanh chóng hơn. Sự khác biệt giữa Spring và Spring Boot 
Nếu bạn đã từng phát triển ứng dụng Java, chắc hẳn bạn đã trải qua sự phức tạp và tốn 
công sức khi thực hiện các tác vụ với cơ sở dữ liệu. Đó thực sự là một quá trình không 
mấy dễ dàng! Tuy nhiên, sự ra đời của Spring Boot đã giúp đơn giản hóa các tác vụ phức 
tạp liên quan đến cơ sở dữ liệu.      lOMoAR cPSD| 59114765  
Spring là một tập hợp các framework con, bao gồm nhiều module khác nhau như Spring 
MVC, Spring JDBC, Spring AOP, Spring ORM và Spring Test. Tính năng cốt lõi của 
Spring Framework chính là Dependency Injection (DI), cho phép các đối tượng được 
tiêm (injected) vào nhau một cách linh hoạt mà không cần phải tạo mới hoặc quản lý 
chúng trực tiếp. Điều này làm cho ứng dụng trở nên dễ dàng quản lý và mở rộng hơn. 
Mặc dù Spring đã giúp cho việc phát triển các ứng dụng Java trở nên dễ dàng hơn, nhưng 
vẫn còn đó sự phức tạp và độ rộng lớn mà framework này mang lại. Việc học Spring 
Framework từ đầu có thể là một hành trình dài và đầy thách thức đối với nhiều lập trình 
viên. Đó cũng chính là lúc Spring Boot tỏa sáng với những cải tiến vượt trội. 
Spring Boot ra đời với mục tiêu đơn giản hóa việc phát triển các ứng dụng Java bằng 
cách giảm thiểu cấu hình thủ công và cung cấp các thiết lập mặc định hợp lý. Thay vì 
phải cấu hình một cách phức tạp và chi tiết như trong Spring, Spring Boot giúp lập trình 
viên khởi tạo và chạy ứng dụng một cách nhanh chóng chỉ với một vài dòng mã. Spring 
Boot còn tích hợp sẵn các công cụ như máy chủ nhúng (embedded server), hỗ trợ cấu 
hình bằng YAML, và tự động hóa nhiều tác vụ mà trước đây cần phải làm thủ công.  8. Blockchain 
Blockchain là công nghệ chuỗi – khối, cho phép truyền tải dữ liệu một cách an toàn dựa 
trên hệ thống mã hóa vô cùng phức tạp, tương tự như cuốn sổ cái kế toán của một công 
ty, nơi mà tiền được giám sát chặt chẽ và ghi nhận mọi giao dịch trên mạng ngang hàng.      lOMoAR cPSD| 59114765
Mỗi khối (block) đều chứa thông tin về thời gian khởi tạo và được liên kết với khối trước 
đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch. Dữ liệu khi đã được mạng lưới 
chấp nhận thì sẽ không có cách nào thay đổi được. Blockchain được thiết kế để chống lại 
việc gian lận, thay đổi của dữ liệu.   
Công nghệ Blockchain – sự kết hợp giữa 3 loại công nghệ:  - 
Mật mã học: để đảm bảo tính minh bạch, toàn vẹn và riêng tư thì công nghệ 
Blockchain đã sử dụng public key và hàm hash function.  - 
Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng là 
server để lưu trữ bản sao ứng dụng.  - 
Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật 
chơi đồng thuận (giao thức PoW, PoS,…) và được thúc đẩy bởi động lực kinh tế. 
Blockchain có các đặc điểm nổi bật sau:  - 
Không thể làm giả, không thể phá hủy các chuỗi Blockchain: theo như lý 
thuyết thì chỉ có máy tính lượng tử mới có thể giải mã Blockchain và công nghệ 
Blockchain biến mất khi không còn Internet trên toàn cầu.  - 
Bất biến: dữ liệu trong Blockchain không thể sửa (có thể sửa nhưng sẽ để lại dấu 
vết) và sẽ lưu trữ mãi mãi.  - 
Bảo mật: Các thông tin, dữ liệu trong Blockchain được phân tán và an toàn tuyệt 
đối. - Minh bạch: Ai cũng có thể theo dõi dữ liệu Blockchain đi từ địa chỉ này tới địa chỉ 
khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó.  - 
Hợp đồng thông minh: là hợp đồng kỹ thuật số được nhúng vào đoạn code if-
thisthen-that (IFTTT), cho phép chúng tự thực thi mà không cần bên thứ ba.      lOMoAR cPSD| 59114765 9. Ethereum 
Ethereum là nền tảng điện toán phân tán, mã nguồn mở dựa trên công nghệ chuỗi khối 
(blockchain) có khả năng thực thi hợp đồng thông minh (smart contract) - tức là điều 
khoản được ghi trong hợp đồng sẽ được thực thi một cách tự động khi các điều kiện 
trước đó được thỏa mãn, không ai có thể can thiệp vào. 
Ethereum là một dự án Blockchain Layer 1 cho phép nhiều các lập trình viên xây dựng 
các ứng dụng phi tập trung (DApps) và các tổ chức tự trị phi tập trung (DAOs). Trong  đó: 
● Các ứng dụng phi tập trung (DApps - Decentralized Application) là các phần mềm 
được triển khai độc lập, không nằm trên một máy chủ duy nhất mà được lưu trữ 
một cách phân tán trên các kho lưu trữ phi tập trung và có thể được viết bằng bất  kỳ ngôn ngữ nào. 
● Các tổ chức tự trị phi tập trung (DAOs - Decentralized Autonomous 
Organizations) là một tổ chức được vận hành bởi các thành viên dựa trên một bộ 
quy tắc được mã hóa bằng code. Tất cả các thành viên đều có quyền biểu quyết 
các quyết định quan trọng của DAOs.  10. Remix 
Remix  là một môi trường phát triển để biên dịch, triển khai, test và debug Dapp  Ethereum. 
Một số điểm tính năng nổi bật của Remix: 
● Tích hợp mạng local hardhat, dễ dàng chạy và debug code ngay trên local. 
● Debug dễ dàng hơn: Với Remix, chúng ta có thể debug code Solidity dễ dàng hơn 
khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ console.log) 
● Hệ thống plugin: Giúp developer có thể bổ sung chức năng, tùy vào từng dự án cụ  thể 
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU 
1. Danh sách người dùng 
Bảng 3.1: Bảng danh sách người dùng      lOMoAR cPSD| 59114765 #  Người dùng  Mô tả  1  Người xem phim 
Người dùng có thể xem các bộ phim, đăng ký gói  VIP, Đánh giá bộ phim…  2  Admin 
Admin có thể thêm, sửa, xóa các bộ phim hoặc xóa 
tài khoản người dùng…  2. Danh sách Usecase  2.1. Người xem phim 
Bảng 3.2: Bảng chức năng người xem phim  #  Chức năng  Mô tả  1  Đăng ký 
Dành cho người mới, cho phép tự đăng ký tài khoản  2  Đăng nhập 
Cho phép người dùng đã có tài khoản đăng nhập vào  website  3  Xem phim 
Cho phép người dùng xem bộ phim mà họ chọn  4  Đánh giá 
Cho phép người dùng đánh giá bộ phim  5  Đăng ký gói VIP 
Cho phép người dùng đăng ký gói VIP để có thể xem 
được nhiều bộ phim hơn  6 
Thêm phim vào yêu Cho phép người dùng lưu trữ bộ phim vào danh mục  thích  yêu thích  7  Tìm kiếm phim 
Cho phép người dùng tìm kiếm bộ phim họ mong  muốn  8  Bình luận 
Cho phép người dùng bình luận về bộ phim  9  Sửa thông tin cá 
Cho phép người dùng chỉnh sửa thông tin cá nhân tài  nhân  khoản của họ  2.2. Admin 
Bảng 3.3: Bảng chức năng admin  #  Chức năng  Mô tả  1  Đăng nhập 
Cho phép admin đăng nhập vào website  2 
Thêm bộ phim mới Cho phép admin thêm 1 bộ phim mới.      lOMoAR cPSD| 59114765 3  Thêm mới thể loại 
Cho phép admin thêm mới thể loại phim  phim  4 
Thêm mới đạo diễn / Cho phép admin thêm mới thông tin đạo diễn / diễn  diễn viên  viên vào hệ thống  5 
Thêm mới quốc gia Cho phép admin thêm mới quốc gia xuất bản bộ  phim  6  Xóa phim 
Cho phép admin xóa phim đã không còn phát hành  7  Sửa phim 
Cho phép admin sửa thông tin của phim  8 
Lấy danh sách phim Cho phép admin có thể lấy danh sách tất cả phim có  trong hệ thống  9  Xem phim 
Cho phép người dùng xem bộ phim mà họ chọn  10  Đánh giá 
Cho phép người dùng đánh giá bộ phim  11 
Thêm phim vào yêu Cho phép người dùng lưu trữ bộ phim vào danh mục  thích  yêu thích  12 
Tìm kiếm bộ phim Cho phép người dùng tìm kiếm bộ phim họ mong  muốn  13  Bình luận 
Cho phép người dùng bình luận về bộ phim  3. Đặc tả Usecase 
3.1. Đặc tả Usecase của người xem phim 
Bảng 3.4: Bảng đặc tả Usecase đăng ký   Mã Use-case  UC-1  Tên Use-case  Đăng ký  Tác nhân  Người xem phim  Mô tả tóm tắt 
Người dùng ấn vào nút đăng ký  Điều kiện trước  Truy cập vào website.  Điều kiện sau  N/A      lOMoAR cPSD| 59114765
Dòng sự kiện chính Người dùng ấn nút đăng ký sẽ được đưa sang trang đăng ký  người dùng mới.  Dòng sự kiện phụ 
Người dùng sẽ được chuyển sang trang xác thực OTP và 
cần nhập vào mã OTP đã được hệ thống gửi qua email xác  nhận của người dụng 
Bảng 3.5: Bảng đặc tả Usecase đăng nhập   Mã Use-case  UC-2  Tên Use-case  Đăng nhập  Tác nhân  Người xem phim  Mô tả tóm tắt 
Người dùng ấn vào nút đăng nhập  Điều kiện trước  Truy cập vào website.  Điều kiện sau  N/A 
Dòng sự kiện chính Người dùng ấn nút đăng nhập thì sẽ đăng nhập vô website.  Dòng sự kiện phụ   
Bảng 3.6: Bảng đặc tả Usecase xem phim  Mã Use-case  UC-3  Tên Use-case  Xem phim  Tác nhân  Người xem phim  Mô tả tóm tắt 
Người dùng ấn vào poster bộ phim  Điều kiện trước  Truy cập vào website.