Student Union Borrowing System Requirements
Project Overview
Develop a borrowing system for the student union that allows students to borrow and return
items efficiently. The system should manage inventory, track transactions, and provide
insightful reports for administrators.
Functional Requirements
1. User Management
User Registration
o Administrative accounts can perform all functions such as add, delete and
modify SU helpers’ account information such as name and password. The
administrative accounts can add, delete, modify loan items. They can also
perform any functions operated by other user accounts.
o Other SU helpers’ accounts can only change their password. They will help
students to borrow items from student union.
Authentication
o Secure login functionality with password hashing.
User Profiles
o View personal information and borrowing history.
o Update contact details.
2. Item Management
Inventory Catalog
o Add various items available for borrowing (e.g., books, equipment, costumes).
o Each item should have a unique ID, name, description, category, and status.
Item Details
o Display item information, including images and current availability.
o Categorize items for easy navigation (e.g., Sports, Music, Electronics).
3. Borrowing Process
Search and Browse
o Search for items by name, category, or keywords.
o Filter items based on availability or other attributes.
Borrow Items
o Select items to borrow and specify the borrowing period (if applicable).
o Limit the number of items a student can borrow simultaneously.
Check-Out Confirmation
o Review selected items before confirming the borrowing request.
o Display due dates and borrowing terms.
Automatic Stock Updates
o Reduce item quantity upon successful borrowing.
o Prevent borrowing if the item is out of stock.
4. Returning Items
Return Process
o SU helpers can initiate the return of borrowed items.
o Update the item's availability in the inventory upon return.
Overdue Management
o Identify overdue items based on the due date.
o Generate individual notice to notify students of overdue items.
5. Reservation System
Reserve Items
o Allow students to reserve items that are currently unavailable.
o Notify students when reserved items become available.
Manage Reservations
o View and cancel existing reservations.
o Set time limits on how long a reservation is held.
6. Notifications
Overdue Alerts
o Reminders for upcoming due dates and overdue notices.
7. Administrative Functions
Admin Dashboard
o Access a summary of system activities (e.g., total items borrowed, overdue
items).
Inventory Management
o Add, edit, or remove items from the inventory.
o Adjust item quantities and update item details.
User Management
o View user accounts and borrowing histories.
o Reset passwords and update SU helpers’ information.
Reporting Tools
o Generate reports on borrowing trends, popular items, and user activity.
o Export reports in formats like PDF or Excel.
Non-Functional Requirements
1. Usability
User-Friendly Interface
o Intuitive navigation and clear menu structures.
o Consistent design across all pages.
Accessibility
o Ensure compatibility with assistive technologies.
o Use alt text for images and proper labelings for form fields.
2. Performance
Efficient Operations
o Optimisation of Algorithms.
3. Scalability
Future Expansion
o Design the system to accommodate more users and items.
o Modular code structure for easy feature additions.
4. Reliability
Error Handling
o Graceful error messages for users.
o Log system errors for administrative review.
Backup and Recovery
o Regular data backups to prevent loss.
o Recovery procedures documented and tested.
Technical Requirements
1. Platform
Standalone Application
o Accessible via windows GUI.
2. Technology Stack
Frontend
o Python with proper imported modules
Database
o CSV files including users.csv, items.csv, transactions.csv, students.csv
o For the file users.csv, the following information must be included for testing
purpose by HKEAA.
UserID Role Password
admin Administrator e49S0ee6
suhelper1 Operator 2Fg5022b
3. Documentation
Code Documentation
o Comment code for clarity.
o Use docstrings or similar conventions.
User Manual
o Instructions on how to use the system.
o FAQs and troubleshooting tips.