DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng DỰ ÁN MẪU - app quản lí thư viện của môn dự án trường cao đẳng fpt polytechnic có đầy đủ chức năng
Trang 1TÀI LIỆU DỰ ÁN
QUẢN LÝ THƯ VIỆN - L IB M ANA
GIẢNG VIÊN : TRẦN THỊ HƯỜNG
HỌC VIÊN : NGUYỄN NGỌC THIÊN
LỚP/KỲ : MD18302/FA23
SEPTEMBER 17, 2023 PHUONG NAM LIBRARY
Trang 2
MỤC LỤC
2.3 Sơ đồ triển khai và yêu cầu hệ thống 4
Trang 34.1 Tạo giao diện 11
Trang 41 GIỚI THIỆU DỰ ÁN
1.1 G IỚI THIỆU PNL IB
Thư viện Phương Nam (PNLib) là một thư viện nhỏ, chuyên cho thuê các loại sáchphục vụ cho các bạn đọc như “Kinh tế”, “Ngoại Ngữ”, “Công nghệ thông tin”, “Ẩmthực”, “Sức Khoẻ” … Việc quản lý các đầu sách, các phiếu mượn sách, thành viên hiệnđang được thư viện quản lý trên sổ sách bằng tay Việc này gây khó khăn cho thư viện,tốn thời gian ghi chép, và sai sót nhiều trong thống kê
Vì vậy, PNLib mong muốn xây dựng một phần mềm chạy trên thiết bị di động cánhân để hỗ trợ giải quyết các khó khăn trên
1.2 Y ÊU CẦU CỦA PNL IB
Thống kê 10 sách mượn nhiều nhất
Thống kê doanh thu theo thời gian chọn (từ ngày -> đến ngày)
BẢO MẬT
Muốn truy cập vào ứng dụng, admin và thủ thư phải đăng nhập
Admin có quyền tạo tài khoản thủ thư
Admin & thủ thư có quyền đổi mật khẩu
Trang 51 Phân tích yêu cầu khách hàng 13/09/2023 19/09/2023 Đang làm1.1 Vẽ sơ đồ use cases 13/09/2023 16/09/2023 Hoàn thành
Trang 62 PHÂN TÍCH YÊU CẦU KHÁCH HÀNG
đã tồn tài
2 Dữ liệu liên quan:
Thông tin của mỗi thành viên gồm: mã loại sách, họ tên thành viên, năm sinhthành viên
3 Đối tượng sử dụng:
Sau khi đăng nhập thì tất cả người dùng có thể sử dụng chức năng này
2.2.2 Q UẢN LÝ LOẠI SÁCH
1 M Ô TẢ CHỨC NĂNG :
Trang 7Chức năng "Loại sách" trong phần mềm giúp thư viện quản lý thông tin về các loạisách một cách dễ dàng và hiệu quả Nó giúp tổ chức, cập nhật và tìm kiếm thôngtin về các loại sách trong thư viện một cách thuận tiện và nhanh chóng.
2 D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan đến chức năng loại sách gồm: mã loại sách, tên loại sách, mô tả,
2.D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan đến quản lý sách gồm: mã sách, tên sách, tác giả, năm xuất bản,
mô tả, thể loại, ngôn ngữ, số lượng sách
3.Đ ỐI TƯỢNG SỬ DỤNG :
Sau khi đăng nhập thì tất cả người dùng có thể sử dụng chức năng này
2.2.4 Q UẢN LÝ PHIẾU MƯỢN
1.M Ô TẢ CHỨC NĂNG :
Chức năng "Quản lý phiếu mượn" trong phần mềm PNLib giúp thư viện quản lýthông tin về các phiếu mượn sách một cách dễ dàng và hiệu quả Nó giúp tổ chức,cập nhật và tìm kiếm thông tin về các phiếu mượn sách trong thư viện một cáchthuận tiện và nhanh chóng
2.D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan chức năng phiếu mượn gồm: số phiếu mượn, tên người mượn,danh sách sách mượn, ngày mượn, ngày hết hạn, ngày trả sách
Trang 8giúp điều chỉnh quy trình và cung cấp sự đánh giá về sự phục vụ và sử dụng dịch
vụ của thư viện
2.D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan đến chức năng thống kê gồm: dữ liệu sách, dữ liệu phiếu mượn,
dữ liệu đọc giả, dữ liệu thời gian, dữ liệu tác giả, dữ liệu tình trạng sách
2.D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan đến chức năng đăng nhập gồm: dữ liệu người dùng, dữ liệu xác thực, dữ liệu quyền truy cập, dữ liệu đăng nhập và hoạt động
3.Đ ỐI TƯỢNG SỬ DỤNG :
Tùy thuộc vào vai trò và quyền truy cập, đối tượng sử dụng chức năng đăng nhậptrong PNLib có thể khác nhau và sẽ có quyền truy cập vào các tính năng và chứcnăng tương ứng
2.2.7 Đ ỔI MẬT KHẨU
1.M Ô TẢ CHỨC NĂNG :
Tóm lại, chức năng đổi mật khẩu trong phần mềm cho phép người dùng thay đổimật khẩu hiện tại của họ để tăng cường bảo mật tài khoản và đảm bảo tính riêng tư
và an toàn của thông tin cá nhân
2.D Ữ LIỆU LIÊN QUAN :
Dữ liệu liên quan đến chức chức năng đổi mật khẩu gồm: dữ liệu người dùng,
dữ liệu mật khẩu, dữ liệu cơ sở dữ liệu
3.Đ ỐI TƯỢNG SỬ DỤNG :
Sau khi đăng nhập thì tất cả người dùng có thể sử dụng chức năng này
Trang 92.3 S Ơ ĐỒ TRIỂN KHAI VÀ YÊU CẦU HỆ THỐNG
2.3.1 S Ơ ĐỒ TRIỂN KHAI
2.3.2 Y ÊU CẦU HỆ THỐNG
Máy cần hệ điều hành window 10 trở lên
Máy cài đặt phần mềm android studio
Trang 10 GUI - Graphic User Interface: Thiết kế giao diện cho người sử dụng.
Business Logic Programming: Lập trình cho các chức năng nghiệp vụ trong ứng dụng.
Database: Thiết kế CSDL cho ứng dụng.
Controllers: Xử lí nghiệp vụ (Business Logic).
Enitity, DAO: thực thể và Data Access Object.
Trang 113.2.2 C HI TIẾT THỰC THỂ
3.2.2.1 Thực thể Thủ Thư
Tên cột Kiểu Ràng buộc Ghi chú MaTT NCHAR(5) PK,NOT NULL Mã thủ thư(người dùng)
hoTen NVARCHAR(50) Họ tên người dùng
3.2.2.2 Thực thể Phiếu Mượn
Trang 12Tên cột Kiểu Ràng buộc Ghi chú MaPhieuMuon NCHAR(5) PK, NOT NULL Mã Phiếu Mượn
MaSach NCHAR(5) FK, NOT NULL Mã Sách
MaThuThu NCHAR(5) FK, NOT NULL Mã Thủ Thư(người dùng) NgayMuon DATE NOT NULL Ngày Mượn
NgayTra DATE NOT NULL Ngày Trả Sách
TienThue INT NOT NULL Tiền Thuế
MaTV NCHAR(5) FK Mã Thành Viên
3.2.2.3 Thực thể Thành viên
Tên cột Kiểu Ràng buộc Ghi chú
MaTV NVARCHAR(50) PK Tên đăng nhập
Năm sinh NCHAR(10) NOT NULL Số điện thoại
hoTen NVARCHAR(50) Họ tên người dùng
Tên cột Kiểu Ràng buộc Ghi chú
MaSach NCHAR(5) PK, NOT NULL Mã Sách
Trang 13MaTheLoai NCHAR(50) FK, NOT NULL Mã thể loại mà
sách thuộc TacGia NVARCHAR(50) Tác giá sách
GiaThue FLOAT NOT NULL Giá cho thuê sách
Có thể chia các màn hình giao diện thành 3 nhóm:
Tổ chức: Chính, chào, đăng nhập, đổi mật khẩu.
Quản lý: Thành viên, loại sách, sách, phiếu mượn, thêm thủ thư
Thống kê: top 10, doanh thu.
3.3.2 G IAO DIỆN MÀN HÌNH CHÍNH
G IAO DIỆN :
Trang 14M Ô TẢ HOẠT ĐỘNG
1 navigationView Vuốt từ trái/
Click Menu icon
Show Navigation Drawer
2 mQLPhieuMuon Click Chuyển Fragment_PhieuMuon
3 mQLLoaiSach Click Chuyển Fragment_LoaiSach
4 mQLSach Click Chuyển Fragment_Sach
5 mQLThanhVien Click Chuyển Fragment_ThanhVien
6 mTop10 Click Chuyển Fragment_Top10
7 mDanhThu Click Chuyển Fragment_DanhThu
Trang 158 mDoiMatKhau Click Chuyển Fragment_DoiMatKhau
9 mDangXuat Click Chuyển từ MainActivity đến trang Login
3.3.3 G IAO DIỆN QUẢN LÝ
1 lv_Thanhvien Hiển Thị danh sách thành viên
3 txt_tenTV Hiển thị tên thành viên
5 img_deleteTV Click Xóa thành viên
6 img_addTV Click Thêm thành viên
3.3.3.2 Màn hình quản lý Loại Sách
G IAO DIỆN :
Trang 16M Ô TẢ HOẠT ĐỘNG :
TT @ID S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 lv_LoaiSach Hiển Thị danh sách Loại sách
2 txt_maLoaiSach Hiển Thị mã Loại Sách
3 txt_tenLoaiSach Hiển Thị tên Loại Sách
4 Img_addLoaiSach Click Thêm Loại Sách
5 Img_deleteLoaiSa
ch
Click Xóa Loại Sách
Trang 173.3.3.3 Màn hình quản lý Sách
G IAO DIỆN :
M Ô TẢ HOẠT ĐỘNG :
1 lv_Sach Hiển Thị danh sách Sách
Trang 185 Txt_LoaiSach Hiển thị loại Sách
6 Img_addSach Click Thêm Sách
Trang 193 txt_tenThanh
Vien
Hiển Thị tên ThanhVien
4 Txt_TraSach Hiển thị trạng thái Trả Sách
5 Txt_Ngay Hiển thị ngày mượn sách
6 Txt_Sach Hiển Thị tên Sách
7 Txt_TienThue Hiển thị tiền thuê Sách
Trang 20M Ô TẢ HOẠT ĐỘNG :
1 Btn_tuNgay Click Chọn ngày bắt đầu thống kê
2 Btn_denNgay Click Chọn ngày kết thúc thống kê
3 Btn_danhThu Click Tính danh thu ngày bắt đầu đến ngày kết thúc thống kê
4 Txt_tuNgay Hiển thị ngày bắt đầu thống kê
5 Txt_denNgay Hiển thị ngày kết thúc thống kê
6 Txt_danhThu Hiển thị danh thu từ ngày bắt đầu đến ngày kết thúc
thống kê
Trang 213.3.4 C ÁC GIAO DIỆN HỖ TRỢ KHÁC
3.3.4.1 Màn hình chào
G IAO DIỆN
M Ô TẢ HOẠT ĐỘNG
1 Tv_Logo Hiển thị logo
3.3.4.2 Màn hình đăng nhập
G IAO DIỆN
Trang 22M Ô TẢ HOẠT ĐỘNG
1 edUserName Nhập vào tên tài khoản
2 edPassword Nhập vào mật khẩu
3 chkRemember
Pass
Chọn để lưu tài khoản và mật khẩu
4 btnLogin Click Đăng nhập vào MainActivity nếu như tài
khoản và mật khẩu hợp lệ
5 btnHuy Click Xóa trống tài khoản và mật khẩu
Trang 233.3.4.3 Màn hình thêm người Dùng (chỉ dành cho admin)
G IAO DIỆN :
M Ô TẢ HOẠT ĐỘNG :
1 edUserNameAdmin Nhập vào tên tài khoản
2 edHoTen Nhập vào họ tên
3 edPasswordAdmin Nhập vào mật khẩu
4 edRememberPass Nhập lại mật khẩu
5 btnLuu Click Lưu tài khoản
Trang 24btnHuy Click Xóa trống
3.3.4.4 Màn hình đổi mật khẩu
G IAO DIỆN :
M Ô TẢ HOẠT ĐỘNG :
1 edPassOld Nhập vào mật khẩu cũ
Trang 25D RAWER L AYOUT DRAWER _ LAYOUT LAYOUT _ WIDTH =" MATCH _ PARENT "
LAYOUT _ HEIGHT =" MATCH _ PARENT "
Trang 26F RAME L AYOUT FL C ONTENT LAYOUT _ WIDTH =" MATCH _ PARENT "
LAYOUT _ HEIGHT =" MATCH _ PARENT "
N AVIGATION V IEW NV V IEW MENU ="@ MENU / DRAWER _ VIEW "
HEADER L AYOUT ="@ LAYOUT / NAV _ HEADER "
Trang 274.1.2.2 Màn hình quản lý Loại sách (fragment_loai_sach)
G IAO DIỆN
Đ ẶT ID CÁC VIEW
…
Trang 294.1.2.4 Màn hình quản lý Thành viên (fragment_thanh_vien)
G IAO DIỆN
Đ ẶT ID CÁC VIEW
…
Trang 304.1.3 M ÀN HÌNH THỐNG KÊ TOP 10 ( FRAGMENT _ TOP )
G IAO DIỆN
Đ ẶT ID CÁC VIEW
…
Trang 314.1.4 M ÀN HÌNH THỐNG KÊ DOANH THU ( FRAGMENT _ DOANH _ THU )
G IAO DIỆN
Đ ẶT ID CÁC VIEW
…
Trang 36T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MatKhau TEXT NOT NULL Mật khẩu
M Ã LỆNH TẠO BẢNG
//Tao bang Thu Thu
String createTableThuThu=
"create table ThuThu (" +
"maTT TEXT PRIMARY KEY, " +
Trang 37"hoTen TEXT NOT NULL, " +
"matKhau TEXT NOT NULL)";
db.execSQL(createTableThuThu);
C ÂU LỆNH SQL CƠ BẢN
db.insert("ThuThu", null, values);
db.update("ThuThu", values, "maTT=?", new String[]{obj.maTT});
db.delete("ThuThu", "maTT=?", new String[]{id});
db.execSQL(“SELECT * FROM ThuThu WHERE maTT=?", new
String[]{obj.maTT});
db.execSQL(“SELECT * FROM ThuThu”);
4.2.2.2 Bảng ThanhVien
C ẤU TRÚC BẢNG
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
M Ã LỆNH TẠO BẢNG
C ÂU LỆNH SQL CƠ BẢN
Trang 384.2.2.3 Bảng LoaiSach
C ẤU TRÚC BẢNG
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
M Ã LỆNH TẠO BẢNG
// Tao bang loai sach
String createTableLoaiSach = "create table LoaiSach(" + "maloai integer primary key autoincrement," + "tenloai text not null)";
MÃ LỆNH TẠO BẢNG
// Tạo bảng Sach
String createTableSach = "create table Sach(" +
"masach integer primary key autoincrement," + "" + "tensach text not null," +
"giathue integer not null," +
"maloai integer references LoaiSach(maLoai))";
sqLiteDatabase.execSQL(createTableSach) ;
Trang 39CÂU LỆNH SQL CƠ BẢN
4.2.2.5 Bảng PhieuMuon
CẤU TRÚC BẢNG
T ÊN CỘT K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MÃ LỆNH TẠO BẢNG
//Tao bang phieu muon
String createTablePhieuMuon = "create table PhieuMuon(" +
"mapm integer primary key autoincrement," + "" +
"matt text references ThuThu(maTT)," +
"matv integer references ThanhVien(maTV)," +
"masach integer references Sach(maSach)," +
"tienthue integer not null," +
"trasach text not null," +
"ngay text not null)";
sqLiteDatabase.execSQL(createTablePhieuMuon) ;
CÂU LỆNH SQL CƠ BẢN
4.3 L ẬP TRÌNH CSDL (SQL ITE O PEN H ELPER +M ODEL +DAO)
4.3.1 SQL ITE O PEN H ELPER
M Ô TẢ :
Trang 40SQLiteOpenHelper là lớp tiện ích hỗ trợ lập trình Android với SQLite Khi kế thừ Lớpnày cần ghi đè 2 phương thức được mô tả trong phần hướng dẫn sử dụng sau đây.
H ƯỚNG DẪN SỬ DỤNG :
• onCreate(SQLiteDatabase db): chứa các lệnh tạo table (có thể chèn dữ liệu test)
• onUpgrade(SQLiteDatabase db, int i, int i1): chứa các lệnh xoá table và gọi lạionCreate khi nâng version
C ODE :
Trang 414.3.2 M ODEL C LASS VÀ DAO
4.3.2.1 ThuThu và ThuThuDAO
D IỄN GIẢI
T HÀNH PHẦN M Ô TẢ
ThuThu Là lớp thực thể mô tả dữ liệu thủ thư
ThuThuDAO Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
ThuThu
Trang 424.3.2.2 ThanhVien & ThanhVienDAO
LoaiSach Là lớp thực thể mô tả dữ liệu thủ thư
LoaiSach Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
Trang 43Sach Là lớp thực thể mô tả dữ liệu thủ thư
SachDAO Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
Sach
Trang 444.3.2.5 PhieuMuon & PhieuMuonDAO
Trang 45Lưu thay đổi dữ liệu vào database
4.4.1.3 Màn hình đổi mật khẩu (ChangePassFragment)
Kiểm tra mật khẩu mới và xác nhận có giống nhau hay không
1 addThuThu Thêm thủ thư
2 deleteThuThu Xóa thủ thư
▪
Trang 464.4.2 C ÁC MÀN HÌNH QUẢN LÝ
4.4.2.1 ThanhVienFragment
TT P HƯƠNG THỨC M Ô TẢ
1 getDSThanhvien Hiển thị toàn bộ dữ liệu thủ thư lên listView
2 addThanhVien Thêm thành viên
3 deleteThanhVien Xóa thành viên
4.4.2.2 LoaiSachFragment
TT P HƯƠNG THỨC M Ô TẢ
1 getDSLoaiSach Hiển thị toàn bộ dữ liệu thủ thư lên listView
2 addLoaiSach Thêm loại sách
3 deleteLoaiSach Xóa loại sách
1 getDSPhieuMuon Hiển thị toàn bộ dữ liệu thủ thư lên listView
2 deletePhieuMuon Xóa phiếu mượn
3 addPhieuMuon Thêm phiếu mượn
4 editPhieuMuon Cập nhật phiếu mượn
Trang 472 Đăng nhập sai tên Teo, admin Sai tên đăng nhập not
3 Đăng nhập sai mật khẩu admin, 123 Sai mật khẩu 95
2 Đăng ký trùng mã thủ thư đã có thuthu01,thuthu01 Thêm thất bại Ok
Trang 48thất bại
2 Mật khẩu và mật khẩu mới không
trùng
Cập nhật mật khẩuthất bại
Được sự giúp đỡ của bạn bè và cô rất nhiều trong việc fix lỗi
Rút ra nhiều bài học trong khi làm
Slide bài giảng online đầy đủ