Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.01 MB, 99 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
Lời đầu tiên, nhóm chúng em xin gửi đến các thầy cô Khoa Công Nghệ Phần Mềm trường Đại Học Công nghệ Thông tin lời chào trân trọng, lời chúc sức khỏe cũng như lời cảm ơn sâu sắc. Thầy cô đã trang bị cho chúng em những kiến thức cơ bản nhất để hoàn thành đồ án.
Đặc biệt, chúng em xin gửi lời cảm ơn chân thành nhất đến cô Đỗ Thị Thanh Tuyền, người đã cung cấp cho chúng em những kiến thức bổ ích, cũng như sự góp ý, giúp đỡ rất nhiệt tình để có thể thực hiện tốt đồ án này.
Với kinh nghiệm còn hạn chế của nhóm, đồ án khơng thể tránh những thiếu sót. Chúng em rất mong được sự chỉ bảo, nhận xét của thầy cơ để có thể hồn thiện hơn đồ án của mình.
Thành phố Hồ Chí Minh, tháng 01 năm 2024 Nhóm sinh viên thực hiện
20520798 – Trần Huyền Anh Thy 20521455 – Phạm Thị Nhật Khánh
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">2.3. Quản lý phiên bản - Github: ... 11
2.4. Môi trường phát triển: ... 12
2.4.1. VSCode: ... 12
2.4.2. IntelliJ IDEA: ... 13
Chương 3. XÂY DỰNG HỆ THỐNG ... 15
3.1. Phân tích yêu cầu hệ thống: ... 15
3.1.1. Yêu cầu phi chức năng: ... 15
3.1.1.1. Yêu cầu giao diện: ... 15
3.1.1.2. Yêu cầu xử lý: ... 15
3.1.1.3. Yêu cầu chất lượng: ... 15
3.1.1.4. Yêu cầu bảo mật: ... 15
3.1.2. u cầu chức năng: ... 16
3.1.2.1. Mơ hình Use-case toàn hệ thống: ... 16
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">3.2.1.2. Sequence diagram chức năng Đăng ký: ... 39
3.2.1.3. Sequence diagram chức năng Đăng xuất: ... 40
3.2.1.4. Sequence diagram chức năng Quản lý hệ thống rạp: ... 41
3.2.1.5. Sequence diagram chức năng Thống kê: ... 42
3.2.1.6. Sequence diagram chức năng Quản lý bình luận: ... 43
3.2.1.7. Sequence diagram chức năng Quản lý phòng chiếu: ... 44
3.2.1.8. Sequence diagram chức năng Quản lý phim: ... 45
3.2.1.9. Sequence diagram chức năng Quản lý lịch chiếu: ... 46
3.2.1.10. Sequence diagram chức năng Quản lý vé: ... 47
3.2.1.11. Sequence diagram chức năng Xem thông tin cá nhân: ... 48
3.2.1.12. Sequence diagram chức năng Xem danh sách phim hiện tại: ... 49
3.2.1.13. Sequence diagram chức năng Tìm kiếm: ... 50
3.2.1.14. Sequence diagram chức năng Chi tiết phim: ... 51
3.2.1.15. Sequence diagram chức năng Đặt vé: ... 52
3.2.1.16. Sequence diagram chức năng Xem vé đã đặt: ... 53
3.2.1.17. Sequence diagram chức năng Xem danh sách phim đã xem: ... 54
3.2.1.18. Sequence diagram chức năng Bình luận: ... 55
3.2.2. Thiết kế cơ sở dữ liệu: ... 56
3.2.2.1. Sơ đồ cơ sở dữ liệu: ... 56
3.2.2.2. Mô tả các bảng dữ liệu: ... 56
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Hình 2.1 Logo Github ... 12
Hình 2.2 Logo VSCode ... 13
Hình 2.3 Logo IntelliJ ... 14
Hình 3.1 Mơ hình Use-case Overview ... 16
Hình 3.2 Sequence diagram Đăng nhập cho Admin ... 37
Hình 3.3 Sequence diagram Đăng nhập cho Khách hàng ... 38
Hình 3.4 Sequence diagram Đăng ký ... 39
Hình 3.5 Sequence diagram Đăng xuất ... 40
Hình 3.6 Sequence diagram Quản lý hệ thống rạp ... 41
Hình 3.7 Sequence diagram Thống kê ... 42
Hình 3.8 Sequence diagram Quản lý bình luận ... 43
Hình 3.9 Sequence diagram Quản lý phịng chiếu ... 44
Hình 3.10 Sequence diagram Quản lý phim ... 45
Hình 3.11 Sequence diagram Quản lý lịch chiếu ... 46
Hình 3.12 Sequence diagram Quản lý vé ... 47
Hình 3.13 Sequence diagram Xem thơng tin cá nhân ... 48
Hình 3.14 Sequence diagram Xem danh sách phim hiện tại ... 49
Hình 3.15 Sequence diagram Tìm kiếm ... 50
Hình 3.16 Sequence diagram Chi tiết phim ... 51
Hình 3.17 Sequence diagram Đặt vé ... 52
Hình 3.18 Sequence diagram Xem vé đã đặt ... 53
Hình 3.19 Sequence diagram Xem danh sách phim đã xem ... 54
Hình 3.20 Sequence diagram Bình luận ... 55
Hình 3.21 Sơ đồ cơ sở dữ liệu ... 56
Hình 4.1 Giao diện Home ... 61
Hình 4.2 Giao diện Đăng ký ... 62
Hình 4.3 Giao diện Đăng nhập ... 63
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Hình 4.5 Giao diện Home với phim khách hàng có thể thích ... 65
Hình 4.6 Giao diện Home với phim đang chiếu ... 66
Hình 4.7 Giao diện Home với phim sắp chiếu ... 66
Hình 4.8 Giao diện Thơng tin chi tiết phim ... 67
Hình 4.9 Giao diện Đặt vé ... 68
Hình 4.10 Giao diện Phiếu xác nhận vé đặt ... 69
Hình 4.11 Giao diện Danh sách phim đã xem ... 69
Hình 4.12 Giao diện Viết bình luận cho phim đã xem ... 70
Hình 4.13 Giao diện Danh sách vé đã đặt ... 70
Hình 4.14 Giao diện Thơng tin cá nhân của Khách hàng ... 71
Hình 4.15 Giao diện đổi mật khẩu ... 72
Hình 4.16 Giao diện dành cho Admin ... 73
Hình 4.17 Giao diện quản lý rạp phim ... 74
Hình 4.18 Giao diện Thêm phịng chiếu ... 74
Hình 4.19 Giao diện quản lý phịng chiếu với danh sách các rạp ... 75
Hình 4.20 Giao diện quản lý phòng chiếu với danh sách các phịng của một rạp .... 76
Hình 4.21 Giao diện Thêm phịng chiếu ... 76
Hình 4.22 Giao diện Quản lý phim ... 77
Hình 4.23 Kết quả tìm kiếm phim ... 78
Hình 4.24 Giao diện thêm phim ... 79
Hình 4.25 Giao diện Quản lý lịch chiếu ... 80
Hình 4.26 Giao diện Quản lý lịch chiếu ... 81
Hình 4.27 Giao diện thêm lịch chiếu ... 82
Hình 4.28 Giao diện quản lý bình luận ... 82
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Bảng 3.8 Đặc tả Use-case Quản lý bình luận ... 23
Bảng 3.9 Đặc tả Use-case Quản lý phòng chiếu ... 24
Bảng 3.10 Đặc tả Use-case Quản lý phim ... 25
Bảng 3.11 Đặc tả Use-case Quản lý lịch chiếu ... 26
Bảng 3.12 Đặc tả Use-case Quản lý vé đã đặt ... 27
Bảng 3.13 Đặc tả Use-case Xem thông tin cá nhân ... 28
Bảng 3.14 Đặc tả Use-case Xem danh sách phim hiện tại ... 29
Bảng 3.15 Đặc tả Use-case Tìm kiếm ... 30
Bảng 3.16 Đặc tả Use-case Chi tiết phim ... 31
Bảng 3.17 Đặc tả Use-case Đặt vé ... 32
Bảng 3.18 Đặc tả Use-case Xem vé đã đặt ... 33
Bảng 3.19 Đặc tả Use-case Sử dụng điểm tích luỹ ... 34
Bảng 3.20 Đặc tả Use-case Xem danh sách phim đã xem ... 35
Bảng 3.21 Đặc tả Use-case Bình luận ... 36
Bảng 3.22 Mơ tả bảng dữ liệu theater ... 56
Bảng 3.23 Mô tả bảng dữ liệu room ... 57
Bảng 3.24 Mô tả bảng dữ liệu seat ... 57
Bảng 3.25 Mô tả bảng dữ liệu showtimes ... 58
Bảng 3.26 Mô tả bảng dữ liệu booking ... 58
Bảng 3.27 Mô tả bảng dữ liệu movie ... 59
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Bảng 3.29 Mô tả bảng dữ liệu user ... 60
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">dùng để họ có thể dễ dàng tìm kiếm thơng tin và đặt vé xem phim. - Cách giải quyết vấn đề:
o Xây dựng cơ sở dữ liệu: Thiết kế cấu trúc dữ liệu phù hợp để lưu trữ thông tin về lịch chiếu, phòng chiếu, vé xem phim và khách hàng. o Phát triển giao diện người dùng: Xây dựng giao diện trực quan và dễ
sử dụng để người dùng có thể dễ dàng tìm kiếm thơng tin, đặt vé. - Một số kết quả đạt được:
o Hiệu chỉnh các chức năng chưa được hoàn thiện từ Đồ án 1 và bổ sung các chức năng mới cho Đồ án 2.
- Ở báo cáo này, nhóm chúng em chia thành 5 chương như sau: o Chương 1: Tổng quan
Nội dung của chương: Nêu lý do chọn đề tài, đối tượng sử dụng, phạm vi nghiên cứu, khảo sát các sản phẩm trong và ngoài nước.
o Chương 2: Cơ sở lý thuyết
Nội dung của chương: Nói về kiến thức nền tảng và công nghệ sử dụng. o Chương 3: Xây dựng hệ thống
Nội dung chương: Phân tích các yêu cầu về chức năng và thiết kế hệ thống.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Chính vì lý do đó mà số lượng khách hàng đi xem phim cũng ít hơn, thu nhập của rạp cũng bị ảnh hưởng.
Vì vậy, tạo ra một phần mềm quản lý rạp chiếu phim là một nhu cầu tất yếu.
- Triển khai trên môi trường Web.
<b>1.4.2. Phạm vi chức năng: </b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">- Được phát triển trong Đồ án 2: o Quản lý hệ thống rạp phim. o Quản lý giảm giá.
o Danh mục phim yêu thích. o Ghi nhận tích điểm.
<b>1.4.3.2. Cinemark: </b>
Cinemark (www.cinemark.com) là một chuỗi rạp chiếu phim tại Hoa Kỳ và một số quốc gia khác. Trang web của Cinemark cung cấp thông tin về lịch chiếu, giá vé, đặt chỗ và các chương trình khuyến mãi.
<b>1.4.3.3. Cineplex: </b>
Cineplex (www.cineplex.com) là một trong những chuỗi rạp chiếu phim hàng đầu ở Canada. Trang web của Cineplex cung cấp thông tin về lịch chiếu, đặt vé trực tuyến, tin tức và chương trình khuyến mãi.
<b>1.4.4. Nghiên cứu các sản phẩm trong nước: </b>
<b>1.4.4.1. CGV: </b>
CGV (www.cgv.vn) là một trong những chuỗi rạp chiếu phim lớn và phổ biến tại Việt Nam. Trang web của CGV cung cấp thông tin về lịch chiếu, đặt vé trực tuyến, giá vé, tin tức phim và chương trình khuyến mãi.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><b>1.4.4.2. Lotte Cinema: </b>
Lotte Cinema (www.lottecinemavn.com) Lotte Cinema là một chuỗi rạp chiếu phim nổi tiếng tại Việt Nam. Trang web của Lotte Cinema cung cấp thông tin về lịch chiếu, đặt vé trực tuyến, giá vé và các sự kiện đặc biệt.
<b>1.4.4.3. BHD Star Cineplex: </b>
BHD Star Cineplex (www.bhdstar.vn) BHD Star Cineplex là một chuỗi rạp chiếu phim hàng đầu tại Việt Nam. Trang web của BHD Star Cineplex cung cấp thông tin về lịch chiếu, đặt vé trực tuyến, giá vé và tin tức phim.
<b>1.4.5. Các vấn đề: </b>
Các trang web trên đều cung cấp các tính năng quản lý rạp chiếu phim như lịch chiếu, đặt vé trực tuyến, thông tin phim và tin tức. Mỗi trang web có thiết kế và tính năng khác nhau để phục vụ khách hàng và quản lý hoạt động của rạp chiếu phim một cách tốt nhất.
Các vấn đề cần tập trung nghiên cứu giải quyết:
- Quản lý thông tin phim: Một vấn đề quan trọng trong việc quản lý rạp chiếu phim là lưu trữ và quản lý thông tin về các bộ phim, bao gồm tên phim, thể loại, đạo diễn, diễn viên, đánh giá, thời lượng, năm sản xuất, và mô tả.
- Quản lý lịch chiếu: Một vấn đề quan trọng khác là quản lý lịch chiếu phim, bao gồm thơng tin về giờ chiếu, phịng chiếu.
- Quản lý vé và thanh toán: Vấn đề quản lý bán vé và thanh toán là một yếu tố quan trọng trong một website quản lý rạp chiếu phim.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><b>2.1. Kiến thức nền tảng: </b>
<b>2.1.1. Ngôn ngữ HTML (HyperText Markup Language): </b>
HTML là ngôn ngữ đánh dấu siêu văn bản sử dụng để tạo nên các trang web. Nó được sử dụng để mơ tả cấu trúc và nội dung của một trang web thông qua việc sử dụng các thẻ (tags) và các phần tử.
HTML cho phép định nghĩa cấu trúc của một trang web bằng cách sử dụng các thẻ. Mỗi thẻ được đặt trong cặp dấu ngoặc nhọn ("<" và ">") và có thể chứa các thuộc tính để xác định các đặc điểm và hành vi của phần tử. Ví dụ, thẻ <h1> được sử dụng để định nghĩa một tiêu đề cấp 1, thẻ <p> được sử dụng để định nghĩa một đoạn văn bản, và thẻ <img> được sử dụng để hiển thị hình ảnh. [1]
HTML hỗ trợ nhiều loại phần tử như tiêu đề, đoạn văn bản, danh sách, bảng, hình ảnh, liên kết, biểu đồ, video và âm thanh, và nhiều hơn nữa. Các phần tử này có thể được lồng vào nhau để tạo nên cấu trúc phức tạp và đa dạng của một trang web. Ngoài ra, HTML cũng hỗ trợ sử dụng CSS (Cascading Style Sheets) để định dạng và tạo kiểu cho các phần tử trong trang web, giúp điều chỉnh màu sắc, kích thước, vị trí, căn chỉnh và các hiệu ứng trực quan khác.
HTML là một ngôn ngữ cơ bản và quan trọng trong việc phát triển và xây dựng các trang web. Nó cung cấp khả năng mô tả cấu trúc và nội dung của một trang web một cách dễ hiểu và linh hoạt. Khi được kết hợp với CSS và JavaScript, HTML giúp tạo ra các trang web đa dạng, hấp dẫn và tương tác.
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><b>2.1.2. Ngôn ngữ CSS (Cascading Style Sheets): </b>
CSS là một ngôn ngữ được sử dụng để định dạng và trình bày các trang web. Nó giúp điều chỉnh màu sắc, kích thước, vị trí và hiệu ứng của các phần tử trên trang web, từ văn bản, hình ảnh, đến bố cục và các phần tử giao diện.
được kế thừa từ các phần tử cha.
- Responsive design: cho phép tạo ra các trang web linh hoạt và tương thích với các thiết bị và màn hình khác nhau.
- Thư viện và framework: Có nhiều thư viện và framework CSS phổ biến như Bootstrap, Foundation, Materialize CSS, …
<b>2.1.3. Ngơn ngữ lập trình Java: </b>
Java là một ngơn ngữ lập trình phổ biến và một nền tảng phát triển phần mềm mạnh mẽ. Nó được phát triển bởi Sun Microsystems (nay là Oracle Corporation) và ra mắt lần đầu vào năm 1995. Java được thiết kế để có tính di động và đa nền tảng, cho phép viết một lần và chạy ở nhiều môi trường khác nhau.
Java sử dụng cú pháp tương đối dễ hiểu và có cấu trúc, đồng thời hỗ trợ tính năng hướng đối tượng. Ngôn ngữ này giúp các nhà phát triển xây dựng các ứng dụng
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">động cao và khả năng chạy trên nhiều hệ điều hành khác nhau mà không cần viết lại mã nguồn. [1]
Một số đặc điểm nổi bật của Java bao gồm quản lý bộ nhớ tự động (garbage collection), bảo mật cao, kiểm soát ngoại lệ (exception handling), luồng (thread) và xử lý đồng thời, cộng đồng lớn và nhiều thư viện phong phú. Java cũng hỗ trợ phát triển ứng dụng web thông qua các công nghệ như Servlet, JSP và Framework Spring. Java có ứng dụng rộng rãi trong các lĩnh vực như phát triển ứng dụng di động (Android), phát triển ứng dụng máy tính cá nhân, phát triển ứng dụng server, phát triển ứng dụng web, trí tuệ nhân tạo, big data, game và nhiều lĩnh vực công nghệ khác.
<b>2.1.4. Ngôn ngữ JavaScript: </b>
JavaScript là một ngơn ngữ lập trình phía máy khách (client-side) được sử dụng để tương tác và thay đổi nội dung của trang web. Nó cho phép bạn thêm các hiệu ứng động, xử lý sự kiện, kiểm tra và thay đổi dữ liệu, và tạo ra các trải nghiệm tương tác trên trình duyệt web.
Dưới đây là một số điểm nổi bật về JavaScript:
- Tương tác người dùng: cho phép tương tác với người dùng thông qua xử lý sự kiện như nhấp chuột, di chuột, gõ phím và gửi biểu mẫu.
- Điều khiển DOM: cho phép thay đổi nội dung và cấu trúc của trang web bằng cách truy cập và thay đổi các phần tử trong DOM (Document Object Model). - Xử lý dữ liệu: thực hiện các phép tính, kiểm tra và xử lý chuỗi, mảng, đối
tượng, và thực hiện các hoạt động logic phức tạp.
- Giao tiếp với máy chủ: JavaScript cung cấp các API và phương thức để giao tiếp với máy chủ.
- Thư viện và framework: có nhiều thư viện và framework JavaScript phổ biến như jQuery, React, Angular, Vue.js, …
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b>2.1.5. Ngôn ngữ SQL (Structured Query Language): </b>
SQL là ngôn ngữ truy vấn cấu trúc được sử dụng để quản lý và tương tác với cơ sở dữ liệu quan hệ. Nó là một ngơn ngữ tiêu chuẩn được sử dụng rộng rãi trong lĩnh vực quản lý cơ sở dữ liệu.
Dưới đây là một số điểm nổi bật về SQL:
- Truy vấn dữ liệu: cho phép truy vấn và lấy dữ liệu từ cơ sở dữ liệu bằng cách sử dụng các câu lệnh SELECT, FROM, WHERE, GROUP BY, HAVING và ORDER BY.
- Thao tác dữ liệu: SQL cung cấp các câu lệnh để thao tác dữ liệu trong cơ sở dữ liệu: chèn (INSERT), cập nhật (UPDATE) và xóa (DELETE).
- Quản lý cơ sở dữ liệu: SQL cung cấp các câu lệnh để tạo, sửa đổi và xóa cơ sở dữ liệu, bảng, khóa ngoại, chỉ mục và ràng buộc.
- Liên kết dữ liệu: SQL cho phép liên kết dữ liệu từ nhiều bảng thơng qua các khóa ngoại bằng cách sử dụng các câu lệnh JOIN, bạn có thể kết hợp dữ liệu từ các bảng khác nhau trong cùng một truy vấn.
- Tạo, sửa đổi và truy vấn cơ sở dữ liệu: SQL cung cấp các câu lệnh để tạo, sửa đổi và truy vấn cơ sở dữ liệu.
<b>2.2. Công nghệ sử dụng: 2.2.1. Spring boot: </b>
Spring Boot là một framework phát triển ứng dụng Java dựa trên nền tảng Spring Framework. Nó được thiết kế để giúp lập trình viên xây dựng ứng dụng web và dịch vụ nhanh chóng, dễ dàng và tiết kiệm thời gian.
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">- Microservices-friendly: Spring Boot hỗ trợ phát triển các ứng dụng dạng microservices.
- Tự động cấu hình và quản lý phụ thuộc: Spring Boot sử dụng các thư viện tự động cấu hình để quét và xác định các phụ thuộc của ứng dụng.
- Tích hợp dễ dàng: Spring Boot tích hợp tốt với các công nghệ và framework phổ biến khác như Spring Data, Spring Security, Thymeleaf, Hibernate, và nhiều thư viện khác.
- Tính linh hoạt và mở rộng: Spring Boot hỗ trợ việc tạo các thành phần tùy chỉnh và kết hợp với các công nghệ khác để xây dựng ứng dụng đáp ứng các yêu cầu đặc biệt.
<b>2.2.2. Spring MVC: </b>
Spring MVC là một trong các module của Spring Framework, nó cung cấp một mơ hình phát triển ứng dụng web theo kiến trúc MVC (Model-View-Controller). Đây là một trong những framework phổ biến để phát triển ứng dụng web Java. Một số điểm nổi bật về Spring MVC:
- Mơ hình MVC: sử dụng mơ hình MVC để tách biệt các phần khác nhau của ứng dụng web như xử lý logic (Controller), hiển thị giao diện (View) và quản lý dữ liệu (Model). Điều này giúp tăng tính tái sử dụng, bảo trì và phát triển linh hoạt của ứng dụng.
- DispatcherServlet: nhận các yêu cầu từ người dùng, xác định Controller phù hợp để xử lý yêu cầu và chuyển tiếp dữ liệu giữa Controller và View.
- Cấu hình linh hoạt: cấu hình ứng dụng thông qua các tệp cấu hình XML, Annotation hoặc Java Configuration.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><b>2.2.3. Thymeleaf: </b>
Thymeleaf là một template engine phổ biến trong phát triển ứng dụng web Java. Nó được sử dụng để tạo ra các giao diện người dùng (UI) động và tương tác với dữ liệu.
Một số điểm nổi bật về Thymeleaf: - Cú pháp thân thiện với người dùng. - Hỗ trợ đa ngơn ngữ.
- Tích hợp tốt với Spring: Thymeleaf có tích hợp tốt với Spring Framework và được khuyến nghị sử dụng cùng với Spring MVC. Nó hỗ trợ các tính năng như binding dữ liệu, xử lý sự kiện, và hỗ trợ dữ liệu động trong giao diện người dùng.
- Tích hợp dễ dàng: Thymeleaf có thể tích hợp với các cơng nghệ và framework khác như Spring Boot, Java EE, và các framework phát triển web khác.
<b>2.2.4. Bootstrap 5: </b>
Bootstrap 5 là một framework phát triển web phổ biến, được sử dụng để xây dựng giao diện người dùng (UI) linh hoạt và đáp ứng trên nhiều thiết bị khác nhau.
Dưới đây là một số điểm nổi bật về Bootstrap 5:
- Thiết kế đáp ứng: Bootstrap 5 hỗ trợ thiết kế đáp ứng, tức là giao diện sẽ tự động điều chỉnh và thích nghi với các kích thước màn hình khác nhau, bao gồm cả điện thoại di động, máy tính bảng và máy tính để bàn. Điều này giúp tạo ra trải nghiệm người dùng tốt trên mọi thiết bị.
- Cú pháp dễ sử dụng: Bootstrap 5 sử dụng cú pháp dễ hiểu và gần gũi với
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">- Hỗ trợ tùy chỉnh: Bootstrap 5 cho phép tùy chỉnh và điều chỉnh giao diện của mình theo nhu cầu, có thể tùy chỉnh các giá trị màu sắc, font chữ, kích thước và các thuộc tính khác để phù hợp với thiết kế.
- Tích hợp với các cơng nghệ khác: Bootstrap 5 có thể tích hợp dễ dàng với các cơng nghệ và framework khác như JavaScript, jQuery, Angular, và React. Điều này giúp bạn tận dụng các tính năng mạnh mẽ của Bootstrap trong dự án của mình.
<b>2.3. Quản lý phiên bản - Github: </b>
GitHub là một dịch vụ lưu trữ và quản lý mã nguồn phổ biến trên internet. Nó cung cấp một nền tảng cho các nhà phát triển phần mềm để chia sẻ, quản lý và làm việc chung trên dự án phần mềm.
Dưới đây là một số thông tin cơ bản về GitHub:
- Hệ thống kiểm soát phiên bản: GitHub sử dụng hệ thống kiểm soát phiên bản Git để quản lý mã nguồn. Git cho phép các nhà phát triển lưu trữ, theo dõi và quản lý lịch sử thay đổi của mã nguồn.
- Lưu trữ mã nguồn: GitHub cung cấp khả năng lưu trữ mã nguồn cho các dự án phần mềm. Người dùng có thể tạo ra các kho lưu trữ (repositories) để lưu trữ mã nguồn của dự án và chia sẻ nó với cộng đồng.
- Quản lý dự án: GitHub cung cấp các công cụ và tính năng quản lý dự án, bao gồm theo dõi vấn đề (issue tracking), quản lý nhiệm vụ (task management) và phân công công việc (assigning tasks).
- Hợp tác và làm việc nhóm: GitHub cho phép nhiều người cùng làm việc trên cùng một dự án phần mềm. Người dùng có thể tạo và quản lý nhánh (branches) để làm việc độc lập và sau đó hợp nhất (merge) các thay đổi vào nhánh chính. - Kiểm tra và xem lại mã nguồn: GitHub cung cấp các tính năng kiểm tra mã (code review) để cho phép nhà phát triển xem xét, đánh giá và đề xuất thay đổi cho mã nguồn.
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">- Cộng đồng và tích hợp: GitHub là nền tảng rộng lớn với cộng đồng người dùng đông đảo. Nó cung cấp tích hợp với các dịch vụ khác như CI/CD (Continuous Integration/Continuous Deployment) và các công cụ phát triển phần mềm khác.
<i><small>Hình 2.1 Logo Github (Nguồn github.com) </small></i>
<b>2.4. Môi trường phát triển: 2.4.1. VSCode: </b>
VSCode (Visual Studio Code) là một trình biên tập mã nguồn mở, nhẹ nhàng và mạnh mẽ được phát triển bởi Microsoft. Đây là một cơng cụ phát triển tích hợp (IDE) đa nền tảng được sử dụng rộng rãi trong cộng đồng phát triển phần mềm.
Một số đặc điểm chính của VSCode:
- Hỗ trợ nhiều ngôn ngữ lập trình: VSCode hỗ trợ nhiều ngơn ngữ lập trình như JavaScript, TypeScript, Python, C++, Java, HTML, CSS và nhiều ngôn ngữ
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">- Tích hợp hỗ trợ Git.
- Đa nền tảng: VSCode có thể chạy trên các hệ điều hành phổ biến như Windows, macOS và Linux.
<i><small>Hình 2.2 Logo VSCode (Nguồn code.visualstudio.com) </small></i>
<b>2.4.2. IntelliJ IDEA: </b>
IntelliJ IDEA là một môi trường phát triển tích hợp (IDE) thơng minh cho ngơn ngữ lập trình Java. Nó được phát triển bởi JetBrains và được coi là một trong những IDE phổ biến nhất cho phát triển ứng dụng Java.
Một số đặc điểm chính của IntelliJ IDEA:
- Hỗ trợ đa ngôn ngữ: IntelliJ IDEA không chỉ hỗ trợ phát triển Java mà còn hỗ trợ nhiều ngơn ngữ lập trình khác như Kotlin, Scala, Groovy, JavaScript, HTML, CSS và nhiều ngôn ngữ khác.
- Đa nền tảng: IntelliJ IDEA có sẵn cho các nền tảng khác nhau như Windows, macOS và Linux, đảm bảo tính tương thích và linh hoạt trong việc phát triển trên các hệ điều hành khác nhau.
- Công cụ thông minh: IntelliJ IDEA cung cấp nhiều công cụ thông minh để tăng năng suất lập trình viên: tính năng tự động hồn thành mã, kiểm tra lỗi cú pháp, định dạng mã tự động, tạo đề xuất mã, tìm kiếm thơng minh, …
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">- Hỗ trợ quản lý dự án mạnh mẽ: IntelliJ IDEA cung cấp các công cụ quản lý dự án mạnh mẽ như quản lý phiên bản, tích hợp hệ thống kiểm tra mã nguồn, hỗ trợ quản lý phụ thuộc và tích hợp cơng cụ xây dựng (build tools) như Maven và Gradle.
<i><small>Hình 2.3 Logo IntelliJ (Nguồn jetbrains.com) </small></i>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b>3.1. Phân tích yêu cầu hệ thống: 3.1.1. Yêu cầu phi chức năng: </b>
<b>3.1.1.1. Yêu cầu giao diện: </b>
- Giao diện đơn giản, màu sắc đồng nhất. - Đa dạng phim.
<b>3.1.1.2. Yêu cầu xử lý: </b>
- Sử dụng đơn giản.
- Thao tác đặt vé đơn giản.
<b>3.1.1.3. Yêu cầu chất lượng: </b>
- Hạn chế độ trễ khi thao tác các chức năng. - Ảnh Poster của phim phải chất lượng cao.
<b>3.1.1.4. Yêu cầu bảo mật: </b>
- Các thông tin người dùng phải được bảo mật và đảm bảo chỉ có họ mới có quyền truy cập.
- Các vai trò cụ thể sẽ được truy cập vào các tài nguyên tương ứng.
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><b>3.1.2. u cầu chức năng: </b>
<b>3.1.2.1. Mơ hình Use-case tồn hệ thống: </b>
<i><small>Hình 3.1 Mơ hình Use-case Overview </small></i>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><b>3.1.2.3. Mô tả Use-case: </b>
<i><small>Bảng 3.2 Mô tả Use-case </small></i>
1 UC01 Đăng nhập Actors đăng nhập bằng tài khoản của mình.
2 UC02 Đăng ký Actors đăng ký tài khoản mới. 3 UC03 Đăng xuất Actors đăng xuất khỏi hệ thống.
4 UC04 Quản lý hệ thống rạp Cho phép Admin quản lý các rạp của hệ thống
5 UC05 Thống kê Cho phép Admin xem thống kê
6 UC06 Quản lý bình luận Cho phép Admin quản lý mình luận của khách hàng
7 UC07 Quản lý phòng chiếu Cho phép Admin quản lý các phòng chiếu phim.
8 UC08 Quản lý phim Cho phép Admin quản lý các bộ phim. 9 UC09 Quản lý lịch chiếu Cho phép Admin quản lý các lịch chiếu. 10 UC10 Quản lý vé Cho phép Admin quản lý các vé xem
phim đã được đặt. 11 UC11 <sup>Xem thông tin cá </sup>
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30"><b>Use-case Đăng ký – UC02: </b>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31"><b>Use-case Đăng xuất – UC03: </b>
<i><small>Bảng 3.5 Đặc tả Use-case Đăng xuất </small></i>
<b>Short Description </b> Actors đăng xuất khỏi hệ thống.
<b>Basic Flow </b> 1. Chọn “Đăng xuất” trên native bar.
<b>Alternative Flow </b> Không.
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><b>Use-case Quản lý hệ thống rạp – UC04: </b>
- Chọn “Xóa”: Xóa rạp chiếu khỏi cơ sở dữ liệu.
<b>Alternative Flow </b> Không.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33"><b>Use-case Thống kê – UC05: </b>
3. Chọn “Thống kê” của rạp muốn xem thống kê.
<b>Alternative Flow </b> Không.
<b>Special Requirement </b>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"><b>Use-case Quản lý bình luận – UC06: </b>
<i><small>Bảng 3.8 Đặc tả Use-case Quản lý bình luận </small></i>
<b>Short Description </b> Admin quản lý bình luận.
<b>Alternative Flow </b> <sup>Khơng.</sup><b>Special </b>
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35"><b>Use-case Quản lý phịng chiếu – UC07: </b>
<i><small>Bảng 3.9 Đặc tả Use-case Quản lý phòng chiếu </small></i>
<b>Short Description </b> Admin quản lý phòng chiếu.
- Chọn “Xóa”: Xóa phịng chiếu khỏi cơ sở dữ liệu.
<b>Alternative Flow </b> Không.
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36"><b>Use-case Quản lý phim – UC08: </b>
<i><small>Bảng 3.10 Đặc tả Use-case Quản lý phim </small></i>
<b>Short Description </b> Admin quản lý phim.
- Chọn “Xóa”: Xóa phim khỏi cơ sở dữ liệu.
<b>Alternative Flow </b> Không.
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37"><b>Use-case Quản lý lịch chiếu – UC09: </b>
<i><small>Bảng 3.11 Đặc tả Use-case Quản lý lịch chiếu </small></i>
<b>Short Description </b> Admin quản lý lịch chiếu phim.
- Chọn “Xóa”: Xóa lịch chiếu khỏi cơ sở dữ liệu.
<b>Alternative Flow </b> Không.
<b>Special </b>
<b>Requirement </b> <sup>Không. </sup>
<b>Pre-Condition </b>
- Kết nối mạng.
- Đăng nhập bằng tài khoản Admin.
- Phải có ít nhất một phịng chiếu và một bộ phim để thêm lịch chiếu
Không.
</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38"><b>Use-case Quản lý vé – UC10: </b>
- Chọn “Xác nhận”: Chấp nhận vé đặt của khách hàng.
- Chọn “Từ chối”: Từ chối vé đặt của khách hàng.
<b>Alternative Flow </b> Không.
<b>Special </b>
<b>Requirement </b> <sup>Không. </sup>
<b>Pre-Condition </b>
- Kết nối mạng.
- Đăng nhập bằng tài khoản Admin.
- Phải có ít nhất một yêu cầu đặt vé của Khách hàng.
<b>Post-Condition </b> Không.
<b>Extension Points </b> Không.
</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39"><b>Use-case Xem thông tin cá nhân – UC11: </b>
<i><small>Bảng 3.13 Đặc tả Use-case Xem thông tin cá nhân </small></i>
<b>Name </b> Xem thông tin cá nhân
<b>Short Description </b> Actors xem thông tin cá nhân.
</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40"><b>Use-case Xem danh sách phim hiện tại – UC12: </b>
<i><small>Bảng 3.14 Đặc tả Use-case Xem danh sách phim hiện tại </small></i>
<b>Name </b> Xem danh sách phim hiện tại
<b>Short Description </b> Khánh hàng xem danh sách phim đang chiếu tại rạp.
<b>Alternative Flow </b> Không.
<b>Special </b>
<b>Requirement </b> <sup>Không. </sup>
<b>Pre-Condition </b>
- Kết nối mạng. - Đăng nhập.
- Phải có ít nhất một bộ phim trong cơ sở dữ liệu.
<b>Post-Condition </b> Không.
<b>Extension Points </b> Không.
</div>