HOA SEN UNIVERSITY FACULTY OF INFORMATION - TECHNOLOGY Instructor : Ths. Vo Thi Thu Ha Students : Ma Chan Hien Lam Chi Khang Trinh Anh Cuong Nguyen Ngoc Quoc Nguyen Tuan Anh Class : Software Engineering_1429_2331 December / 2023 HOA SEN UNIVERSITY FACULTY OF INFORMATION - TECHNOLOGY Instructor : Ths. Vo Thi Thu Ha Students : Ma Chan Hien Lam Chi Khang Trinh Anh Cuong Nguyen Ngoc Quoc Nguyen Tuan Anh Class : Software Engineering _1429_2331 December / 2023 Library Management System BOOK HUB 1. Choose software process model Incremental Model 1.1 Clear Requirements Management: It allows for clear and well-defined requirements to be segmented into smaller modules or increments. Since our project’s requirements are clear, this model would enable us to break down the project into manageable parts. 1.2 Iterative Development: The incremental model involves iterative development, where each iteration adds functionality to the system. This approach facilitates building the system in stages, allowing for continuous improvement and adjustment based on user feedback. 1.3 Early Delivery and Feedback: It provides the advantage of delivering functional components early. This means that even in the initial stages, our team can deliver usable parts of the library management system, allowing stakeholders to provide feedback and make necessary adjustments. 1.4 Risk Management: Risk is managed more effectively as each increment is a small, manageable unit. If any issues arise, they are contained within the specific increment, reducing the impact on the overall project. 1.5 Team Collaboration: With a team of five members, the incremental model allows for better collaboration. Each increment can be assigned to smaller sub-teams, facilitating focused development efforts and better communication among team members. 1.6 Flexibility and Adaptability: This model offers flexibility in accommodating changes. As the system evolves incrementally, adjustments can be made to subsequent increments based on evolving requirements or new insights. 1.6.1 Team Dynamics 1.6.2 Roles and Responsibilities Within a team of five members, roles such as developers, testers, and analysts can be rotated or assigned based on our teammates strengths and preferences, ensuring a diverse skill set for different increments. 1.6.3 Communication Regular meetings and discussions are essential in this model to ensure everyone is aligned with the overall project goals and the specific requirements of each increment. 1.6.4 Collaboration Tools Using collaboration tools for code sharing, version control, and communication (Discord, GitHub, Figma) can enhance the efficiency of the team's workflow. 2. Write project plan 2.1 INTRODUCTION 2.1.1 Project Purpose, Scope, and Objectives The Library Managing App enhances library services by using advanced software to streamline operations, improve user experience, and optimize resource management. The project involves crafting specialized software for the library's unique needs. It simplifies cataloging, borrowing, returns, and offers powerful administrative tools for efficient inventory and patron management. 2.1.2 Assumptions and Constraints This plan is formulated based on several key assumptions and constraints integral to its success. Among these are: Budget: The project is subject to the allocated budgetary resources outlined in the proposal. Staff: Availability and commitment of skilled personnel dedicated to this project. Equipment: Access to necessary hardware and software tools required for development and testing phases. Schedule: Adherence to the stipulated timeline for project completion and delivery. 2.2. Roles and Responsibilities Role Responsibility Name Email Project Manager Overall project oversight, planning, and coordination Lâm Chí Khang khang@example.org Design Team Software design, coding, testing, and implementation Mã Chấn Hiền, Lâm Chí Khang, Nguyễn Ngọc Quốc, Trịnh Anh Cường, Nguyễn Tuấn Anh hien@example.org khang@example.org quoc@example.org cuong@example.org anh@example.org Developments Creating the app's software, including frontend (user interface) and backend (serverside logic and databases). Nguyễn Ngọc Quốc(FE), Trịnh Anh Cường (FE), Mã Chấn Hiền (BE), Nguyễn Tuấn Anh (FE, BE) Lâm Chí Khang (BE) quoc@example.org cuong@example.org hien@example.org anh@example.org khang@example.org Testing, identifying defects and debugging. Trịnh Anh Cường, Nguyễn Tuấn Anh cuong@example.org anh@example.org Teams Quality Team Assurance 2.3. WORK PLAN 2.3.1 Work Activities - Requirements gathering and analysis. - System design and architecture. - Software development and coding. - Testing and Quality Assurance. - User interface design and improvement. - Deployment and user training. 2.3.2 Resources Human Resources: Expertise and Skills: Highlight the skills and expertise required for each team involved in the project (Development, Quality Assurance, User Experience, Training & Deployment). Roles and Responsibilities: Elaborate on the specific roles and responsibilities of each team member. Training Needs: If there are skill gaps, mention any plans for training or upskilling the team. Technological Resources: Development Tools: List the specific tools or software required for software development, such as integrated development environments (IDEs), design tools, collaboration platforms, etc. Software Licenses: Specify any licenses needed for software development, databases, or other technologies essential to the project. Infrastructure: Outline the necessary hardware and network infrastructure required for development, testing, and deployment. Financial Resources: Budget Allocation: Detail the budget breakdown for different phases of the project, including development, licensing, infrastructure, training, etc. Funding Sources: If applicable, mention where the funding is coming from (internal budget, grants, etc.). Cost Management Plan: Discuss strategies for managing costs within budget constraints. 2.3.3 Work Breakdown Structure Draw a WBS using Visual Paradigm Online. 2.3.4 Schedule Detailed Gantt chart with task breakdown and timelines using MS Project + Trello to Deliver tasks to teammates 2.3.4.1 Microsoft Project 2.3.4.2 Trello 2.4. CLOSE-OUT PLAN Closing planning is an important stage to ensure the completion of the project in an organized manner. Main activities in this phase include: 2.4.1 Staff reassignment plan. During project completion, we will build reusable tools in an organized manner. This includes redefining the roles and tasks of each project member and deciding on their next position within the organization. This plan ensures that the knowledge and experience gained from the project will be used in future projects. 2.4.2 Archiving project materials and documentation. We will store project documents scientifically for easy access and future reference. Documents, source code and other important information will be arranged and stored properly. This ensures that project-related information can be used for future evaluation, maintenance, and upgrade purposes. 2.4.3 Post-mortem debriefing and reports. To learn and grow from the project, we will hold a final review session. This session will include a detailed review of the successes, challenges and experiences gained from implementation. From there, we can draw important lessons to apply to future projects. A summary report will be prepared to share this information with stakeholders and as a basis for future strategic decisions. 2.5. Methods, Tools, and Techniques Use of specific programming languages, development frameworks, and version control systems. Adherence to industry standards for security and data handling. System Design Tools: StarUML, Figma Programming Tools: Visual Code Frontend: ReactJS Backend: NodeJS Database: Firebase Version control systems: Git/GitHub Infrastructure: Linux/Ubuntu, Docker, Terraform, Nginx,... 3. Software Requirement Specification The project is a small Library Managing Application, with mainly two actors: Librarian (Administrator) and Reader (Library User). When readers enter Library, they should provide their information (such as Student ID, Employee ID,…) to get checked-in by Librarian. They after that, can view books inside the Library for free, and also use Library’s PC, or have a seat at Library. Note that they can only use the book within Library, if they want to borrow books home, they need to have Library Card opened. This action needs Librarian’s help. Also, if a group of readers want to register room for meeting, they can also contact Librarian for the meeting room registration inside the Library. 3.1 Functional Requirements: Readers can: ● Check his/her borrowed books ● Show his/her check-in history Library’s Administrator, known as Librarian, will have some power according to their position, such as: ● ● ● ● ● ● ● ● ● ● ● Check-in readers with their ID as mentioned above; Find readers Schedule meeting room for readers Open Library Card Show Check-in history of readers Control books Check-in books Check-out books Find books Add new books Delete (unused) books 3.2 Non - Functional Requirements: a) Requirements for Reliability: Software operates stably and without errors during its functioning. It has the capability to quickly recover from incidents, ensuring that services remain uninterrupted. For instance, if the system encounters an issue and stops functioning, it automatically restarts and restores to the last operational state without data loss. b) Requirements for Performance: The application is capable of running smoothly without glitches or lag. However, with larger data volumes and increased access, it might experience reduced speed. For example, when a librarian or reader searches for information about a book, the system returns results within 1 second. c) Requirements for Security: Adheres to high-security standards to safeguard users' personal information. This includes data encryption, user authentication, access rights management, and detecting/preventing unauthorized access. For instance, when a user logs into the system, they can only view and edit their own personal information, unable to access information of other users. d) Requirements for Portability: The application is compatible with common operating systems and web browsers. It's designed for easy migration from one system or platform to another. For example, the software can operate on different operating systems such as Windows, MacOS, and Linux, and is compatible with popular web browsers like Chrome, Firefox, and Safari. e) Requirements for Scalability: The software is designed to easily add new functionalities or expand current functions as needed. It also needs to handle a large number of users or requests simultaneously. For instance, as the number of users and books increases significantly, the system can scale to manage the increased volume of requests without compromising performance. 4. Use case diagram, class diagram 4.1 Class Diagram Overview 4.2 Usecase Diagram Overview Use-case CheckinReader Use-Case Nội Dung Use-case Name CheckinReader Description Check-in readers Actor Librarian Related Use-case - Activating conditions Readers enter Library for the first time of the day. Before Requirements Readers have Student ID or Employee ID After Requirements Readers want to use Library Main events flow 1. Readers check-in with their Student/Employee Card, or Student/Employee ID. 2. Librarian submit the information to the system. 3. System stores the check-in result (datetime, reader’s name) to the database. Sub events flow 3.1. If readers have expired borrowed books, system will throw a message box for Librarian to notice. Use-case FindReader Use-Case Nội Dung Use-case Name FindReader Description Find readers Actor Librarian Related Use-case - Librarian input reader’s information and click ‘Search Activating conditions Reader’ Before Requirements Logged in as Librarian After Requirements Librarian wants to search for readers Main events flow 1. System will find readers according to the input information through the database. 2. After that, system will return a form included with readers that matched the search information. Sub events flow 2.1. If no readers matched, system will instead return a simple Text Message: “No readers matched the result” Use-case OpenLibraryCard Use-Case Nội Dung Use-case Name OpenLibraryCard Description Open library card for reader Actor Librarian Related Use-case - Activating conditions Librarian clicks the button ‘Open Card’ Before Requirements Logged in as Librarian After Requirements Librarian wants to open library card for reader Main events flow Sub events flow 1. System opens a RegisterLibraryCard form 2. Librarian enters reader’s information: name (required), ID (required), phone number (required), email,… and click Submit. 3. System stores the entered data to the database and return Success Dialog, mark the reader as opened library card. 2.1. If any of ‘required’ fill remain blank, System will disallow the ‘Submit’ button until all required fields are specified. Use-case ScheduleRoom Use-Case Nội Dung Use-case Name ScheduleRoom Description Schedule meeting rooms for readers Actor Librarian Related Use-case - Activating conditions Librarian clicks the button ‘Manage Meeting Room’ Before Requirements Logged in as Librarian After Requirements Librarian wants to setting up meeting rooms for readers Main events flow 1. System opens a ControlMeetingRoom form 2. Librarian enters reader information: name (required), ID(required), phone number (required), enter/leave time,… and click ‘Submit’ Sub events flow 3. System stores the entered data to the database and return Success Dialog. 2.1. If any of ‘required’ fill remain blank, System will disallow the ‘Submit’ button until all required fields are specified. Use-case ShowCheckinHistory Use-Case Nội Dung Use-case Name ShowCheckinHistory Description Show check-in history of specific date, or at a duration of time, or of specific reader Actor Librarian, Reader Related Use-case - Activating conditions Librarian input check-in information and clicked ‘Show History’ Reader clicks button ‘View my check-in history’ Before Requirements Logged in as Librarian/Reader After Requirements Librarian or Reader want to view the check-in history Main events flow 1. System query the database based on input and find all check-in history (reader name, time) and send result. 2. Sub events flow System display the result back to the Librarian/User 2.1. If result is NULL, system simply returns Text Message: “No history” Use-case ControlBooks Use-Case Nội Dung Use-case Name ControlBooks Description Control books Actor Librarian Related Use-case AddBook, DeleteBook, FindBook, CheckinBook, CheckoutBook Activating conditions Librarian clicked button ‘Manage books’ Before Requirements Logged in as Librarian After Requirements Librarian wants to manage/control books. Main events flow 1. System opens a ControlBook form, contains ‘Add’, ‘Delete’, ‘Find’, ‘Check-in’, ‘Check-out’ buttons. Sub events flow - Use-case AddBook Use-Case Nội Dung Use-case Name AddBooks Description Control books Actor Librarian Related Use-case ManageBooks Activating conditions Librarian is at the form ControlBooks and clicks ‘Add’ button. Before Requirements Logged in as Librarian After Requirements Librarian wants to add books Main events flow 1. System opens AddBook form. 2. Librarian enter book information wished to add: book name (required), author (required), img (required), publisher, publish year, quantity,… and click ‘Submit and Add’ button. 3. System will have a preview form, contain entered book information once again and ‘Cancel’, ‘Confirm’ buttons. 4. Librarian clicks ‘Confirm’, system will store the book information to the database and return Success Dialog. 2.1. If any of ‘required’ fill remain blank, System will Sub events flow disallow the ‘Submit and Add’ button until all required fields are specified. 3.1. If Librarian clicked ‘Cancel’, system will return back step 2. Use-case DeleteBook Use-Case Nội Dung Use-case Name DeleteBook Description Delete book Actor Librarian Related Use-case ControlBooks Activating conditions Librarian is at the form ControlBooks and clicks ‘Delete’ button. Before Requirements Logged in as Librarian After Requirements Librarian wants to delete a specified book. Main events flow 1. System opens a DeleteBook form. 2. Librarian enter book name 3. System return the result based on book name entered 4. For each book from the result, display name, author, image,… and ‘Delete’ button at the bottom left corner of each book division. 5. Librarian click ‘Delete’ 6. System will have a preview for selected delete book contains book’s information and ‘Cancel’, ‘Confirm’ buttons. 7. Librarian clicks ‘Confirm’ and system delete that book from the database and return Success Dialog. 3.1. If no books matched result, System will instead Sub events flow return a Text Message: No book found. 6.1. If Librarian clicks ‘Cancel’, system will return back step 4. Use-case FindBook Use-Case Nội Dung Use-case Name Search Book Description Searching book with title, author, subject. Actor Librarian Related Use-case Manage Book Activating Librarian is at the form ControlBooks and clicks ‘Find’ conditions button. Before Requirements Logged in as Librarian After Requirements Librarian wants to find books Main events flow 1. System opens a FindBook form. 2. Librarian enter book’s information needed to find: book name, author, genres, publisher,.. and click ‘Find’ 3. System finds the books through the database based on entered information and return result. 4. System displays the result back on a form, each book of the result display book’s name, book’s author, publisher, book ID, availability 3.1. If result is NULL, system will instead return Text Sub events flow Message: No books found. Use-case CheckoutBook Use-Case Nội Dung Use-case Name CheckoutBook Description Check-out books for reader Actor Librarian Related Use-case FindReader Activating conditions Librarian is viewing specific reader and click ‘Checkout’ button. Before Requirements Logged in as Librarian After Requirements Librarian wants to check-out books for a reader Main events flow 1. System opens a CheckoutBook form 2. Librarian enters BookID and click ‘Check-out’ 3. System checks out the book with specified ID to the reader and mark their Availability to False. 2.1. If the reader hasn’t opened Library Card, system will throw a Warning Textbox, with ‘Cancel’, ‘Confirm’ button. 2.2. If ‘Cancel’ clicked, system navigate back to FindReade r form. 2.3. If ‘Confirm’ clicked, system do step 3. Sub events flow Use-case CheckinBook Use-Case Nội Dung Use-case Name CheckinBook Description Check-in books for reader Actor Librarian Related Use-case FindReader Activating Librarian is viewing specific reader and click ‘Check-in’ conditions button. Before Requirements Logged in as Librarian After Requirements Librarian wants to check-in books for a reader Main events flow 1. System opens a CheckinBook form. 2. System finds book borrowed by a specified reader and display them to the screen as book name, book ID, borrow time and a check-box at the right of each result. 3. Librarian check-in the box and click ‘Check-in selected books’, System will check-in the following books and mark their Availability to True. Sub events flow 2.1. If the reader hasn’t borrowed any books, System will return a Text Message: No books borrowed. Use-case CheckBorrowedBooks Use-Case Nội Dung Use-case Name CheckBorrowedBooks Description Check self’s borrowed books by readers Actor Reader Related Use-case - Activating Reader clicks ‘Check borrowed books’ button. conditions Before Logged in as Reader Requirements After Requirements Reader wants to check his/her borrowed books. Main events flow 1. System opens a BorrowedBooks form 2. System finds book borrowed by that reader and re turn result 3. Each book in the result display book name, book image, borrow time, due date. 2.1. If the reader hasn’t borrowed any books, System will return a Text Message: No books borrowed. Sub events flow 5. Design user interface Figma for BookHub - Link 5.1 User 5.1.1 Register Form 5.1.2 Login Form 5.1.3 Home 5.1.4 Input Search 5.1.5 Search Result 5.1.6 Book Detail 5.1.7 Book Detail (2) 5.1.8 About 5.2 Admin 5.2.1 Dashboard 5.2.2 CheckIn Reader 5.2.3 Control Books 5.2.4 Add Book 5.2.5 Delete Book 6. Write test plan, test case Google Sheet for Test Case of BookHub - Test Case LMS - Google Sheets No Des Test Steps Expected Results 1 Login valid 1. Open the login page 2. Enter account = admin 3. Enter password = 123456 4. Click Login button Login succesfully Login with correct account but no password 1. Open the login page 2. Enter account = admin 3. Enter password = 4. Click Login button Login failed, password cannot be empty Login with valid credentials and negative to the main dashboard 1. Open the login page 2. Enter account = admin 3. Enter password = 4. Click Login button Login failed, password cannot be empty Login with special characters in the account field 1. Open the login page 2. Enter account = admin 3. Enter password = 4. Click Login button Login failed, password cannot be empty 1. Open the login page 2. Enter account = admin Login with excessive characters in the 3. Enter password = password field 4. Click Login button Login failed, password cannot be empty 2 3 5 6 7 8 9 Valid registration 1. Open registration page. 2. Enter valid user information 3. Click "Submit" User successfully registered and redirected to confirmation/main page. Registration with incomplete required fields 1. Open registration page. 2. Leave one or more required fields blank. 3. Click "Submit" Registration fails with error prompt to fill in all required fields. Registration with invalid email format 1. Open registration page. 2. Enter invalid email format. 3. Click "Submit" Registration fails with error indicating an invalid email format. Duplicate registration with existing user credentials 1. Open registration page. 2. Enter existing user information. 3. Click "Submit" Registration fails with error indicating user already exists. 1. Open registration page. 2. Enter weak password. 3. Click "Submit" Registration fails with error to use a stronger password. Registration password strength 10 validation 1. Open registration page 2. Enter name with Registration with special characters in special characters. 11 name field 3. Click "Submit" Registration may fail with error indicating special characters not allowed. 12 Quản lý sách Truy cập vào sách thành công Thêm sách thất bại 13 Mã sách không hợp lệ 1. Nhấn vào chức năng thêm sách 2. Hệ thống hiện lên form nhập vào sách 3. Nhập vào mã sách = "a123" 4. Nhập vào tên sách = "abc" 5. Nhập vào nhà xuất bản = "Trinh Anh Cuong" 6. Nhập vào số lượng = "5" Mã sách không hợp lệ Thêm sách thất bại 14 nhà xuất bản không hợp lệ 1. Nhấn vào chức năng thêm sách 2. Hệ thống hiện lên form nhập vào sách 3. Nhập vào mã sách = "123" 4. Nhập vào tên sách = "abc" 5. Nhập vào nhà xuất bản = "Vietlot" 6. Nhập vào số lượng = "5" Nhà xuất bản không hợp lệ Thêm sách thất bại 15 Số lượng không hợp lệ 1. Nhấn vào chức năng thêm sách 2. Hệ thống hiện lên form nhập vào sách 3. Nhập vào mã sách = "123" 4. Nhập vào tên sách = "abc" 5. Nhập vào nhà xuất bản = "Trinh Anh Cuong" 6. Nhập vào số lượng = "-5" Số lượng không hợp lệ 16 Thêm sách thành công 1. Nhấn vào chức năng thêm sách 2. Hệ thống hiện lên form nhập vào sách 3. Nhập vào mã sách = "123" 4. Nhập vào tên sách = "abc" 5. Nhập vào nhà xuất bản = "Trinh Anh Cuong" 6. Nhập vào số lượng = "5" Thêm sách thành công! Sửa sách 17 Tìm kiếm sách thất bại 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách Mã sách muốn tìm kiếm nhập muốn tìm = "abc123" vào không hợp lệ Sửa sách 18 Sách muốn sửa không tồn tại 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách Mã sách muốn tìm kiếm không muốn tìm = "1234" tồn tại Sửa sách 19 Cập nhật tên sách thành công 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách muốn tìm = "123" 4. Hệ thống hiện lên form chỉnh sửa 5. Lựa chọn cập nhật tên sách 6. Nhập vào tên sách mới = "abcd" Cập nhật tên sách thành công Sửa sách 20 Cập nhật nhà xuất bản thất bại 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách muốn tìm = "123" 4. Hệ thống hiện lên form chỉnh sửa 5. Lựa chọn cập nhật nhà xuất bản 5. Nhập vào nhà xuất Cập nhật nhà xuất bản không bản mới = "VietLot" thành công Sửa sách 21 Cập nhật nhà xuất bản thành công 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách muốn tìm = "123" 4. Hệ thống hiện lên form chỉnh sửa 5. Lựa chọn cập nhật nhà xuất bản 5. Nhập vào nhà xuất bản mới = "Trinh Anh Cập nhật nhà xuất bản thành Cuong" công Sửa sách 22 Cập nhật số lượng thất bại 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách Cập nhật số lượng thất bại muốn sửa 3. Nhập vào mã sách muốn tìm = "123" 4. Hệ thống hiện lên form chỉnh sửa 5. Lựa chọn cập nhật số lượng 5. Nhập vào số lượng mới = "-5" Sửa sách 23 Cập nhật số lượng thành công 1. Nhấn vào chức năng sửa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn sửa 3. Nhập vào mã sách muốn tìm = "123" 4. Hệ thống hiện lên form chỉnh sửa 5. Lựa chọn cập nhật số lượng 5. Nhập vào số lượng mới = "10" Cập nhật số lượng thành công Xóa sách 24 Tìm kiếm sách thất bại 1. Nhấn vào chức năng xóa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn xóa 3. Nhập vào mã sách Danh mục muốn xóa không muốn tìm = "123abc" hợp lệ Xóa sách 25 Tìm kiếm sách thất bại 1. Nhấn vào chức năng xóa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn xóa 3. Nhập vào mã sách Danh mục muốn xóa không tồn muốn tìm = "1234" tại 26 Xóa sách thành công 1. Nhấn vào chức năng xóa sách 2. Hệ thống hiện lên form tìm kiếm sách muốn xóa 3. Nhập vào mã sách muốn tìm = "123" Xóa sách thành công Validates the system's ability to accurately display matching reader information when valid details are 27 provided for search. 1. Open Control Book interface. 2. Enter valid reader information. 3. Click "Search Reader". - System displays matching readers' list. - Accurate display of reader information. Verifies the system's response when attempting to find readers with nonexistent information, ensuring the 28 display of a proper notification. 1. Open Control Book interface. 2. Enter nonexistent reader information. 3. Click "Search Reader". - System displays "No readers matched the result." message. Confirms the system's handling of 29 incomplete or incorrect reader 1. Open Control Book interface. 2. Enter incomplete or - System provides an error message for invalid search criteria. information, checking for appropriate error messages or guidance. incorrect reader information. 3. Click "Search Reader". 1. Open Control Book interface. Validates the system's ability to 2. Enter common/vague handle and present a list of readers reader information. - System displays a list when common or vague information is 3. Click "Search distinguishing each matching 30 used for search. Reader". reader. Checks the system's response when attempting a search with all search fields left empty, ensuring the display 31 of required field notifications. 1. Open Control Book interface. 2. Leave all fields empty. 3. Click "Search Reader". - System provides an error message indicating required fields. 1. Open Control Book interface. 2. Find borrowed books Verifies the system's functionality to for a specific reader. successfully check in books borrowed 3. Select books to by a reader, updating book availability check-in. 32 and borrower records accordingly. 4. Click "Check-in". - System checks in selected books for the reader. - Updates book availability status to "available". Confirms the system's response when attempting to check in books for a reader who has no borrowed books, checking for proper notification 33 display. - System displays a message indicating no borrowed books found. 1. Open Control Book interface. Validates the system's handling when 2. Try to check-in attempting to check in books without without selecting any selecting any, ensuring a prompt to books. 34 select books before proceeding. 3. Click "Check-in". - System prompts to select books before checking in Checks the system's response when entering invalid book IDs during the check-in process, verifying proper 35 error message display. 1. Open Control Book interface. 2. Enter invalid book IDs for check-in. 3. Click "Check-in". Tests the system's behavior when attempting to check in books for a reader with an expired library card, checking for appropriate warning 36 prompts or actions. 1. Open Control Book interface. 2. Check-in books for a reader with an expired - System warns about an library card. expired library card, prompting 3. Click "Check-in". for action or confirmation. Test the system's behavior when 37 attempting to check out 1. Open Control Book interface. 2. Find available books for check-out. 3. Select books to check-out. 4. Click "Check-out". Test the system's behavior when 38 attempting to check out book 1. Open Control Book interface. 2. Attempt to check-out - System prompts to select without selecting any books before checking out. - System provides an error message for invalid book IDs - System checks out selected books for the reader. - Updates book availability status to "unavailable". books. 3. Click "Check-out". Xóa sách 39 Tìm kiếm sách thành công 1. Nhấn vào chức năng xóa hoá đơn sách 2. Hệ thống hiện lên form tìm kiếm hoá đơn sách muốn xóa 3. Nhập vào mã hoá đơn muốn tìm = "001" Xoá hoá đơn sách thành công Xóa hoá đơn sách 40 Tìm kiếm hoá đơn sách thất bại 1. Nhấn vào chức năng xóa hoá đơn sách 2. Hệ thống hiện lên form tìm kiếm hoá đơn sách muốn xóa 3. Nhập vào mã hoá đơn muốn tìm = Hoá đơn sách tìm kiếm để xoá "123abc" không hợp lệ Xóa hoá đơn sách 41 Tìm kiếm hoá đơn sách thất bại 1. Nhấn vào chức năng xóa hoá đơn sách 2. Hệ thống hiện lên form tìm kiếm hoá đơn sách muốn xóa 3. Nhập vào mã hoá Hoá đơn sách với mã sách đơn muốn tìm = "1234" muốn xóa không tồn tại 42 Quản lý thông tin người đọc 1. Mở trang quản lý thông tin người đọc 2. Hệ thống hiện thị danh sách thông tin người đọc 3. Người dùng có thể chọn Thêm, Xoá, Sửa thông tin người đọc 4. Có thể tìm kiếm trong ô Tìm kiếm 4.1 Nhập vào ô Tìm kiếm = 001 4.2 Nhấn Enter 5. Hiện ra danh sách thông tin người đọc tìm Tìm kiếm thông tin người đọc kiếm thành công Quản lý hoá đơn sách với tìm kiếm 43 mã hoá đơn thất bại 1. Mở trang quản lý thông tin người đọc 2. Hệ thống hiện thị danh sách thông tin người đọc 3. Người dùng có thể chọn Thêm, Xoá, Sửa thông tin người đọc 4. Có thể tìm kiếm trong ô Tìm kiếm 4.1 Nhập vào ô Tìm kiếm = 0012 4.2 Nhấn Enter 5. Hiện ra danh sách thông tin người đọc tìm Tìm kiếm thông tin người đọc kiếm thất bại 44 Sửa thông tin người đọc 1. Hiển thị thông tin chi tiết người đọc Sửa thông tin người đọc thất bại do chưa đủ số SĐT 2. Có thể nhập để sửa thông tin người đọc 2.1 Sửa SĐT : 220 3. Nhấn nút Sửa 45 Sửa thông tin người đọc 1. Hiển thị thông tin người đọc 2. Có thể nhập để sửa thông tin người đọc 2.1 Nhập ngày : 2-322003 3. Nhấn nút Sửa Sửa thông tin người đọc thất bại do sai ngày 46 Sửa thông tin người đọc 1. Hiển thị thông tin người đọc 2. Có thể nhập để sửa thông tin người đọc 2.1 Nhập số vào mục tên người đọc : 2323123 3. Nhấn nút Sửa Sửa thông tin người đọc thất bại do sai kiểu định dạng 47 Sửa thông tin người đọc 1. Hiển thị thông tin người đọc 2. Có thể nhập để sửa thông tin người đọc 2.1 Nhập số điện thoại : Sửa thông tin người đọc thất 389724 bại do chưa đủ kí tự và số điện 3. Nhấn nút Sửa thoại không có thật 48 Quản lý thông tin người đọc 1.Hiển thị 3 nút xóa , sửa , thêm 2. Hiển thị thanh tìm kiếm 2.1 Nhập thanh tìm kiếm: 23123 3. Hiển thị danh sách người đọc Không tìm thấy được người đọc 49 Quản lý thông tin người đọc 1. Hiển thị 3 nút xóa, sửa, thêm 2. Hiển thị thanh tìm kiếm 3. Hiển thị danh sách người đọc Không có người đọc để hiển thị 50 Quản lý thông tin người đọc 1. Hiển thị 3 nút xóa, sửa, thêm 2. Hiển thị thanh tìm kiếm 2.1 Nhập kí tự đặc biệt : @!#$ 3. Hiển thị danh sách Thông tin tìm kiếm định dạng người đọc sai 1.Hiển thị các thông tin thêm thông tin người đọc 2.có thể nhập vào các ô input 51 Thêm thông tin người đọc 2.1 Nhập SĐT để tạo thông tin người đọc : 22103 Tạo thất bại do thiếu kí tự SĐT 3. Nút enter 1.Hiển thị các thông tin thêm thông tin người đọc 2.có thể nhập vào các ô input 2.1 Nhập SĐT để tạo thông tin người đọc : 221033411223 52 Thêm thông tin người đọc 3. Nút enter Tạo thất bại do không được trùng SĐT