This project involves the development of a web application for library management. The intended audience is library users and staff. The application will cater to various needs such as searching for books, reserving books, managing checkouts and returns, adding and managing books, and user account management. It aims to provide a seamless and efficient user experience for both library patrons and staff.
- Users, Anonymous Users, and Librarians should be able to search for books by title, author, or ISBN.
- The system should allow Users to reserve books.
- Librarians can search Users by surname, name, or email and see the list of reserved books by a specific User.
- Librarians can mark books as returned for a specific User, or extend the due date/report User if the books is overdue.
- Librarians should be able to add new books, update book information, remove (archived and then automatically removed after some time), unmark as archived.
- System have to support authentication by email and password/JWT(Optional)
- System must be able to display a list of books in the library.
- API must support sort books by title, publish date, author.
- API must support pagination.
- The system must keep track of due dates, and send automated reminders to users. (scheduled jobs)
- The system should be user-friendly, with an intuitive interface.
- The system should be secure, with user authentication and authorization.
- The system should be able to generate reports/notifications on user/librarian activity and book circulation.
- Test coverage ~60-70%.



