Library Management

A basic library management system with a custom API using the Frappe framework.

Install Library Management

bench get-app https://github.com/EyobABN/library-management

Add the Frappe Gems badge to your README

Maintain Library Management? Paste this into your README:

[![Listed on Frappe Gems](https://frappegems.com/api/method/frappe_gems.seo.badge?app=EyobABN%2Flibrary-management)](https://frappegems.com/gems/apps/EyobABN/library-management)

About Library Management

Library Management System

A basic library management system with a custom API, built using the Frappe framework. This system manages books, members, and loans in a library.

Installation

Make sure Bench is installed on your machine. If you haven't installed Bench, follow the official installation guide to install Bench in development mode.

  • Initialize the Frappe bench

    bench init [bench-name]
    
  • Go to the newly created bench directory

    cd [bench-name]
    
  • Create a new site

    bench new-site [site-name]
    
  • Download and add this app to the bench

    bench get-app 
    
  • Install this app on your newly created site

    bench --site [site-name] install-app [app-name]
    
  • Add the site to hosts

    bench --site [site-name] add-to-hosts
    
  • Start the development server

    bench start
    

Features

  • Book Management:
    • [x] The Book DocType has the fields: Title, Author, Genre, Publication Year, ISBN, and Image.
    • [x] CRUD operations available via custom API.
  • Membership Management:
    • [x] The Member DocType has the fields: Name, Membership ID, Email, Phone Number, and Image.
    • [x] CRUD operations available via custom API.
  • Loan Management:
    • [x] The Loan DocType tracks book loans and has the fields: Member, Book, Loan Date, Return Date, Overdue, and Returned.
    • [x] The Overdue and Returned fields are read-only and are calculated automatically whenever the document is saved.
    • [x] Validation has been implemented.
  • User Interface:
    • [x] Has intuitive forms for data entry and display.
    • [x] Validation has been implemented.
  • Authentication and Role Management:
    • [x] Users can log into the app
    • [x] Only users with the Librarian role are able to add, loan, modify, and delete books.
  • Reports:
    • Create a report for all currently loaned books
    • Generate a report for overdue books
  • Advanced Features:
    • [x] User authentication and role management (admin, librarian, member)
    • Automated email reminders for overdue books
    • Feature for members to reserve books

Custom API

  • The custom REST API allows external applications to interact with the library system.
  • The API supports operations like adding, retrieving, updating, and deleting books, members and loans.
  • The API includes authentication to secure access.

API Endpoints

Endpoint Role Purpose
/api/method/librarymanagement.api.bookapi.get_books Anyone Retrieves the list of books that the library has
/api/method/librarymanagement.api.bookapi.create_book Librarian Creates a new book
/api/method/librarymanagement.api.bookapi.get_book Anyone Retrieves a single book
/api/method/librarymanagement.api.bookapi.update_book Librarian Updates a book
/api/method/librarymanagement.api.bookapi.delete_book Librarian Deletes a book
/api/method/librarymanagement.api.memberapi.get_members Librarian Returns the list of members currently registered at the library
/api/method/librarymanagement.api.memberapi.create_member Librarian Creates a new member
/api/method/librarymanagement.api.memberapi.get_member Librarian Retrieves a single member
/api/method/librarymanagement.api.memberapi.update_member Librarian Updates a member
/api/method/librarymanagement.api.memberapi.delete_member Librarian Deletes a member
/api/method/librarymanagement.api.loanapi.get_loans Librarian Returns the list of loans
/api/method/librarymanagement.api.loanapi.create_loan Librarian Creates a new loan
/api/method/librarymanagement.api.loanapi.get_loan Librarian Retrieves a single loan
/api/method/librarymanagement.api.loanapi.update_loan Librarian Updates a loan
/api/method/librarymanagement.api.loanapi.delete_loan Librarian Deletes a loan

License

MIT

Related Other apps for Frappe & ERPNext

  • Erpnext — Free and Open Source Enterprise Resource Planning (ERP)
  • Helpdesk — Modern, Streamlined, Free and Open Source Customer Service Software
  • Print Designer — Visual print designer for Frappe / ERPNext
  • Ctr — CTR模型代码和学习笔记总结
  • Whitelabel — Whitelabel ERPNext
  • Fossunited — fossunited.org
  • Helm — Helm Chart Repository for Frappe/ERPNext
  • Frappe Attachments S3 — A frappe app to upload file attachments in doctypes to s3.