Ngoài ra, Nhà Sách Phương Nam thường xuyêncập nhật xu hướng để giới thiệu nhiều sản phẩm mới nhằm đáp ứng thịhiếu và nhu cầu của khách hàng.Băng, đĩaPhương Nam Phimcủa nhiều người Việt v
Trang 1TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC
KHOA CÔNG NGHỆ THÔNG TIN
-
-MÔN HỌC: DỰ ÁN MẪU (MOB2041)
Đ& TÀI: Quản lý thư viện Phương Nam
Họ và tên: Lương Thanh Danh
Mã Sinh Viên: PS35629
Lớp: MD18306
Trang 2
MỤC LỤC
Catalog
TRƯỜNG CAO ĐẲNG FPT POLYTECHNIC 1
KHOA CÔNG NGHỆ THÔNG TIN 1
MÔN HỌC: DỰ ÁN MẪU (MOB2041) 1
MỤC LỤC 2
MỞ ĐẦU 3
CHƯƠNG 1 GIỚI THIỆU DỰ ÁN 4
1.1 Giới Thiệu PNLiB 4
1.2 YÊU CẦU CỦA PNLIB 5
1.3 Lập kế hoạch dự án 6
Chương 2 Phân tích yêu cầu khách hàng 6
2.1 Sơ Đồ USE CASE 6
2.3 Đặc tả yêu cầu hệ thống 7
2.4 SƠ ĐỒ TRIỂN KHAI VÀ YÊU CẦU HỆ THỐNG 10
3.3.3.2 MÀN HÌNH DOANH THU 24
3.3.3.3 MÀN HÌNH TOP 10 DANH SÁCH 24
3.3.3.4 MÀN HÌNH quản lý LOẠI SÁCH 25
3.3.3.5 MÀN HÌNH MÀN HÌNH CHÀO 27
3.3.3.5 MÀN HÌNH THÊM THỦ THƯ 27
3.3.3.6 MÀN HÌNH ĐỔI MẬT KHẨU 29
3.3.3.6 MÀN HÌNH PHIẾU MƯỢN 29
Trang 3MỞ ĐẦU
Trong thời đại ngày nay, tin học đã trở nên phổ biến với mọi người từ mọi cấp học, từ mọi ngạch-bậc của xã hội Cùng với sự phát tri+n đó, mọi phần mềm ứng dụng tương ứng với từng chức năng cụ th+ cũng đã ra đời Song, không th+ có được một phần mềm có th+ cung cấp hết các chức năng cho mọi công việc, từ công việc kế toán, quản lý nhân viên đến quản lý nhân sự, quản
lý bán hàng Bởi, mỗi chức năng cần có một yêu cầu riêng, có những nét đặc trưng mà không phần mềm nào có th+ đáp ứng được.
Do vậy trong việc phát tri+n phần mềm, sự đòi hỏi không chỉ là chính xác, xử lý được nhiều nghiệp vụ mà còn phải đáp ứng các yêu cầu khác như: giao diện thân thiện, sử dụng tiện lợi, bảo mật cao, tốc độ xử lý nhanh….
Trang 4CHƯƠNG 1 GIỚI THIỆU DỰ ÁN
1.1 Giới Thiệu PNLiB
Nhasachphuongnam.com là trang thương mại điện tử của Nhà Sách
Phương Nam, hệ thống nhà sách thân thuộc của nhiều gia đình Việt kể
từ nhà sách đầu tiên ra đời năm 1982 đến nay
Danh mục hàng hóa phong phú, nhiều sản phẩm độc quyền, được chọn lọc kỹ càng đã tạo nên sự khác biệt của Nhà Sách Phương Nam
và tạo dựng được lòng tin yêu từ khách hàng.
: Ngoài danh mục sách đa dạng và phong phú của
Sách quốc văn
nhiều nhà xuất bản, công ty sách lớn nhỏ cả nước, Phương Nam còn chủ động khai thác bản quyền và liên kết xuất bản hàng ngàn đầu sách hay và giá trị với thương hiệu Phương Nam Book, trong đó nhiều tựa được đánh giá cao và lọt vào danh mục bán chạy của các hệ thống phát hành sách lớn nhất Việt Nam.
: Nhà Sách Phương Nam chủ động chọn lọc và phát
Sách ngoại văn
hành tại Việt Nam danh mục sách tiếng Anh đa dạng của những nhà xuất bản lớn trên thế giới như Penguin Random House, Hachette Livre, HarperCollins, Macmillan Publishers, Simon & Schuster,… Nhiều tựa chỉ có duy nhất tại Nhà Sách Phương Nam, nhiều tựa được phát hành
Too long to read on your phone? Save
to read later onyour computer
Save to a Studylist
Trang 5cùng thời điểm ra mắt của sách tại Anh và Mỹ.
…phong
Dụng cụ học tập, văn phòng phẩm, đồ chơi, quà lưu niệm
phú, chính hãng, có nguồn gốc xuất xứ rõ ràng, đến từ những thương hiệu lớn trong và ngoài nước Ngoài ra, Nhà Sách Phương Nam thường xuyên cập nhật xu hướng để giới thiệu nhiều sản phẩm mới nhằm đáp ứng thị hiếu và nhu cầu của khách hàng.
Băng, đĩa Phương Nam Phim
của nhiều người Việt với loạt phim Truyện Cổ Tích Việt Nam, Nhà Sách Phương Nam giới thiệu đến khách hàng nhiều băng đĩa nhạc của nhiều ca
sĩ, nhạc sĩ nổi tiếng cùng danh mục phim điện ảnh, phim truyền hình được đông đảo khán giả yêu thích.
Hi vọng với trang thương mại điện tử nhasachphuongnam.com, Nhà Sách Phương Nam có thể gia tăng tiện ích cho khách hàng, đồng thời mang những sản phẩm của hệ thống nhà sách đến với mọi khách hàng trên cả nước.
Quý khách hàng có nhu cầu liên lạc, đóng góp ý kiến, phản hồi về sản phẩm dịch vụ của Nhà sách Phương Nam, vui lòng liên hệ:
Hotline: 1900 6656
Email:
- Yêu cầu hỗ trợ đơn hàng Online: hotro@nhasachphuongnam.com
- Gửi bản thảo, các vấn đề liên quan đến xuất
Trang 6+ Thủ thư: không đưuọc tạo tài khoản người dùng.
pnlib
12/9/2023 18/9/2023 Hoàn thành 1.3 Lập kế hoạch
mượn
12/9/2023 18/9/2023 Hoàn thành 2.2.5 Thống kê 12/9/2023 18/9/2023 Hoàn thành 2.2.6 Quản lý hóa
đơn 12/9/2023 18/9/2023 Hoàn thành2.2.6 Đăng nhập 12/9/2023 18/9/2023 Hoàn thành 2.2.7 Đổi mật khẩu 12/9/2023 18/9/2023 Hoàn thành 2.3 Sơ đồ triển
khai và yêu
12/9/2023 18/9/2023 Hoàn thành
Trang 7cầu hệ thống
2.3.1 Sơ đồ triển
khai
12/9/2023 18/9/2023 Hoàn thành 2.3.2 Yêu cầu hệ
ERD 12/9/2023 18/9/2023 Hoàn thành3.2.2 Chi tiết thực
thể
12/9/2023 18/9/2023 Hoàn thành 3.2.2.1 Thực thể thủ
thư
12/9/2023 18/9/2023 Hoàn thành 3.2.2.2 Thực thể
phiếu mượn
12/9/2023 18/9/2023 Hoàn thành 3.2.2.3 Thực thể
thành viên
12/9/2023 18/9/2023 Hoàn thành 3.2.2.4 Thực thể loại
sách
12/9/2023 18/9/2023 Hoàn thành 3.2.2.5 Thực thể sách 12/9/2023 18/9/2023 Hoàn thành 3.2.2.6 Thực thể
Thống kê 12/9/2023 18/9/2023 Hoàn thành3.3 Giao diện 12/9/2023 18/9/2023 Hoàn thành 3.3.1 Sơ đồ tổ chức
giao diện
12/9/2023 18/9/2023 Hoàn thành 3.3.2 Giao diện
Trang 812/9/2023 18/9/2023 Hoàn thành 3.3.4.2 Màn hình
đăng nhập
12/9/2023 18/9/2023 Hoàn thành 3.3.4.3 Màn hình
quản 12/9/2023 18/9/2023 Hoàn thành4.1.2.1 Màn hình
Trang 9chào 12/9/2023 18/9/2023 Hoàn thành4.1.5.2 Màn hình
đăng nhập
12/9/2023 18/9/2023 Hoàn thành 4.1.5.3 Màn hình
thêm thủ thư
12/9/2023 18/9/2023 Hoàn thành 4.1.5.4 Màn hình đổi
mật khẩu
12/9/2023 18/9/2023 Hoàn thành 4.2 Tạo CSDL
với sqlite
12/9/2023 18/9/2023 Hoàn thành 4.2.1 Sơ đồ quan hệ 12/9/2023 18/9/2023 Hoàn thành 4.2.2 Chi tiết bán
hành
12/9/2023 18/9/2023 Hoàn thành 4.2.2.1 Bảng thủ thư 12/9/2023 18/9/2023 Hoàn thành 4.2.2.2 Bảng thành
viên
12/9/2023 18/9/2023 Hoàn thành 4.2.2.3 Bảng 12/9/2023 18/9/2023 Hoàn thành 4.3 Lập trình
CSDL 18/09/2023 25/09/2023 Hoàn thành4.3.1 Sqliteopenhel
per 18/09/2023 25/09/2023 Hoàn thành4.4.1 Màn hình
chính
18/09/2023 25/09/2023 Hoàn thành 4.4.2 Các giao diện
hổ trợ
18/09/2023 25/09/2023 Hoàn thành 4.4.2.1 Màn hình
chào
18/09/2023 25/09/2023 Hoàn thành 4.4.2.2 Màn hình 18/09/2023 25/09/2023 Hoàn thành
Trang 104.4.3 Các màn hình
quản lý
18/09/2023 25/09/2023 Hoàn thành 4.4.3.1 Thanhvienfra
ment 18/09/2023 25/09/2023 Hoàn thành4.4.3.2 Loaisachfram
ent 18/09/2023 25/09/2023 Hoàn thành4.4.3.3 Sachframent 18/09/2023 25/09/2023 Hoàn thành 4.4.3.4 Phieumuonfra
ment
18/09/2023 25/09/2023 Hoàn thành 4.4.4 Màn hình
thống kê
18/09/2023 25/09/2023 Hoàn thành 4.4.4.1 Top frament 18/09/2023 25/09/2023 Hoàn thành 4.4.4.2 Danhthuframe
nt 18/09/2023 25/09/2023 Hoàn thànhKiểm thử
6 Đóng gói và
triển khai
10/10/2023 18/10/2023 Hoàn thành 6.1 Sản phẩm phần
mền 10/10/2023 18/10/2023 Hoàn thành6.2 Hướng dẫn cài
đặt
10/10/2023 18/10/2023 Hoàn thành
7 Kết luận 10/10/2023 18/10/2023 Hoàn thành 7.1 Khó khăn 10/10/2023 18/10/2023 Hoàn thành 7.2 Thuận lợi 10/10/2023 18/10/2023 Hoàn thành
Chương 2 Phân tích yêu cầu khách hàng
2.1 Sơ Đồ USE CASE
2.2
Trang 11✔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,
Trang 122.3.2 Quản lý loại sách
✔ MÔ TẢ CHỨC NĂNG:
Chức năng này được sử dụng để quản lý các loại sách Người dùng có thể liệt kê danh sách các loại sách, xem thông tin chi tiết về từng loại sách, thêm loại sách mới, cập nhật thông tin hoặc xóa loại sách.
✔D Ữ LIỆU LIÊN QUAN :
Thông tin về các loại sách, bao gồm mã loại sách, tên loại sách, mô tả, và thông tin khác nếu cần.
✔ D Ữ LIỆU LIÊN QUAN :
Thông tin về từng cuốn sách, bao gồm mã sách, tên sách, tác giả, năm xuất bản, loại sách, và thông tin khác nếu cần.
Trang 13Chức năng này được sử dụng để quản lý thông tin về các phiếu mượn sách Người dùng có thể liệt kê danh sách các phiếu mượn, xem thông tin chi tiết về từng phiếu mượn, tạo phiếu mượn mới, cập nhật thông tin phiếu mượn, hoàn trả sách, và xóa phiếu mượn nếu cần.
✔D Ữ LIỆU LIÊN QUAN :
Thông tin về từng phiếu mượn, bao gồm mã phiếu, ngày mượn, ngày hẹn trả, mã thành viên, danh sách sách mượn, trạng thái phiếu mượn (đã trả hoặc chưa trả), và thông tin khác nếu cần.
kê dựa trên các tiêu chí cụ thể để hiểu rõ hơn về hoạt động của thư viện.
Dữ liệu liên quan:
Dữ liệu thống kê liên quan đến các hoạt động trong thư viện, bao gồm thông tin về sách, thành viên, phiếu mượn, doanh thu, và các tiêu chí khác.
Đối tượng sử dụng:
Chức năng này dành cho tất cả người dùng đã đăng nhập vào hệ thống Người quản trị thư viện và nhân viên
Trang 14Mô tả chức năng:
Chức năng này cho phép người dùng đăng nhập vào hệ thống bằng cách cung cấp tên đăng nhập và mật khẩu hợp lệ.
Dữ liệu liên quan:
Thông tin đăng nhập của người dùng, bao gồm tên đăng nhập và mật khẩu đã được đăng ký trước đó.
Đối tượng sử dụng:
Tất cả người dùng cần đăng nhập để sử dụng các chức năng khác của hệ thống Chức năng này chỉ hiển thị khi người dùng chưa đăng nhập hoặc cần đăng nhập lại.
2.3.6 Đổi mật khẩu
Mô tả chức năng:
Chức năng này cho phép người dùng thay đổi mật khẩu của họ bằng cách cung cấp mật khẩu cũ và mật khẩu mới hợp lệ.
Dữ liệu liên quan:
Thông tin mật khẩu của người dùng, bao gồm mật khẩu
cũ và mật khẩu mới đã được đăng ký trước đó.
Đối tượng sử dụng:
Tất cả người dùng đã đăng nhập có thể sử dụng chức năng này để thay đổi mật khẩu của họ Chức năng này chỉ hiển thị khi người dùng đã đăng nhập vào hệ thống.
Trang 152.4 SƠ ĐỒ TRIỂN KHAI VÀ YÊU CẦU HỆ
THỐNG
2.4.1 Sơ đồ triển khai
Trong sơ đồ này:
Máy chủ Web chứa ứng dụng web quản lý thư viện, phục
vụ các trang web và giao diện người dùng cho người dùng cuối.
Máy chủ Ứng dụng chứa mã nguồn và logic ứng dụng, thực hiện xử lý nghiệp vụ và giao tiếp với cơ sở dữ liệu.
Trang 16Máy chủ Ứng dụng (Application Server): Cần một máy chủ ứng dụng để chứa mã nguồn và logic của ứng dụng Máy chủ này thực hiện xử lý nghiệp vụ và truy vấn cơ sở dữ liệu.
Cơ sở Dữ liệu (Database Server): Cần một máy chủ cơ sở dữ liệu để lưu trữ thông tin về sách, thành viên, phiếu mượn và các
dữ liệu liên quan khác
Thiết Bị Khách Hàng (Client Devices): Người dùng sử dụng các thiết bị như máy tính, điện thoại di động và máy tính bảng
để truy cập ứng dụng quản lý thư viện Do đó, cần đảm bảo rằngứng dụng có khả năng tương thích với các thiết bị này
Phần Mềm:
Hệ Điều Hành (Operating System): Cần một hệ điều hành cho máy chủ web, máy chủ ứng dụng và máy chủ cơ sở dữ liệu Phổ biến là Linux hoặc Windows Server
Phần Mềm Web Server: Để chạy ứng dụng web, cần một phần mềm máy chủ web như Apache, Nginx hoặc Microsoft IIS
Trang 17Ngôn Ngữ Lập Trình: Để phát triển ứng dụng quản lý thư viện,cần sử dụng một ngôn ngữ lập trình như JavaScript (cho phía người dùng), Python, Ruby, Java hoặc C# (cho phía máy chủ).
Hệ Quản Trị Cơ Sở Dữ Liệu (Database Management System - DBMS): Cần một hệ quản trị cơ sở dữ liệu để quản lý và truy xuất dữ liệu MySQL, PostgreSQL, MongoDB, hoặc Microsoft SQL Server là những ví dụ phổ biến
3.1 MÔ HÌNH CÔNG NGHỆ ỨNG DỤNG
3.2 THỰC THỂ
3.2.1 Sơ đồ quan hệ thực thể ERD
Trang 18Trang 20
3.2.2.2 Chi tiết thực thể loại sách
Thuộc tính Kiểu dữu liệu Mô tả
Trang 213.2.2.3 Chi tiết thực thể Phiếu Mượn
Thuộc tính Kiểu dữu liệu Mô tả
chưa
Trang 223.2.2.4 Chi tiết thực thể Thành viên
Thuộc tính Kiểu dữu liệu Mô tả
sinh
Trang 233.2.2.5 Chi tiết thực thể Thủ thư
Thuộc tính Kiểu dữu liệu Mô tả
sinh
Trang 243.3 GIAO DIỆN
3.3.1 SƠ ĐỒ TỔ CHỨC GIAO DIỆN
Trang 253.3.2 GIAO DIỆN MÀN HÌNH CHÍNH
GIAO DIỆN:
Trang 26
MÔ TẢ HOẠT ĐỘNG:
như quản lý thành viên,v v
fragment sách
fragment độc giả
fragment báo cáo
SAU KHI NHẤN VÔ MENU HIỂN THỊ
Trang 27RA
Trang 28MÔ TẢ HOẠT ĐỘNG:
như quản lý thành viên,v v
fragment phiếu mượn
fragment thống kê top10
fragment doanh thu
fragment đổi mật khẩu
fragment Đăng xuất
Trang 293.3.3 GIAO DIỆN MÀN HÌNH quản lý
3.3.3.1 MÀN HÌNH quản lý thành viên
GIAO DIỆN:
Trang 30TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
Trang 313.3.3.2 MÀN HÌNH DOANH THU
GIAO DIỆN:
Trang 32TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
Drawer
hiện
trong khoảng từ ngày bắtđầu đến ngày kết thúc
Trang 333.3.3.3 MÀN HÌNH TOP 10 DANH SÁCH
GIAO DIỆN:
Trang 34TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
Drawer
loại, tên sách, tên loại, sốlượt mượn
Trang 353.3.3.4 MÀN HÌNH quản lý LOẠI SÁCH
GIAO DIỆN:
Trang 36TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
Drawer
sách, tên loại
Trang 373.3.3.5 MÀN HÌNH MÀN HÌNH CHÀO
GIAO DIỆN:
Trang 38TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
3.3.3.5 MÀN HÌNH THÊM THỦ THƯ
GIAO DIỆN:
Trang 40TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
Drawer
nhập sai
Trang 413.3.3.6 MÀN HÌNH ĐỔI MẬT KHẨU
GIAO DIỆN:
Trang 42TT @ID SỰ KIỆN MÔ TẢ HOẠT ĐỘNG
chuyển sang màn hìnhchào
Trang 443.3.3.6 MÀN HÌNH PHIẾU MƯỢN GIAO DIỆN:
Trang 45TT @ID SỰ KIỆN MÔ TẢ HOẠT
ĐỘNG
LiNK FIGMA:
https://www.figma.com/file/LyaFdZVMNdfSSFZ G5dUChB/Untitled?type=design&node-id=0-
Trang 46Tên cột Kiểu dữ liệu Ràng buộc Mô tả
MaTT text PK, not null Mã thủ thư
(dung làm tên đăng nhập)
"Hoten TEXT NOT NULL, " +
"Namsinh TEXT NOT NULL)";
DELETE FROM ThuThu WHERE MaTV = 1; Thay MaTV bằng giá trị thực tế
Cursor cursor = db.rawQuery("SELECT * FROM
ThuThu WHERE maTT=?", new String[]{obj.maTT});
Trang 47Cursor cursorAll = db.rawQuery("SELECT * FROM ThuThu", null);
Mô tả
MaTV INTEGERPK, AI Mã thành viên
null Tên thành viên Namsinh text Not
null Năm sinh
MÃ LỆNH TẢO BẢNG
// Create the ThanhVien table
String createTableThanhVien = "CREATE TABLE ThanhVien (" + "maTV INTEGER PRIMARY KEY
AUTOINCREMENT, " +
"hoTen TEXT NOT NULL, " +
"namSinh TEXT NOT NULL)";
db.execSQL(createTableThanhVien);
Trang 48db.insert("ThuThu", null, values);
db.update("ThuThu", values, "maTT=?", new
String[]{obj.maTT});
db.delete("ThuThu", "maTT=?", new String[]{id});
Cursor cursor = db.rawQuery("SELECT * FROM ThuThu WHERE maTT=?", new String[]
{obj.maTT});
Cursor cursorAll = db.rawQuery("SELECT *
FROM ThuThu", null);
Mô tả
Maloai INTEGERPK, AI PK,not
null
Mã Loại sách
null Tên loại sách
Trang 49db.insert("LoaiSach", null, values);
db.update("LoaiSach", values, "Maloai=?", new String[]{String.valueOf(obj.Maloai)});
db.delete("LoaiSach", "Maloai=?", new String[] {String.valueOf(id)});
Cursor cursor = db.rawQuery("SELECT * FROM LoaiSach WHERE Maloai=?", new String[]
{String.valueOf(obj.Maloai)});
Cursor cursorAll = db.rawQuery("SELECT *
FROM LoaiSach", null);
4.2.2.1 BẢNG SÁCH
CẤU TRÚC BẢNG
Trang 50Tensach text Not null
Tên sách Giathue INTEGER NOT
NULL
Giá cho thuê sách
Maloai INTEGER FK, NOT
"Tensach TEXT NOT NULL, " +
"Giathue INTEGER NOT NULL, " +
"Maloai INTEGER NOT NULL, " +
"FOREIGN KEY (Maloai) REFERENCES LoaiSach(Maloai))";
db.execSQL(createTableSach);
DB INSERT ("SACH", NULL VALUES, );
DB UPDATE ("SACH", VALUES, "MASACH=?", NEW
STRING[]{STRING VALUE OF(OBJ.MASACH)});
DB DELETE ("SACH", "MASACH=?", NEW TRING S []
{STRING VALUE OF(ID)});
Trang 51CURSORCURSOR = DB.RAWQUERY("SELECT * FROM
SACH WHERE MASACH=?", NEW TRING S []
{STRING VALUE OF(OBJ.MASACH)});
CURSORCURSORALL = DB.RAWQUERY("SELECT * FROM SACH", NULL);
4.2.2.1 BẢNG PHIẾU MƯỢN
CẤU TRÚC BẢNG
NULL
Mã thủ thư tạo PMMaTV INTEGER FK, NOT Mã thành viên mượn
Trang 52Trasach INTEGER NOT NULL 0: chưa trả sách,
1: đã trả sách Tienthue Integer NOT NULL Tiền thuê sách
MÃ LỆNH TẢO BẢNG
// Tạo bảng Phiếu Mượn
String createTablePhieuMuon = "CREATE TABLE PhieuMuon (" +
"MaPM INTEGER PRIMARY KEY
AUTOINCREMENT, " +
"MaTT TEXT NOT NULL, " +
"MaTV INTEGER NOT NULL, " +
"MaSach INTEGER NOT NULL, " +
"Ngay DATE NOT NULL, " +
"Trasach INTEGER NOT NULL, " +
"Tienthue INTEGER NOT NULL, " +
"FOREIGN KEY (MaTT) REFERENCES ThuThu(MaTT), " +
"FOREIGN KEY (MaTV) REFERENCES ThanhVien(MaTV), " +
"FOREIGN KEY (MaSach) REFERENCES Sach(Masach))";
db.execSQL(createTablePhieuMuon);