lOMoARcPSD| 59561309
TRƯỜNG ĐẠI HỌC PHENIKAA
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO HP: ĐIỆN TOÁN ĐÁM MÂY
ĐỀ TÀI 33:
QUẢN LÝ CẤP PHÁT QUÂN TRANG
Học phần: Lập trình hướng đối tượng (N14)
Sinh viên:
1. Đào Nguyễn Thảo Quyên – 21011628
2. Tiến Hưng - 20010960
Giảng viên hướng dẫn: Thầy Phạm Đức Bắc
Năm học: 2024 – 2025
Hà nội, 05 tháng 11 năm 2024
lOMoARcPSD| 59561309
LỜI CAM KẾT
Họ và tên sinh viên:
1. Đào Nguyễn Thảo Quyên
Điện thoại liên lạc: 0397867870
Email: 21011628@st.phenikaa-uni.edu.vn
2. Tiến Hưng
Điện thoại liên lạc: 0939624810
Email: 20010960@st.phenikaa-uni.edu.vn
Tôi/chúng tôi cam kết tất cả những tham khảo trong BTL – bao gồm hình ảnh,
bảng biểu, số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng và đầy đủ
nguồn gốc trong danh mục tài liệu tham khảo. Tôi xin hoàn toàn chịu trách
nhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường.
Hà Nội, ngày 05 tháng 11 năm 2024
Tác giả BTL
Họ và tên sinh viên
lOMoARcPSD| 59561309
3
MỤC LỤC
LỜI CAM KẾT ............................................................................................................ 2
DANH MỤC HÌNH ẢNH ............................................................................................ 4
PHÂN CÔNG CÔNG VIỆC ........................................................................................ 5
NỘI DUNG ................................................................................................................. 5
Chương 1: Tổng quan về dự án .................................................................................. 5
1.1 Triển khai .............................................................................................................. 5
1.1.1 Yêu cầu bài toán ...................................................................................... 5
1.1.2 Công nghệ sử dụng .................................................................................. 6
1.1.3 Use case ................................................................................................... 7
1.1.4 Thiết kế hệ thống ...................................................................................... 8
i) Thiết kế giao diện người dùng (UI Design) ............................................................ 8
ii) Cấu trúc thư mục và tài nguyên dự án ................................................................. 11
Chương 2: Cài đặt và triển khai ............................................................................... 15
2.1 Cài đặt môi trường phát triển ............................................................................. 15
2.1.1 Cài đặt JDK 23: ..................................................................................... 15
2.1.2 Cài đặt Apache NetBeans 23 ................................................................. 15
2.2 Kiểm thử .............................................................................................................. 15
2.2.1 Clone dự án ............................................................................................ 15
Task 1: Clone url ....................................................................................................... 15
Task 2: Cập nhật config.properties ........................................................................... 15
2.2.2 Thiết Lập Cơ Sở Dữ Liệu MySQL ......................................................... 16
2.2.3 Chạy chương trình ................................................................................. 16
Cách 1: Chạy Jar File .............................................................................................. 16
Cách 2: Run file trong NetBeans .............................................................................. 16
TÀI LIỆU THAM KHẢO.........................................................................................18
lOMoARcPSD| 59561309
4
DANH MỤC HÌNH ẢNH
Figure 1. Use case 1..................................................................................................7
Figure 2. Use case 2..................................................................................................8
Figure 3. Use case 3..................................................................................................8
Figure 4. Use case 4..................................................................................................8
Figure 5. Use case 5..................................................................................................9
Figure 6. Login..........................................................................................................9
Figure 7. Manage User............................................................................................10
Figure 8. Manage Category.....................................................................................10
Figure 9. Manage Uniform......................................................................................11
Figure 10. Manage Officer.......................................................................................11
Figure 11. Manage Distribution...............................................................................12
Figure 12. PDF Output............................................................................................12
lOMoARcPSD| 59561309
5
PHÂN CÔNG CÔNG VIỆC
Tên công việc
Người thực hiện
Trạng thái
1.Phân tích yêu cầu, mô hình hoá
Tất cả
Đã hoàn thành
2.Khởi tạo Project with Maven
Hưng
Đã hoàn thành
3.Login
Quyên
Đã hoàn thành
4.Tạo cơ sở dữ liệu
Quyên
Đã hoàn thành
5.Tạo các đối tượng
Hưng
Đã hoàn thành
6.Manage User
Quyên
Đã hoàn thành
7.Manage Category
Quyên
Đã hoàn thành
8.Manage Officers
Quyên
Đã hoàn thành
9.Manage Distribution
Quyên
Đã hoàn thành
10.View Distribution
Quyên
Đã hoàn thành
11.Logout
Quyên
Đã hoàn thành
12.Tạo các panel
Hưng
Đã hoàn thành (chưa
liên kết được)
13.Viết báo cáo
Tất cả
Đã hoàn thành
NỘI DUNG
Chương 1: Tổng quan về dự án
1.1 Triển khai
1.1.1 Yêu cầu bài toán
Hệ thống quản lý cấp phát quân trang cho quân nhân trong doanh trại cần
bao gồm các thông tin về quân trang, quân nhân, đơn vị, và chi tiết cấp phát. Quân
trang cấp phát gồm các loại như quần, áo, chăn màn, giày dép, mũ và được phân
loại theo cấp bậc, trong đó quân trang dành cho sĩ quan cấp tướng sẽ khác với quân
trang của sĩ quan các cấp khác. Mỗi quân nhân được quản lý với các thông tin n
họ tên, mã số, cấp bậc, hàm. Thông tin đơn vị gồm tên đơn vị, mã số và số lượng
quân nhân thuộc đơn vị đó. Hàng năm, doanh trại tiến hành cấp phát quân trang cho
lOMoARcPSD| 59561309
6
quân nhân, với số lượng và loại quân trang khác nhau tùy thuộc vào cấp bậc. Thông
tin cấp phát bao gồm thời gian cấp phát, đơn vị cấp phát. Hệ thống còn cần các chức
năng thêm, sửa, xóa, tìm kiếm và thống kê để quản lý hiệu quả dữ liệu quân trang,
quân nhân và các đợt cấp phát.
1.1.2 Công nghệ sử dụng
JDK: 23
Được chỉ định làm ngôn ngữ lập trình chính với phiên bản 23 qua cấu hình
<maven.compiler.source> và <maven.compiler.target>.
MySQL Connector
Thư viện: mysql-connector-java phiên bản 8.0.26.
Công dụng: Cung cấp khả năng kết nối và giao tiếp với cơ sở dữ liệu MySQL
từ ứng dụng Java.
Swing Layout và Absolute Layout:
Thư viện Swing Layout: swing-layout phiên bản 1.0.3 và Absolute Layout
của NetBeans (AbsoluteLayout phiên bản RELEASE220).
Công dụng: Hỗ trợ trong việc thiết kế giao diện người dùng (UI) cho ứng
dụng Java Swing.
iText PDF:
Thư viện: itextpdf phiên bản 5.5.13.2.
Công dụng: Tạo, chỉnh sửa, và quản lý các tài liệu PDF, hỗ trợ trong việc
xuất báo cáo hoặc lưu trữ dữ liệu dưới dạng PDF.
Maven
Quản lý Dependency: Được sử dụng để quản lý và tự động hóa các thư viện
cần thiết (dependencies).
Build và Packaging: Dự án này được đóng gói dưới dạng JAR file
(<packaging>jar</packaging>).
IDE: Apache NetBeans 23
Dependency Management: Maven
lOMoARcPSD| 59561309
7
1.1.3 Use case
Tổng quát:
Figure 1. Use case 1
Manage User
Figure 2. Use case 2
Manage Category
Figure 3. Use case 3
lOMoARcPSD| 59561309
8
Tương tự với Manage Uniform và Officer cũng có 2 tính năng tương tự là
thêm và sửa thông tin.
Manage Distribution
Phân tách mạng: Đặt cơ sở dữ liệu trong subnet riêng tư, máy chủ web trong
subnet công khai giúp bảo vệ các tài nguyên khỏi bị tấn công trực tiếp từ Internet.
Figure 4. Use case 4
View Distribution
Figure 5. Use case 5
1.1.4 Thiết kế hệ thống
i) Thiết kế giao diện người dùng (UI Design)
Đăng nhập hệ thống: Người dùng nhập thông tin tài khoản để truy cập vào hệ
thống. Tính năng này đảm bảo an toàn, cho phép phân quyền và quản lý người dùng.
Figure 6. Login
lOMoARcPSD| 59561309
9
Quản lý user: Chức năng thêm, sửa, và phân loại trạng thái tài khoản (Active
hay InActive).
Figure 7. Manage User
Quản lý Category: Bao gồm các thao tác thêm mới category, cập nhật
Name.
Figure 8. Manage Category
lOMoARcPSD| 59561309
10
Quản lý quân trang: Bao gồm các thao tác thêm mới, cập nhật các thông tin
như tên, thêm số lượng, giá, mô tả, phân loại.
Figure 9. Manage Uniform
Quản lý thông tin quân nhân: Quản lý danh sách quân nhân, bao gồm
thông tin cá nhân và cấp bậc.
Figure 10. Manage OfÏcer
lOMoARcPSD| 59561309
11
Quản lý cấp phát quân trang: Cho phép ghi nhận thông tin về số lượng quân
trang cấp phát, số lượng, thể loại. Có thể xoá các thành phần trong Distribution List
bằng cách click chuột. Và khi Save Distribution, thông tin sẽ được lưu ở sql và trích
xuất thông tin ra file PDF.
Figure 11. Manage Distribuon
Figure 12. PDF Output
ii) Cấu trúc thư mục và tài nguyên dự án
Cấu trúc Maven: src/main/java: Chứa mã nguồn chính của dự án.
src/main/resources: Chứa các tài nguyên như file cấu hình (như cấu hình kết nối cơ
sở dữ liệu). Chứa database_backup.sql, config.properties và image file.
1. database_backup.sql
lOMoARcPSD| 59561309
12
Đây là file SQL chứa cấu trúc và dữ liệu của cơ sở dữ liệu.
Được tạo bằng cách xuất (export) từ cơ sở dữ liệu MySQL của người lập
trình.
Khi người khác clone project, họ có thể sử dụng file database_backup.sql
này để khôi phục hoặc tạo lại cơ sở dữ liệu trên hệ thống của họ.
2. config.properties
Đây là file cấu hình chứa thông tin quan trọng để kết nối đến cơ sở dữ liệu.
config.properties thường lưu trữ các tham số như URL cơ sở dữ liệu, tên
người dùng, và mật khẩu.
Cấu trúc ví dụ của file config.properties:
db.url=jdbc:mysql://localhost:3306/military_uniforms?useSSL=false
db.username=root db.password=your_password
Khi ứng dụng Java khởi chạy, nó sẽ đọc file này để lấy thông tin kết nối đến
cơ sở dữ liệu, giúp tách biệt cấu hình và mã nguồn, giúp việc bảo trì dễ dàng
hơn.
Nếu thông tin kết nối thay đổi (ví dụ: khi triển khai trên môi trường khác),
chỉ cần cập nhật file config.properties mà không cần thay đổi mã nguồn.
3. image file
Thư mục images chứa các file hình ảnh mà ứng dụng cần sử dụng, chẳng hạn
như ảnh nền, biểu tượng, hoặc các ảnh liên quan đến giao diện người dùng.
Cách sử dụng:
Các file hình ảnh trong thư mục images có thể được truy cập bằng đường dẫn
nội bộ trong mã nguồn, ví dụ:
jLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/login-background01.png")));
Tóm tắt cấu trúc thư mục:
src
└── main
└── resources
├── database_backup.sql # File chứa cấu trúc và dữ liệu của csdl
├── config.properties # File chứa cấu hình kết nối cơ sở dữ liệu
└── images # Thư mục chứa các file hình ảnh
├── login.png # File ảnh cho nút đăng nhập
├── close.png # File ảnh cho nút đóng
lOMoARcPSD| 59561309
13
└── login-background01.png # File ảnh nền cho giao diện đăng
nhập
pom.xml: Đây là file cốt lõi của Maven, chứa thông tin cấu hình dự án như các
dependencies, plugin, và các thiết lập khác.
1. Thông tin dự án
Group ID: Xác định duy nhất dự án, thường là tên miền của tổ chức ngược lại
(e.g., com.example).
Artifact ID: Tên duy nhất của ứng dụng (e.g., quanly-quantrang).
Version: Phiên bản hiện tại của dự án, theo chuẩn MAJOR.MINOR.PATCH
(e.g., 1.0.0)
<groupId>group</groupId>
<artifactId>nhom4_de33_quanlyCapPhatQuanTrang</artifactId>
<version>1.0-SNAPSHOT</version>
2. Cấu hình phiên bản JDK
Để thiết lập phiên bản JDK, Maven sử dụng maven-compiler-plugin. Ở đây,
chúng ta sẽ cấu hình để sử dụng JDK 23.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>23</maven.compiler.source>
<maven.compiler.target>23</maven.compiler.target>
<exec.mainClass>group.nhom4_de33_quanlycapphatquantrang.App</exec.mainClass>
</properties>
3. Dependencies cần thiết
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<dependency>
lOMoARcPSD| 59561309
14
<groupId>org.swinglabs</groupId>
<artifactId>swing-layout</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.netbeans.external</groupId>
<artifactId>AbsoluteLayout</artifactId>
<version>RELEASE220</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
</dependencies>
4. Plugin Maven cho đóng gói dự án
Executable JAR: Để đóng gói ứng dụng thành một file JAR có thể chạy, sử
dụng maven-assembly-plugin
5. Các gói
- Gói app: Bao gồm app để chạy chương trình
- Gói entity: Bao gồm các đối tượng của bài toán
- Gói panel: Bao gồm các màn hình của app
lOMoARcPSD| 59561309
15
Chương 2: Cài đặt và triển khai
2.1 Cài đặt môi trường phát triển
2.1.1 Cài đặt JDK 23:
Tải JDK: Tải Java Development Kit (JDK) 23 từ trang Oracle hoặc
OpenJDK.
Cấu hình biến môi trường JAVA_HOME: Để thiết lập biến môi trường
JAVA_HOME, điều này cần thiết cho việc phát triển và chạy dự án với Java.
Kiểm tra cài đặt: Kiểm tra bằng lệnh java -version trong Terminal hoặc
Command Prompt để xác minh phiên bản JDK đã cài đặt thành công.
2.1.2 Cài đặt Apache NetBeans 23
Tải Apache NetBeans 23 từ trang chính thức của Apache NetBeans và tiến
hành cài đặt theo hướng dẫn.
Cấu hình NetBeans để nhận diện JDK 23 và kiểm tra rằng phiên bản Maven
tích hợp sẵn trong NetBeans đã được cài đặt.
2.2 Kiểm thử
2.2.1 Clone dự án
Task 1: Clone url
git clone <repository-url> cd
nhom4_de33_quanlyCapPhatQuanTrang.
Task 2: Cập nhật config.properties
db.url=jdbc:mysql://localhost:3306/military_uniforms?useSSL=false
db.username=root
db.password=your_password
lOMoARcPSD| 59561309
16
2.2.2 Thiết Lập Cơ Sở Dữ Liệu MySQL
Run file ConnectionProvider.java
Đoạn mã này tự động:
1. Kết nối với MySQL bằng cách đọc thông tin từ file config.properties.
2. Kiểm tra nếu database military_uniforms đã tồn tại.
o Nếu chưa tồn tại, nó sẽ tạo database mới và sử dụng nó.
3. Tự động thực thi các câu lệnh SQL từ file database_backup.sql để tạo bảng
và import dữ liệu cần thiết vào database.
2.2.3 Chạy chương trình
Cách 1: Chạy Jar File
DoubleClick vào file có đường dẫn:
…\nhom4_de33_quanlyCapPhatQuanTrang\target\
nhom4_de33_quanlyCapPhatQuanTrang-1.0-SNAPSHOT-jar-withdependencies.jar
Cách 2: Run file trong NetBeans
Run file Login.java
Tài khoản và mật khẩu đăng nhập:
superadmin@email.com | superadminpassword (Có quyền quản lý user)
thaoq6622@gmail.com | thaoq66622 (Không có quyền quản lý user)
Chương 3: Các chức năng cần cải tiến, tái cấu trúc
Chương này bao gồm các nội dung cần sửa đổi, do nhóm thiếu thời gian và giao tiếp
nên chưa thể đi đến kết luận và đưa vào sản phẩm cuối cùng.
Các Panel:
MainFrame: Màn hình chứa các nút bấm để điều hướng, lựa chọn đối tượng
muốn quản lý.
lOMoARcPSD| 59561309
17
Quản Lý Quân Trang: Màn hình thêm và quản lý quân trang.
lOMoARcPSD| 59561309
18
Quản Lý Đơn Vị: Màn hình thêm và quản lý đơn vị.
lOMoARcPSD| 59561309
19
Quản Lý Quân Nhân: Màn hình để thêm quân nhân, sửa thông tin quân nhân
hoặc xóa quân nhân.
Cấp Phát Quân Trang: Từ màn hình quản lý quân nhân, khi người dùng ấn
vào một quân nhân và ấn “Cấp Quân Trang”, màn hình này sẽ mở ra để chn
quân trang được cấp phát (Panel này vẫn còn đang lỗi và chưa hoạt đng theo
ý).
lOMoARcPSD| 59561309
20
Chương 4: Kết Luận
Nhìn chung, app quản lý cấp phát quân trang đã đặt được một độ hoàn thiện nhất
định mặc dù thời gian phát triển rất gấp gáp. App đã đáp ứng được các yêu cầu cơ
bản và xử lý được dữ liệu
Tuy nhiên, trong quá trình phát triển, các thành viên có một lỗi chung là thiếu giao
tiếp và không hiểu ý nhau dẫn tới mỗi người đều làm theo ý của mình, dẫn tới kết
quả cuối cùng không được như ý. Về điểm này, các thành viên cần lưu ý và khắc
phục trong tương lai.

Preview text:

lOMoAR cPSD| 59561309
TRƯỜNG ĐẠI HỌC PHENIKAA
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO HP: ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI 33:
QUẢN LÝ CẤP PHÁT QUÂN TRANG
Học phần: Lập trình hướng đối tượng (N14) Sinh viên:
1. Đào Nguyễn Thảo Quyên – 21011628
2. Lê Tiến Hưng - 20010960
Giảng viên hướng dẫn: Thầy Phạm Đức Bắc Năm học: 2024 – 2025
Hà nội, 05 tháng 11 năm 2024 lOMoAR cPSD| 59561309 LỜI CAM KẾT Họ và tên sinh viên:
1. Đào Nguyễn Thảo Quyên
Điện thoại liên lạc: 0397867870
Email: 21011628@st.phenikaa-uni.edu.vn 2. Lê Tiến Hưng
Điện thoại liên lạc: 0939624810
Email: 20010960@st.phenikaa-uni.edu.vn
Tôi/chúng tôi cam kết tất cả những tham khảo trong BTL – bao gồm hình ảnh,
bảng biểu, số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng và đầy đủ
nguồn gốc trong danh mục tài liệu tham khảo. Tôi xin hoàn toàn chịu trách
nhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường.
Hà Nội, ngày 05 tháng 11 năm 2024 Tác giả BTL
Họ và tên sinh viên lOMoAR cPSD| 59561309 MỤC LỤC
LỜI CAM KẾT ............................................................................................................ 2
DANH MỤC HÌNH ẢNH ............................................................................................ 4
PHÂN CÔNG CÔNG VIỆC ........................................................................................ 5
NỘI DUNG ................................................................................................................. 5

Chương 1: Tổng quan về dự án .................................................................................. 5
1.1 Triển khai .............................................................................................................. 5

1.1.1 Yêu cầu bài toán ...................................................................................... 5
1.1.2 Công nghệ sử dụng .................................................................................. 6
1.1.3 Use case ................................................................................................... 7
1.1.4 Thiết kế hệ thống ...................................................................................... 8
i) Thiết kế giao diện người dùng (UI Design) ............................................................ 8
ii) Cấu trúc thư mục và tài nguyên dự án ................................................................. 11
Chương 2: Cài đặt và triển khai ............................................................................... 15
2.1 Cài đặt môi trường phát triển ............................................................................. 15

2.1.1 Cài đặt JDK 23: ..................................................................................... 15
2.1.2 Cài đặt Apache NetBeans 23 ................................................................. 15

2.2 Kiểm thử .............................................................................................................. 15
2.2.1 Clone dự án ............................................................................................ 15
Task 1: Clone url ....................................................................................................... 15
Task 2: Cập nhật config.properties ........................................................................... 15
2.2.2 Thiết Lập Cơ Sở Dữ Liệu MySQL ......................................................... 16
2.2.3 Chạy chương trình ................................................................................. 16

Cách 1: Chạy Jar File .............................................................................................. 16
Cách 2: Run file trong NetBeans .............................................................................. 16
TÀI LIỆU THAM KHẢO.........................................................................................18 3 lOMoAR cPSD| 59561309 DANH MỤC HÌNH ẢNH
Figure 1. Use case 1..................................................................................................7
Figure 2. Use case 2..................................................................................................8
Figure 3. Use case 3..................................................................................................8
Figure 4. Use case 4..................................................................................................8
Figure 5. Use case 5..................................................................................................9
Figure 6. Login..........................................................................................................9
Figure 7. Manage User............................................................................................10
Figure 8. Manage Category.....................................................................................10
Figure 9. Manage Uniform......................................................................................11
Figure 10. Manage Officer.......................................................................................11
Figure 11. Manage Distribution...............................................................................12
Figure 12. PDF Output............................................................................................12 4 lOMoAR cPSD| 59561309 PHÂN CÔNG CÔNG VIỆC Tên công việc Người thực hiện Trạng thái
1.Phân tích yêu cầu, mô hình hoá Tất cả Đã hoàn thành
2.Khởi tạo Project with Maven Hưng Đã hoàn thành 3.Login Quyên Đã hoàn thành 4.Tạo cơ sở dữ liệu Quyên Đã hoàn thành 5.Tạo các đối tượng Hưng Đã hoàn thành 6.Manage User Quyên Đã hoàn thành 7.Manage Category Quyên Đã hoàn thành 8.Manage Officers Quyên Đã hoàn thành 9.Manage Distribution Quyên Đã hoàn thành 10.View Distribution Quyên Đã hoàn thành 11.Logout Quyên Đã hoàn thành 12.Tạo các panel Hưng Đã hoàn thành (chưa liên kết được) 13.Viết báo cáo Tất cả Đã hoàn thành NỘI DUNG
Chương 1: Tổng quan về dự án
1.1 Triển khai
1.1.1 Yêu cầu bài toán
Hệ thống quản lý cấp phát quân trang cho quân nhân trong doanh trại cần
bao gồm các thông tin về quân trang, quân nhân, đơn vị, và chi tiết cấp phát. Quân
trang cấp phát gồm các loại như quần, áo, chăn màn, giày dép, mũ và được phân
loại theo cấp bậc, trong đó quân trang dành cho sĩ quan cấp tướng sẽ khác với quân
trang của sĩ quan các cấp khác. Mỗi quân nhân được quản lý với các thông tin như
họ tên, mã số, cấp bậc, hàm. Thông tin đơn vị gồm tên đơn vị, mã số và số lượng
quân nhân thuộc đơn vị đó. Hàng năm, doanh trại tiến hành cấp phát quân trang cho 5 lOMoAR cPSD| 59561309
quân nhân, với số lượng và loại quân trang khác nhau tùy thuộc vào cấp bậc. Thông
tin cấp phát bao gồm thời gian cấp phát, đơn vị cấp phát. Hệ thống còn cần các chức
năng thêm, sửa, xóa, tìm kiếm và thống kê để quản lý hiệu quả dữ liệu quân trang,
quân nhân và các đợt cấp phát.
1.1.2 Công nghệ sử dụng JDK: 23
Được chỉ định làm ngôn ngữ lập trình chính với phiên bản 23 qua cấu hình và . • MySQL Connector
Thư viện: mysql-connector-java phiên bản 8.0.26.
Công dụng: Cung cấp khả năng kết nối và giao tiếp với cơ sở dữ liệu MySQL từ ứng dụng Java.
Swing Layout và Absolute Layout:
Thư viện Swing Layout: swing-layout phiên bản 1.0.3 và Absolute Layout
của NetBeans (AbsoluteLayout phiên bản RELEASE220).
Công dụng: Hỗ trợ trong việc thiết kế giao diện người dùng (UI) cho ứng dụng Java Swing. • iText PDF:
Thư viện: itextpdf phiên bản 5.5.13.2.
Công dụng: Tạo, chỉnh sửa, và quản lý các tài liệu PDF, hỗ trợ trong việc
xuất báo cáo hoặc lưu trữ dữ liệu dưới dạng PDF. • Maven
Quản lý Dependency: Được sử dụng để quản lý và tự động hóa các thư viện cần thiết (dependencies).
Build và Packaging: Dự án này được đóng gói dưới dạng JAR file (jar).
IDE: Apache NetBeans 23
Dependency Management: Maven 6 lOMoAR cPSD| 59561309 1.1.3 Use case • Tổng quát: Figure 1. Use case 1Manage User Figure 2. Use case 2Manage Category Figure 3. Use case 3 7 lOMoAR cPSD| 59561309
Tương tự với Manage Uniform và Officer cũng có 2 tính năng tương tự là thêm và sửa thông tin.
Manage Distribution
Phân tách mạng: Đặt cơ sở dữ liệu trong subnet riêng tư, máy chủ web trong
subnet công khai giúp bảo vệ các tài nguyên khỏi bị tấn công trực tiếp từ Internet. Figure 4. Use case 4View Distribution Figure 5. Use case 5
1.1.4 Thiết kế hệ thống i)
Thiết kế giao diện người dùng (UI Design)
Đăng nhập hệ thống: Người dùng nhập thông tin tài khoản để truy cập vào hệ
thống. Tính năng này đảm bảo an toàn, cho phép phân quyền và quản lý người dùng. Figure 6. Login 8 lOMoAR cPSD| 59561309
Quản lý user: Chức năng thêm, sửa, và phân loại trạng thái tài khoản (Active hay InActive). Figure 7. Manage User
Quản lý Category: Bao gồm các thao tác thêm mới category, cập nhật Name.
Figure 8. Manage Category 9 lOMoAR cPSD| 59561309
Quản lý quân trang: Bao gồm các thao tác thêm mới, cập nhật các thông tin
như tên, thêm số lượng, giá, mô tả, phân loại.
Figure 9. Manage Uniform
Quản lý thông tin quân nhân: Quản lý danh sách quân nhân, bao gồm
thông tin cá nhân và cấp bậc.
Figure 10. Manage OfÏcer 10 lOMoAR cPSD| 59561309
Quản lý cấp phát quân trang: Cho phép ghi nhận thông tin về số lượng quân
trang cấp phát, số lượng, thể loại. Có thể xoá các thành phần trong Distribution List
bằng cách click chuột. Và khi Save Distribution, thông tin sẽ được lưu ở sql và trích
xuất thông tin ra file PDF.
Figure 11. Manage Distribution Figure 12. PDF Output ii)
Cấu trúc thư mục và tài nguyên dự án
Cấu trúc Maven: src/main/java: Chứa mã nguồn chính của dự án.
src/main/resources: Chứa các tài nguyên như file cấu hình (như cấu hình kết nối cơ
sở dữ liệu). Chứa database_backup.sql, config.properties và image file. 1. database_backup.sql 11 lOMoAR cPSD| 59561309
• Đây là file SQL chứa cấu trúc và dữ liệu của cơ sở dữ liệu.
• Được tạo bằng cách xuất (export) từ cơ sở dữ liệu MySQL của người lập trình.
• Khi người khác clone project, họ có thể sử dụng file database_backup.sql
này để khôi phục hoặc tạo lại cơ sở dữ liệu trên hệ thống của họ. 2. config.properties
• Đây là file cấu hình chứa thông tin quan trọng để kết nối đến cơ sở dữ liệu.
• config.properties thường lưu trữ các tham số như URL cơ sở dữ liệu, tên
người dùng, và mật khẩu.
• Cấu trúc ví dụ của file config.properties:
db.url=jdbc:mysql://localhost:3306/military_uniforms?useSSL=false
db.username=root db.password=your_password
• Khi ứng dụng Java khởi chạy, nó sẽ đọc file này để lấy thông tin kết nối đến
cơ sở dữ liệu, giúp tách biệt cấu hình và mã nguồn, giúp việc bảo trì dễ dàng hơn.
• Nếu thông tin kết nối thay đổi (ví dụ: khi triển khai trên môi trường khác),
chỉ cần cập nhật file config.properties mà không cần thay đổi mã nguồn. 3. image file
• Thư mục images chứa các file hình ảnh mà ứng dụng cần sử dụng, chẳng hạn
như ảnh nền, biểu tượng, hoặc các ảnh liên quan đến giao diện người dùng. Cách sử dụng:
Các file hình ảnh trong thư mục images có thể được truy cập bằng đường dẫn
nội bộ trong mã nguồn, ví dụ:
jLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/login-background01.png")));
Tóm tắt cấu trúc thư mục: src └── main └── resources
├── database_backup.sql # File chứa cấu trúc và dữ liệu của csdl
├── config.properties # File chứa cấu hình kết nối cơ sở dữ liệu
└── images # Thư mục chứa các file hình ảnh
├── login.png # File ảnh cho nút đăng nhập
├── close.png # File ảnh cho nút đóng 12 lOMoAR cPSD| 59561309
└── login-background01.png # File ảnh nền cho giao diện đăng nhập
pom.xml: Đây là file cốt lõi của Maven, chứa thông tin cấu hình dự án như các
dependencies, plugin, và các thiết lập khác. 1. Thông tin dự án
Group ID: Xác định duy nhất dự án, thường là tên miền của tổ chức ngược lại (e.g., com.example).
Artifact ID: Tên duy nhất của ứng dụng (e.g., quanly-quantrang).
Version: Phiên bản hiện tại của dự án, theo chuẩn MAJOR.MINOR.PATCH (e.g., 1.0.0) group
nhom4_de33_quanlyCapPhatQuanTrang 1.0-SNAPSHOT
2. Cấu hình phiên bản JDK
Để thiết lập phiên bản JDK, Maven sử dụng maven-compiler-plugin. Ở đây,
chúng ta sẽ cấu hình để sử dụng JDK 23. UTF-8 23 23
group.nhom4_de33_quanlycapphatquantrang.App 3. Dependencies cần thiết mysql mysql-connector-java 8.0.26 13 lOMoAR cPSD| 59561309 org.swinglabs swing-layout 1.0.3 org.netbeans.external AbsoluteLayout RELEASE220 com.itextpdf itextpdf 5.5.13.2
4. Plugin Maven cho đóng gói dự án
Executable JAR: Để đóng gói ứng dụng thành một file JAR có thể chạy, sử dụng maven-assembly-plugin 5. Các gói
- Gói app: Bao gồm app để chạy chương trình
- Gói entity: Bao gồm các đối tượng của bài toán
- Gói panel: Bao gồm các màn hình của app 14 lOMoAR cPSD| 59561309
Chương 2: Cài đặt và triển khai
2.1 Cài đặt môi trường phát triển
2.1.1 Cài đặt JDK 23:
Tải JDK: Tải Java Development Kit (JDK) 23 từ trang Oracle hoặc OpenJDK.
Cấu hình biến môi trường JAVA_HOME: Để thiết lập biến môi trường
JAVA_HOME, điều này cần thiết cho việc phát triển và chạy dự án với Java.
Kiểm tra cài đặt: Kiểm tra bằng lệnh java -version trong Terminal hoặc
Command Prompt để xác minh phiên bản JDK đã cài đặt thành công.
2.1.2 Cài đặt Apache NetBeans 23
• Tải Apache NetBeans 23 từ trang chính thức của Apache NetBeans và tiến
hành cài đặt theo hướng dẫn.
• Cấu hình NetBeans để nhận diện JDK 23 và kiểm tra rằng phiên bản Maven
tích hợp sẵn trong NetBeans đã được cài đặt. 2.2 Kiểm thử
2.2.1 Clone dự án Task 1: Clone url git clone cd
nhom4_de33_quanlyCapPhatQuanTrang.
Task 2: Cập nhật config.properties
db.url=jdbc:mysql://localhost:3306/military_uniforms?useSSL=false db.username=root db.password=your_password 15 lOMoAR cPSD| 59561309
2.2.2 Thiết Lập Cơ Sở Dữ Liệu MySQL
Run file ConnectionProvider.java
Đoạn mã này tự động:
1. Kết nối với MySQL bằng cách đọc thông tin từ file config.properties.
2. Kiểm tra nếu database military_uniforms đã tồn tại.
o Nếu chưa tồn tại, nó sẽ tạo database mới và sử dụng nó.
3. Tự động thực thi các câu lệnh SQL từ file database_backup.sql để tạo bảng
và import dữ liệu cần thiết vào database.
2.2.3 Chạy chương trình
Cách 1: Chạy Jar File
DoubleClick vào file có đường dẫn:
…\nhom4_de33_quanlyCapPhatQuanTrang\target\
nhom4_de33_quanlyCapPhatQuanTrang-1.0-SNAPSHOT-jar-withdependencies.jar
Cách 2: Run file trong NetBeans Run file Login.java
Tài khoản và mật khẩu đăng nhập:
superadmin@email.com | superadminpassword (Có quyền quản lý user)
thaoq6622@gmail.com | thaoq66622 (Không có quyền quản lý user)
Chương 3: Các chức năng cần cải tiến, tái cấu trúc
Chương này bao gồm các nội dung cần sửa đổi, do nhóm thiếu thời gian và giao tiếp
nên chưa thể đi đến kết luận và đưa vào sản phẩm cuối cùng. Các Panel:
MainFrame: Màn hình chứa các nút bấm để điều hướng, lựa chọn đối tượng muốn quản lý. 16 lOMoAR cPSD| 59561309
Quản Lý Quân Trang: Màn hình thêm và quản lý quân trang. 17 lOMoAR cPSD| 59561309
Quản Lý Đơn Vị: Màn hình thêm và quản lý đơn vị. 18 lOMoAR cPSD| 59561309
Quản Lý Quân Nhân: Màn hình để thêm quân nhân, sửa thông tin quân nhân hoặc xóa quân nhân.
Cấp Phát Quân Trang: Từ màn hình quản lý quân nhân, khi người dùng ấn
vào một quân nhân và ấn “Cấp Quân Trang”, màn hình này sẽ mở ra để chọn
quân trang được cấp phát (Panel này vẫn còn đang lỗi và chưa hoạt động theo ý). 19 lOMoAR cPSD| 59561309 Chương 4: Kết Luận
Nhìn chung, app quản lý cấp phát quân trang đã đặt được một độ hoàn thiện nhất
định mặc dù thời gian phát triển rất gấp gáp. App đã đáp ứng được các yêu cầu cơ
bản và xử lý được dữ liệu
Tuy nhiên, trong quá trình phát triển, các thành viên có một lỗi chung là thiếu giao
tiếp và không hiểu ý nhau dẫn tới mỗi người đều làm theo ý của mình, dẫn tới kết
quả cuối cùng không được như ý. Về điểm này, các thành viên cần lưu ý và khắc phục trong tương lai. 20