| US-001 |
As a new member, I want to register an account so that I can access the library system |
Registration completes in under 2 minutes; duplicate emails are rejected with a clear message |
High |
FR-01 |
| US-002 |
As a library member, I want to log in with my email and password so that I can access my account and library features |
Login succeeds with valid credentials; incorrect credentials return a generic error message; user is redirected to the correct dashboard based on their role |
High |
FR-02 |
| US-003 |
As a library member, I want to search for books by title, author, or genre so that I can find what I need without browsing the entire catalogue |
Search results appear within 3 seconds and include availability status; a clear message is shown when no results are found |
High |
FR-03 |
| US-004 |
As a librarian, I want to add, edit, and delete books from the catalogue so that the catalogue stays accurate and up to date |
New books appear immediately in search results; edited details are reflected instantly; books with active loans cannot be deleted |
High |
FR-04 |
| US-005 |
As a librarian, I want to issue a book loan to a member so that borrowing is recorded and tracked by the system |
Available copy count reduces by one; due date is set to 14 days from issue date; loan appears in the member's borrowing history immediately |
High |
FR-05 |
| US-006 |
As a librarian, I want to process a book return so that availability is updated and any overdue fines are calculated automatically |
Available copy count increases by one; overdue fine is calculated at R2.00 per day if returned late; loan is marked as returned |
High |
FR-06 |
| US-007 |
As a library member, I want to reserve a book that is currently on loan so that I can secure my place in the queue |
Reservation is only allowed when no copies are available; member cannot reserve the same book twice; queue position is shown after reserving |
Medium |
FR-07 |
| US-008 |
As a library member, I want to view my borrowing history so that I can keep track of books I have borrowed in the past |
History displays book title, issue date, due date, return date, and loan status; most recent loans appear at the top |
Medium |
FR-08 |
| US-009 |
As a library member, I want to see my outstanding fine balance on my profile so that I am never caught off guard when trying to borrow a book |
Fine updates daily based on overdue days; balance is always visible on the profile page; librarian can mark fine as paid |
Medium |
FR-09 |
| US-010 |
As a library manager, I want to view an admin summary page so that I can quickly see how the library is performing without asking staff |
Summary shows total members, books, active loans, and overdue loans in real time; page is accessible to librarians and admins only |
Medium |
FR-10 |
| US-011 |
As a system administrator, I want to manage user accounts so that I can control who has access to the system and at what level |
Deactivated accounts cannot log in; changes take effect immediately without a system restart |
Low |
FR-11 |
| US-012 |
As a library member, I want to view my active reservations and my position in the queue so that I know when to expect a book to become available |
Reservations page shows book title, date reserved, and queue position; fulfilled reservations are clearly marked |
Low |
FR-12 |