Giới thiệu công ty LapTrinhCity
- Trung tâm đào tạo tin học ngắn hạn LapTrinhCity đang đào tạo các khóa tin học ngắn hạn theo chuyên đề như Photoshop, Java, Web…
- Việc quản lý khóa học, học viên, bảng điểm và doanh thu hiện đang thực hiện thông qua exel.
Yêu cầu của công ty
Yêu cầu của công ty LapTrinhCity
Hiện tại, trung tâm đang đối mặt với khó khăn do số lượng học viên ngày càng tăng, dẫn đến việc quản lý dữ liệu trên Excel trở nên phức tạp LapTrinhCity mong muốn phát triển một phần mềm nhằm giải quyết những vấn đề này một cách hiệu quả.
* Yêu cầu về chức năng nghiệp vụ:
Các chuyên đề (Java,Photoshop…)
Các khóa học (Được tạo ra từ các chuyên đề)
Học viên của khóa học
Người đăng ký học (người học)
Doanh thu , số lượng người học từng chuyên đề theo năm
Số lượng người học đăng ký theo tháng
Tổng hợp bảng điểm của các khóa học
* Yêu cầu về hệ thống:
Phần mềm được viết cho 2 đối tượng sử dụng là trưởng phòng và nhân viên giáo vụ với yêu cầu bảo mật như sau :
- Tất cả mọi thành viên phải đăng nhập mới được sử dụng phần mềm
- Trưởng phòng đào tạo thực hiện được tất cả các chức năng
- Nhân viên đào tạo không được phép xóa và xem doanh thu
Ứng dụng phải được thực hiện với công nghệ Swing và JDBC
Hệ quản trị CSDL : SQL Server 2008+
Đánh giá tính khả thi
Bản thân đủ năng lực để thực hiện dự án
Lập kế hoạch dự án
Lập kế hoạch kế hoạch dự án theo mẫu sau
TT H ẠNG MỤC B ẮT ĐẦU K ẾT THÚC K ẾT QUẢ
1 Phân tích yêu cầu khách hàng 17/9/2021 17/9/2021 Completed
1.1 Vẽ sơ đồ use cases 17/9/2021 17/9/2021 Completed
1.2 Đặc tả yêu cầu hệ thống 17/9/2021 17/9/2021 Completed
1.3 Vẽ sơ đồ triển khai và yêu cầu hệ thống
2.1 Thiết kế mô hình công nghệ
4.1 Xây dựng kịch bảng kiểm thử
2 PHÂN TÍCH YÊU CẦU KHÁCH HÀNG
Đặc tả yêu cầu hệ thống (SRS)
Quản lý nhân viên
Chức năng quản lý nhân viên cho phép quản lý thông tin nhân viên hiệu quả Nó bao gồm các yêu cầu như liệt kê danh sách nhân viên, xem chi tiết thông tin từng nhân viên, thêm nhân viên mới, cập nhật thông tin hiện có và xóa nhân viên không còn làm việc.
Mỗi nhân viên được xác định bởi các thông tin quan trọng như mã nhân viên, họ và tên, mật khẩu đăng nhập, cùng với vai trò của họ trong tổ chức, bao gồm trưởng phòng và nhân viên bình thường.
Sau khi đăng nhập thì nhân viên nào cũng có thể sử dụng chức năng này,ngoại trừ xóa thì chỉ có trưởng phòng mới sử dụng được.
Quản lý chuyên đề
Chức năng quản lý chuyên đề cho phép người dùng quản lý thông tin chuyên đề một cách hiệu quả Chức năng này bao gồm các yêu cầu như liệt kê danh sách các chuyên đề hiện có, xem thông tin chi tiết của từng chuyên đề, thêm chuyên đề mới, cũng như cập nhật hoặc xóa các chuyên đề đã tồn tại.
Thông tin của mỗi chuyên đề gồm: mã chuyên đề, tên chuyên đề, học phí, thời lượng ( tính theo giờ), hình logo, mô tả chuyên đề.
Sau khi đăng nhập thì nhân viên nào cũng có thể sử dụng chức năng này, ngoại trừ xóa thì chỉ có trưởng phòng mới sử dụng được
Quản lý người học
Chức năng quản lý người học cho phép quản lý thông tin của người đăng ký học, bao gồm việc liệt kê danh sách người đăng ký, xem chi tiết thông tin từng người, thêm người học mới, cập nhật thông tin và xóa người học đã tồn tại.
Thông tin của mỗi người học gồm: mã người đăng kí học, họ và tên, ngày sinh, giới tính, số điện thoại, email, ghi chú.
Sau khi đăng nhập thì nhân viên nào cũng có thể sử dụng chức năng này,ngoại trừ xóa thì chỉ có trưởng phòng mới sử dụng được.
Quản lý khóa học
Chức năng quản lý khóa học cho phép người dùng quản lý thông tin khóa học một cách hiệu quả Chức năng này bao gồm việc liệt kê danh sách các khóa học, xem chi tiết thông tin từng khóa học, thêm mới khóa học, cũng như cập nhật hoặc xóa những khóa học đã tồn tại.
Thông tin của mỗi khóa học gồm: mã khóa học, mã chuyên đề, học phí, thời lượng, ngày khai giảng, ghi chú.
Sau khi đăng nhập thì nhân viên nào cũng có thể sử dụng chức năng này,ngoại trừ xóa thì chỉ có trưởng phòng mới sử dụng được.
Quản lý học viên
Chức năng quản lý học viên cho phép quản lý thông tin của học viên một cách hiệu quả Nó bao gồm các yêu cầu như liệt kê danh sách học viên, xem chi tiết thông tin từng học viên, cập nhật thông tin học viên, xóa học viên đã tồn tại và tìm kiếm học viên nhanh chóng.
Thông tin học viên gồm : Mã học viên , mã khóa học , mã người học , điểm
Khi đăng nhập thì nhân viên nào cũng sửa dụng được chức năng này , ngoại trừ xóa chỉ có trưởng phòng mới sử dụng được
Quản lý tổng hợp – thống kê
Tổng hợp và thống kê dữ liệu học viên theo từng năm, bao gồm bảng điểm theo khóa học, điểm tổng hợp theo từng chuyên đề, và doanh thu từ các chuyên đề.
Người học theo từng năm : Năm đăng ký , số người học , ngày đầu tiên , ngày cuối cùng
Bảng điểm theo khóa học bao gồm mã người học, họ tên người học, điểm và xếp loại Đồng thời, tổng hợp điểm khóa học theo từng chuyên đề sẽ hiển thị tên chuyên đề, tổng số học viên, điểm cao nhất, điểm thấp nhất và điểm trung bình.
Doanh thu theo từng chuyên đề : Chuyên đề , số khóa học , số học viên , doanh thu ,học phí cao nhất , học phí thấp nhất , học phí trung bình
Khi đăng nhập thì nhân viên nào cũng sửa dụng được chức năng này , ngoại trừ xóa chỉ có trưởng phòng mới sử dụng được
Đăng nhập
Chức năng đăng nhập cho phép trưởng phòng và nhân viên của LapTrinhCity truy cập vào hệ thống quản lý đào tạo thông qua tài khoản và mật khẩu riêng biệt.
Yêu cầu của chức năng này là đăng nhập ứng dụng , kết thúc ứng dụng
Thông tin đăng nhập gồm tên đăng nhập , mật khẩu
ĐỐI TƯỢNG SỬ DỤNG Đối tượng đăng nhập là những người làm việc trong LapTrinhCity bao gồm trưởng phòng và nhân viên
Đổi mật khẩu
Chức năng đổi mật khẩu được dùng để đổi mật khẩu gồm nhân viên và trưởng phòng
Mật khẩu cũ , mật khẩu mới , xác nhận lại mật khẩu mới
Nhân viên hoặc trưởng phòng
Sơ đồ triển khai và yêu cầu hệ thống
Sơ đồ triển khai
Ứng dụng phần mềm được xây dựng để phục vụ cho nhiều người dùng nhưng cơ sở dữ liệu thì lưu trữ tập trung.
Yêu cầu hệ thống
Cần một máy cài SQL Server 2008+ Máy này cần hệ điều hành window xp trở lên
Các máy nhân viên phòng đào tạo cài phần mềm edusys Các máy nhân viên cần JDK 1.8+ với hệ điều hành bất kỳ
Dựa vào tài liệu đã phân tích ở mục 2 để phác thảo: o Mô hình công nghệ o Giao diện o Thực thể
Mô hình công nghệ ứng dụng
Phác thảo mô hình công nghệ ứng dụng của hệ thống phần mềm Giải thích rõ các thành phần trong mô hình
Thực thể
Sơ đồ quan hệ thực thể (ERD)
Vẽ sơ đồ thể hiện mối quan hệ giữa các thực thể Nên chia thành 2 mức(tổng quát và chi tiết) để dễ đọc, dễ hiểu.
Chi tiết thực thể
Thiết kế chi tiết thực thể bao gồm việc xác định và thiết kế các thuộc tính cần thiết cho từng thực thể, dựa trên các thông tin liên quan được cung cấp trong tài liệu yêu cầu phần mềm (SRS).
MaNV String Mã nhân viên
HoTen String Họ và tên nhân viên
VaiTro Boolean Vai trò gồm trưởng phòng và nhân viên bình thường
Giao diện
Sơ đồ tổ chức giao diện
Phác thảo sơ đồ liên kết giữa các giao diện chức năng trong ứng dụng
Giao diện cửa sổ chính
Phác thảo giao diện cho cửa sổ chính và mô tả các hoạt động trên giao diện
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Đưa cửa sổ ra giữa màn hình
2 [Đăng xuất] Click Đăng xuất và hiển thị DangNhapJDialog
3 [Đổi mật khẩu] Click Hiển thị DoiMatKhauJDialog
4 [Chuyên đề] Click Hiển thị ChuyenDeJDialog
5 [Bảng điểm] Click Hiển thị ThongKeJDialog.Tabs[0]
Giao diện chức năng
Phác thảo giao diện cho tất cả các cửa sổ chức năng và các cửa sổ hỗ trợ tổ chức
3.3.3.1 Cửa sổ quản lý nhân viên
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Hiển thị tất cả nhân viên lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một nhân viên mới với dữ liệu nhập từ form
3 [Sửa] Click Validation, Cập nhật thông tin nhân viên đang xem trên form vào CSDL
4 [Xóa] Click Xóa nhân viên có mã đang xem trên form
5 [Mới] Click Xóa trắng form
6 Bảng Click Hiển thị thông tin của nhân viên trên hàng được chọn của bảng lên form để xem
7 [||] Click Hiển thị thông tin của nhân viên của hàng cuối cùng của bảng lên form để xem
3.3.3.2 Cửa sổ quản lý chuyên đề
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
3.3.3.3 Cửa sổ quản lý người học
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
3.3.3.4 Cửa sổ quản lý khóa học
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
3.3.3.5 Cửa sổ quản lý học viên
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
Các giao diện hỗ trợ khác
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
3.3.4.3 Cửa sổ đổi mật khẩu
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
Tạo giao diện với Swing
Cửa sổ chính (EduSysJFrame)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
1 JF RAME NAME E DU S YS JF RAME
TITLE HỆ THỐNG QUẢN LÝ
I CON I MAGE FPT - LOGO PNG
2 JM ENU B AR NAME MENU B AR
2.1 JM ENU NAME MNU H E T HONG
2.1.1 JM ENU I TEM NAME MNI D ANG N HAP
TEXT Đ ĂNG NHẬP ICON KEY PNG ACCELERATOR CTRL+L
2.2 JM ENU NAME MNU Q UAN L Y
2.2.1 JM ENU I TEM NAME MNI C HUYEN D E
TEXT C HUYÊN ĐỀ ICON CHUYEN - DE PNG ACCELERATOR CTRL+F1
Các cửa sổ quản lý
4.1.2.1 Cửa sổ quản lý nhân viên (NhanVienJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.2.2 Cửa sổ quản lý chuyên đề (ChuyenDeJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.2.3 Cửa sổ quản lý người học (NguoiHocJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.2.4 Cửa sổ quản lý khóa học (KhoaHocJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.2.5 Cửa sổ quản lý học viên (HocVienJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
Cửa sổ tổng hợp thống kê (ThongKeJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
Các giao diện hỗ trợ khác
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.4.2 Cửa sổ giới thiệu (GioiThieuJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.4.3 Cửa sổ đăng nhập (DangNhapJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
4.1.4.4 Cửa sổ đổi mật khẩu (DoiMatKhauJDialog)
G IAO DIỆN Đ ẶT TÊN CÁC ĐIỀU KHIỂN
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
Tạo CSDL với SQL Server
Sơ đồ quan hệ
Hình: Sơ đồ quan hệ
Ràng buộc: Mô tả ràng buộc của các quan hệ
Chi tiết các bảng
Mỗi bảng cần viết theo hướng dẫn sau đây:
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaNV NVARCHAR(20) PK, NOT NULL Mã nhân viên
MatKhau NVARCHAR(50) NOT NULL Mật khẩu
HoTen NVARCHAR(50) NOT NULL Họ và tên
VaiTro BIT DEFAULT 0 1 là trưởng phòng, 0 là nhân viên
C ÂU LỆNH SQL CƠ BẢN
INSERT INTO NhanVien (MaNV, MatKhau, HoTen, VaiTro) VALUES (?, ?, ?, ?)
UPDATE NhanVien SET MatKhau = ?, HoTen = ?, VaiTro = ? WHERE MaNV = ?
DELETE FROM NhanVien WHERE MaNV = ?
SELECT * FROM NhanVien WHERE MaNV = ?
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
C ÂU LỆNH SQL CƠ BẢN
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
C ÂU LỆNH SQL CƠ BẢN
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
C ÂU LỆNH SQL CƠ BẢN
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
C ÂU LỆNH SQL CƠ BẢN
Thủ tục lưu
Mỗi thủ tục lưu cần làm rõ các vấn đề sau đây: o Mô tả, mục đích sử dụng o Tham số vào o Kết quả ra
M Ã NGUỒN CREATE PROC sp_BangDiem(@MaKH INT)
SELECT nh.MaNH, nh.HoTen, hv.Diem FROM HocVien hv
JOIN NguoiHoc nh ON nh.MaNH=hv.MaNHWHERE hv.MaKH = @MaKH
ORDER BY hv.Diem DESC END
M Ô TẢ Proc này được sử dụng để truy vấn bảng điểm của khóa học
T HAM SỐ @MaKH là mã khóa học cần truy vấn bảng điểm
K ẾT QUẢ [MaNH, TenNH, Diem]
Lập trình CSDL
Mô hình tổ chức lập trình CSDL
Hình và mô tả (DAO+JdbcHelper+Entity+CSDL)
JdbcHelper (XJdbc)
Hướng dẫn sử dụng các phương thức tiện ích của XJdbc
XJdbc là lớp tiện ích hỗ trợ lập trình JDBC Lớp này gồm 3 phương thức được mô tả trong phần hướng dẫn sử dụng sau đây.
The method XJdbc.query(String sql, Object args) is used to query data from a database The 'sql' parameter contains a SELECT statement with placeholders represented by '?', while the 'args' parameter provides the values for these placeholders The result of this method is a ResultSet containing the queried data.
The XJdbc.update(String sql, Object args) method is used for database operations such as INSERT, UPDATE, and DELETE The sql parameter contains the SQL command with placeholders represented by question marks (?) The args parameter provides the values corresponding to these placeholders The method returns the number of records affected by the operation.
XJdbc.value(String sql, Object…args) là phương thức dùng để truy vấn một giá trị từ cơ sở dữ liệu Tham số sql là câu lệnh SELECT chứa các dấu hỏi (?) để chỉ định vị trí của các tham số Các giá trị được cung cấp cho các dấu hỏi này được truyền qua tham số args Kết quả trả về là một đối tượng chứa giá trị truy vấn từ cơ sở dữ liệu.
Entity Class và DAO
Mỗi mục cần làm rõ 2 vấn đề sau o Mô hình và mô tả lớp thực thể o Mô hình và mô tả lớp DAO
EduSysDAO là một lớp trừu tượng tổng quát, định nghĩa các hành động truy xuất cơ sở dữ liệu cơ bản mà bất kỳ lớp DAO cụ thể nào cũng cần phải có Các phương thức để thực hiện truy xuất cơ sở dữ liệu được mô tả rõ ràng.
T P HƯƠNG THỨC M Ô TẢ HOẠT ĐỘNG
1 insert(E) Thêm mới một bản ghi với dữ liệu là entity E
2 update(E) Cập nhật một bản ghi với dữ liệu là entity E
3 delete(K) Xóa một bản ghi với mã K
4 selectById(K): E Truy vấn một bản ghi với mã là K
5 selectAll(): List Truy vấn tất cả các bản ghi
6 selectBySql(String, Object…): List Truy vấn các bản ghi tùy vào sql và args
Trong một lớp DAO cụ thể, các DAO con sẽ triển khai mã cho các phương thức truy xuất cơ sở dữ liệu cơ bản, sử dụng E là lớp Entity và K là kiểu khóa chính Đồng thời, các DAO này có thể bổ sung thêm các hoạt động truy xuất đặc thù cần thiết cho từng trường hợp cụ thể.
NhanVien Là lớp thực thể mô tả dữ liệu nhân viên
NhanVienDAO Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là NhanVien
K được cụ thể hóa là String
SQL là các câu lệnh thao tác dữ liệu trên bảng NhanVien
Thư viện tiện ích
Mô tả các lớp tiện ích sau tương tự JdbcHelper(XJdbc) ở mục 4.3.2 o XImage o XDate o MsgBox o Auth
Lập trình nghiệp vụ
Cửa sổ chính EduSysJFrame
1 init() Mở cửa sổ chào
Mở cửa sổ đăng nhập Bắt đầu hiển thị đồng hồ hệ thống
2 openDoiMatKhau() Mở cửa sổ đổi mật khẩu
Các cửa sổ hỗ trợ tổ chức
1 init() Hiển thị cửa sổ ở giữa màn hình
Tăng giá trị ProgressBar, đóng cửa sổ khi giá trị bằng max
Các cửa sổ chức năng quản lý
Cửa sổ chức năng tổng hợp - thống kê
5 KIỂM THỬ PHẦN MỀM VÀ SỬA LỖI
DangNhapJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
1 Đăng nhập để trống tên và mật khẩu
2 Đăng nhập sai tên TeoVN, songsong Sai tên đăng nhập not
3 Đăng nhập sai mật khẩu TeoNV, 123 Sai mật khẩu 95
4 Đăng nhập đúng TeoNV, songlong Đóng cửa sổ
DoiMatKhauJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
NhanVienJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
ChuyenDeJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
NguoiHocJDialog
H M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
KhoaHocJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
HocVienJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
ThongKeJDialog
M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG ĐỢI F IX
6 ĐÓNG GÓI VÀ TRIỂN KHAI
Sản phẩm phần mềm
1 Setup.exe File cài đặt
2 EduSys.sql Cơ sở dữ liệu
3 Readme.txt Hướng dẫn cài đặt
4 Guide.docx Hướng dẫn sử dụng