Library Management System Project made for the OOP course at Faculty of Computer and Information Science, Ain Shams University.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
This comprehensive and feature-rich system is designed to streamline the operations of a bookstore, offering both users and administrators an intuitive and efficient platform. With functionalities ranging from user registration and book browsing to detailed order and borrowing histories, this system aims to provide a seamless experience for both customers and bookstore administrators.
• Registration: New users can create an account by providing their name and email address. The system generates a unique customer ID and stores it along with the user's information.
- Home page: See featured books and best deals.
- Categories screen: View books categorized by genre, author, or other criteria.
- Search screen: Search for books by title or author keyword.
• Book details: Users can view details of a specific book, including title, author, publication year, price, description, and availability status. They can also:
- Add to cart: Add the book to their shopping cart for purchase.
- Borrow (if available): Registered users can borrow available books. The system records the transaction with the borrow date and sets a due date for return.
- Rate and review: Leave a rating and review for the book, visible to other users.
- Viewing the list of added books, quantity, and total price.
- Updating the quantity of each book.
- Applying promo codes (if applicable).
- Choosing a payment method (cash on delivery or credit card).
• Order history: Registered users can view their past orders, including the date, books purchased, and total amount paid.
• Borrowing history: Registered users can view their borrowing history, including the borrowed books, borrow and return dates, and any associated fines.
- Add new books: Add new books to the system by providing details like title, author, publication year, price, and availability.
- Update book information: Edit existing book details like price, availability, or description.
- Remove books: Remove books from the system that are no longer available or needed.
- Add new borrowers: Register new borrowers with their name and contact information.
- Update borrower details: Edit existing borrower information like contact details or address.
- Remove borrowers: Remove borrowers from the system who are no longer active or have violated policies.
- Input: User enters their email address and password.
- Output: System verifies credentials. If successful, system displays the user's home page. If unsuccessful, system displays an error message.
- Input: User enters their name and email address. User creates a password.
- Output: System creates a new customer account with a unique ID.
- Input: User types a keyword (title or author) in the search bar.
- Output: System displays a list of matching books with titles, authors.
- Input: User clicks the "Borrow" button on a book's details page.
- Output: System checks book availability. If available, system records the borrowing transaction with the borrow date and due date. System displays a confirmation message and sends a notification to the user. If not available, system displays a message indicating the book is unavailable and may offer options to reserve or be notified when it becomes available.
- Input: User clicks the "Add to Cart" button on a book's details page. User specifies quantity (if applicable).
- Output: System adds the book to the user's shopping cart, updating the total price.
- Input: Admin enters book details: title, author, publication year, price, availability, and description.
- Output: System creates a new book object and adds it to the catalog.
- Input: Admin selects a book to update. Admin modifies desired fields (e.g., price, availability).
- Output: System updates the book's information in the catalog.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
MIT License
Copyright (c) [2023] [ByteBibliotheca]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.