Professional Documents
Culture Documents
LỜI CẢM ƠN
Lời đầu tiên chúng em xin được phép cảm ơn quý thầy cô khoa Công nghệ
Thông Tin trường Đại học Tôn Đức Thắng đã tạo mọi điều kiện cho chúng em tạo mọi
điều kiện tốt nhất để em được học tập môn Công nghệ JAVA.
Chúng em cũng xin được gửi lời cảm ơn đến thầy Nguyễn Thanh Phong, thầy
đã nhiệt tình giảng dạy, trang bị đầy đủ kiến thức để chúng em có thể hoàn thành bài
báo cáo cho đồ án cuối kỳ này.
Cuối cùng, do hạn chế về mặt kiến thức, kính mong thầy cô có thể bỏ qua những
sai sót nhỏ và chỉ ra được những lỗi sai của chúng em trong đồ án này để những đồ án
sau của chúng em được hoàn thiện hơn.
Một lần nữa chúng em xin chân thành cảm ơn thầy Nguyễn Thanh Phong và
toàn thể quý thầy cô khoa Công Nghệ Thông Tin trường Đại học Tôn Đức Thắng.
CHÚNG EM XIN CHÂN THÀNH CẢM ƠN !
2
_________________________________________________________
_________________________________________________________
MỤC LỤC
LỜI CẢM ƠN................................................................................................................1
PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN...........................................2
DANH MỤC HÌNH ẢNH..............................................................................................6
DANH MỤC BẢNG......................................................................................................8
DANH MỤC CÁC CHỮ VIẾT TẮT.............................................................................9
1. CHƯƠNG 1 – GIỚI THIỆU MÔ HÌNH MVC VÀ SPRING BOOT
FRAMEWORK............................................................................................................10
1.1. Tổng quan mô hình MVC:......................................................................10
1.2. Đặc điểm mô hình MVC.........................................................................12
1.3. Tổng quan Spring Boot Framework........................................................13
1.4. Đặc điểm của Spring Boot Framework...................................................14
1.5. Các điểm quan trọng trong xây dựng một dự án Spring boot.................15
2. CHƯƠNG 2 – PHÂN TÍCH – THIẾT KẾ WEB XEM PHIM ONLINE
FILMO........................................................................................................................ 16
2.1. Đặc tả yêu cầu:......................................................................................17
Yêu cầu chức năng:.........................................................................................17
Yêu cầu phi chức năng:...................................................................................18
2.2. Sơ đồ Use Case......................................................................................18
2.3.1 Sơ đồ Use Case tổng quát.......................................................................18
2.3.2 Sơ đồ use case đăng nhập.......................................................................19
2.3.3 Sơ đồ use case đăng kí.............................................................................19
2.3.4 Sơ đồ use case quản lý thông tin cá nhân...............................................20
2.3.5 Sơ đồ use case xem phim.........................................................................20
2.3.6 Sơ đồ use case tìm kiếm phim theo tên, thể loại......................................21
2.3.7 Sơ đồ use case lưu phim yêu thích..........................................................21
5
........................................................................................................................... 21
2.3.8 Sơ đồ use case bình luận phim................................................................22
2.3.8 Sơ đồ use case xem lịch sử......................................................................22
2.3.10 Sơ đồ use case quản lý tập phim............................................................23
2.3.11 Sơ đồ use case quản lý thể loại..............................................................24
2.3.12 Sơ đồ use case quản lý ngôn ngữ..........................................................24
2.3.13 Sơ đồ use case quản lý quốc gia............................................................25
2.3.14 Sơ đồ use case quản lý diễn viên...........................................................25
2.3.15 Sơ đồ use case quản lý người dùng.......................................................26
2.3. ERD.......................................................................................................27
2.4. Sơ đồ Class Diagram............................................................................27
2.5. Sơ đồ Sequence......................................................................................27
2.5.1 Sơ đồ sequence chức năng đăng nhập...................................................27
2.5.2 Sơ đồ sequence chức năng đăng ký.......................................................28
2.5.3 Sơ đồ sequence chức năng quản lý người dùng....................................28
2.5.4 Sơ đồ sequence chức năng quản lý phim...............................................29
2.5.5 Sơ đồ sequence chức năng bình luận.....................................................30
2.5.6 Sơ đồ sequence chức năng lưu phim......................................................31
2.6 Mô tả kế hoạch xây dựng dự án................................................................31
DANH MỤC TÀI LIỆU THAM KHẢO VÀ CÁC TRÍCH DẪN...........................34
6
Hình 26: Hình ảnh phân công công việc ở các tuần.....................................................32
Hình 27: Hình ảnh branch............................................................................................32
Hình 28: Commit 1.......................................................................................................33
Hình 29: Commit 2.......................................................................................................33
Hình 30: Commit 3.......................................................................................................34
Hình 31: Unit Test........................................................................................................34
8
hoặc các framework UI khác. Các tệp View thường được phân tách ra khỏi mã logic
của ứng dụng để dễ dàng bảo trì và tái sử dụng.
• Controller: Controller là thành phần đại diện cho logic điều khiển của ứng
dụng. Nó đảm nhiệm xử lý các yêu cầu của người dùng và điều khiển quá trình truy
xuất dữ liệu từ Model và hiển thị dữ liệu lên View. Controller có trách nhiệm xử lý các
yêu cầu từ người dùng và thực hiện các hoạt động tương ứng. Controller nhận yêu cầu
từ người dùng thông qua View và xử lý chúng bằng cách gọi các phương thức của
Model để truy xuất và xử lý dữ liệu. Sau khi Model trả về dữ liệu, Controller sẽ chuyển
dữ liệu này đến 3 View để hiển thị cho người dùng. Controller không thực hiện bất kỳ
thao tác nào trên dữ liệu và không có trách nhiệm lưu trữ hoặc cập nhật dữ liệu.
Controller có thể được thiết kế bằng nhiều ngôn ngữ lập trình khác nhau, chẳng hạn
như Java, PHP, Python, Ruby, C#... Nó cũng có thể được cấu trúc dưới dạng một tập
hợp các phương thức hoặc lớp điều khiển để quản lý các yêu cầu của người dùng.
+ Khả năng phức tạp: Mô hình MVC có thể trở nên phức tạp khi ứng dụng có
nhiều thành phần và quy mô lớn. Việc phân chia và quản lý các thành phần có thể khó
khăn đối với những dự án phức tạp, đòi hỏi sự hiểu biết sâu về kiến trúc MVC.
+ Đòi hỏi hiểu biết sâu: Để triển khai mô hình MVC hiệu quả, các nhà phát
triển cần có hiểu biết vững chắc về kiến thức lập trình và các nguyên tắc của mô hình
này.
+ Phân tách quá mức: Trong một số trường hợp, việc phân chia quá mức các
thành phần của MVC có thể dẫn đến sự phức tạp và hiệu suất giảm. Việc quá tách biệt
Model, View và Controller có thể dẫn đến việc truyền thông tin quá nhiều giữa các
thành phần, làm tăng độ phức tạp và giảm hiệu suất của ứng dụng.
tốt với các công nghệ và framework phổ biến khác. Nó giúp lập trình viên tập trung
vào việc phát triển logic ứng dụng chính mà không phải mất nhiều thời gian và công
sức vào việc cấu hình và triển khai.
Spring Boot cũng cung cấp các tính năng mạnh mẽ như quản lý phụ thuộc,
embedded server, monitor và quản lý ứng dụng, giúp tăng cường khả năng linh hoạt,
quản lý và mở rộng ứng dụng Java.
+ Monitor và quản lý ứng dụng: Spring Boot cung cấp các công cụ và thư
viện hỗ trợ cho việc monitor và quản lý ứng dụng,
1.5. Các điểm quan trọng trong xây dựng một dự án Spring boot
File cấu hình: Trong dự án Spring Boot, file cấu hình chính là
application.properties hoặc application.yml. Đây là nơi bạn cấu hình các thông số như
cổng server, cấu hình cơ sở dữ liệu, URL kết nối và các cài đặt khác của ứng dụng.
Dependency Management: Trong dự án Spring Boot, bạn sẽ sử dụng công cụ
quản lý phụ thuộc như Apache Maven hoặc Gradle để quản lý các thư viện và module.
Bạn sẽ chỉ định các dependency trong file pom.xml (đối với Maven) hoặc build.gradle
(đối với Gradle). Spring Boot đi kèm với các starter dependency, giúp bạn dễ dàng
thêm các tính năng như Spring Web, Spring Data JPA, Spring Security, và nhiều thư
viện khác.
Cấu trúc dự án: Dự án Spring Boot thường có một cấu trúc dự án chuẩn, giúp
bạn dễ dàng tổ chức và quản lý mã nguồn. Cấu trúc thư mục thông thường bao gồm các
thư mục src/main/java để lưu trữ mã nguồn Java, src/main/resources để lưu trữ các tài
nguyên như file cấu hình và tệp tin tĩnh, và src/test để lưu trữ các test cases.
Annotation và Configuration: Spring Boot sử dụng các annotation và cấu hình
để quản lý và cấu hình các thành phần của ứng dụng. Ví dụ, @SpringBootApplication
là annotation chính để đánh dấu một lớp là một Spring Boot Application. Bạn cũng có
thể sử dụng các annotation như @Controller, @RestController, @Service,
@Repository để định nghĩa các thành phần trong ứng dụng.
Testing: Spring Boot hỗ trợ một số framework testing như JUnit và Mockito để
thực hiện các test cases. Bạn có thể viết các test cases cho các thành phần của ứng dụng
như Controllers, Services và Repositories để đảm bảo tính đúng đắn và độ tin cậy.
Spring Data: Spring Boot tích hợp tốt với Spring Data, một dự án của Spring
Framework nhằm hỗ trợ tiếp cận dữ liệu trong ứng dụng. Spring Data giúp đơn giản
16
hóa việc tương tác với cơ sở dữ liệu và cung cấp các tính năng như tự động tạo câu truy
vấn, cung cấp repository và các phương thức CRUD, và hỗ trợ nhiều cơ sở dữ liệu phổ
biến như MySQL, PostgreSQL, MongoDB, và Redis.
Spring Security: Spring Boot cung cấp tích hợp với Spring Security, một
framework mạnh mẽ để xác thực và phân quyền trong ứng dụng. Spring Security cho
phép bạn bảo vệ các endpoint, quản lý đăng nhập và xác thực người dùng, và thiết lập
các quyền truy cập dựa trên vai trò. Điều này giúp bảo vệ ứng dụng khỏi các cuộc tấn
công và đảm bảo tính bảo mật của hệ thống.
Quản lý môi trường: Spring Boot cung cấp khả năng quản lý môi trường thông
qua các file cấu hình. Bạn có thể cấu hình các tài nguyên, định nghĩa các biến môi
trường và điều kiện để áp dụng cấu hình khác nhau cho từng môi trường như
Development, Production, và Testing. Điều này giúp tối ưu hoá việc triển khai và vận
hành ứng dụng trên nhiều môi trường khác nhau.
danh sách riêng của mình. Điều này giúp người dùng dễ dàng tìm lại và tiếp tục trải
nghiệm các bộ phim mà họ thích. Filmo cung cấp chức năng tìm kiếm, cho phép người
dùng tìm kiếm phim theo tên phim hoặc thể loại phim mà họ muốn xem. Người dùng
có thể gửi bình luận và đánh giá về các bộ phim mà họ đã xem. Điều này cho phép
người dùng chia sẻ ý kiến và góp ý về các bộ phim với cộng đồng người dùng khác.
Tất cả các bộ phim mà người dùng đã xem sẽ được lưu trữ và người dùng có thể xem
lại lịch sử xem phim của mình.
2.1. Đặc tả yêu cầu:
Yêu cầu chức năng:
- Người dùng đăng kí tài khoản
- Người dùng và quản trị viên đăng nhập tài khoản
- Người dùng quản lý thông tin cá nhân.
- Người dùng xem phim trực tuyến
- Người dùng tìm kiếm phim theo tên, thể loại
- Người dùng lưu phim yêu thích
- Người dùng bình luận phim
- Người dùng xem lịch sử xem phim
- Quản trị viên quản lý phim
- Quản trị viên quản lý tập phim
- Quản trị viên quản lý thông tin về thể loại
- Quản trị viên quản lý thông tin về ngôn ngữ
- Quản trị viên quản lý thông tin về quốc gia
- Quản trị viên quản lý thông tin về diễn viên.
- Quản trị viên quản lý thông tin về người dùng
Yêu cầu phi chức năng:
- Giao diện người dùng thân thiện.
- Độ phản hồi nhanh.
18
Hình 3: Sơ đồ 2:
Hình use case đăng nhập
Hình 4
2.3.6 Sơ đồ use case tìm kiếm phim theo tên, thể loại
Hình 9: Sơ đồ use case tìm kiếm phim theo tên, thể loại
22
Hình 11:10:
Hình Sơ đồđồ
usecase bình luận phim
2.3.8 Sơ đồ use case bình luậnSơ
phimuse case lưu phim yêu thích
2.3. ERD
2.5. Sơ đồ Sequence
2.5.1 Sơ đồ sequence chức năng đăng nhập
Hình 26: Hình ảnh phân công công việc ở các tuần
Ngoài ra chúng em cũng sử dụng gitlab của trường để tổ chức, quản lý dự án, git
của chúng em được chia làm 3 branch tương đương với 3 người để dễ quản lý dự án :
34
--Hết--