Skip to content

aldrinjenson/flask-library-management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookArena Library Management System

BookArena is a web-based library management system that allows you to manage books, members, transactions, and fines efficiently. This project was built using Flask, SQLAlchemy, and Bootstrap.

Features

  • Add, edit, and delete books from the library.
  • Add, edit, and delete members.
  • Manage book transactions and due dates.
  • Ability to import books from Frappe API based on filters
  • Calculate fines for overdue books.
  • User-friendly interface.
  • Simple and minimal stylings with BootstrapCSS

Extra

  • Prevents users from taking the same book multiple times without returning it.
  • Prevents users having a fine more than 500 rs to take a new book
  • Shows the following extra book details from openlibrary API for books
    • subjects
    • subject_people
    • subject_places
    • links
    • ebooks
    • excerpts

Screenshots

Here are some screenshots of BookArena in action:

Home Add Book Books Book Details Member Details Members Fee Collection Transactions Import Books

Getting Started

  1. Clone the repository:
git clone https://github.com/aldrinjenson/bookarena.git
  1. Install dependencies:
pip install -r requirements.txt
  1. Set up sqlite db and tweak environment variables.
cp .env.sample .env
  1. Modify constants in app/constants.py Default values are the following:
API_LIMIT = 20
BORROW_DURATION = 7  # in days
FINE_PER_DAY = 1
  1. Run the application:
flask run
  1. Access the application at http://localhost:5000.

Usage

  • Browse books and members.
  • Add&Edit books and members
  • Borrow and return books.
  • Import books from Frappe API
  • Check fines for overdue books from users.
  • Resolve fines by collecting money

Contributing

Contributions are welcome! Please feel free to open issues and submit pull requests.