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.
- 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
- 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
Here are some screenshots of BookArena in action:
- Clone the repository:
git clone https://github.com/aldrinjenson/bookarena.git
- Install dependencies:
pip install -r requirements.txt
- Set up sqlite db and tweak environment variables.
cp .env.sample .env
- Modify constants in app/constants.py Default values are the following:
API_LIMIT = 20
BORROW_DURATION = 7 # in days
FINE_PER_DAY = 1
- Run the application:
flask run
- Access the application at http://localhost:5000.
- 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
Contributions are welcome! Please feel free to open issues and submit pull requests.