/luna

Luna 🛸 : A modular web application built with Flask for managing books

Primary LanguageHTML

Luna 🛸

Luna is a powerful library management application designed to help librarians manage books, members, and transactions efficiently. Built using Flask, MongoDB, Jinja, and Tailwind CSS, Luna provides a user-friendly interface and robust functionality for library operations.

Rick n Morty with Luna
Wubba Lubba Dub Dub! - Rick n' Morty discussing about Luna

Table of Contents

Features

  • 📚 Book Management: Add, edit, delete, and list books in the library.
  • 👥 Member Management: Register, update, and manage library members.
  • 💳 Transaction Management: Handle book issuance and returns with fee calculations.
  • 📥 Data Import: Bulk import books using the Frappe API interface.

Installation

To get started with Luna, follow these steps:

  1. Clone the repository:

    git clone https://github.com/AmalChandru/luna.git
    cd luna-library-management
  2. Set up a virtual environment (optional but recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install the required dependencies:

    pip install -r requirements.txt
  4. Set up MongoDB:

    • Ensure you have MongoDB installed and running.
    • Update the database connection string in the configuration file.
  5. Run the application:

    flask run
  6. Access the application: Open your web browser and go to http://127.0.0.1:5000/books.

Usage

  • Navigate through the application to manage books, members, and transactions.
  • Use the provided API endpoints for programmatic access to the application features.

API Endpoints

Here are some key API endpoints available in Luna:

Books

  • List Books: GET /books/
  • Add Book: POST /books/add
  • Edit Book: POST /books/edit/<id>
  • Delete Book: POST /books/delete_book/<id>

Members

  • List Members: GET /members/
  • Add Member: POST /members/add
  • Edit Member: POST /members/edit/<id>
  • Delete Member: POST /members/delete_member/<id>

Transactions

  • List Transactions: GET /transactions/
  • Create Transaction: POST /transactions/create
  • Close Transaction: POST /transactions/close/<transaction_id>

For more details and screenshots please checkout documentation

Brewed with:

  • Windmill Dashboard: Multi-theme, accessible dashboard with Tailwind CSS. 🛠️
  • The Flask Mega-Tutorial: Engaging tutorial for learning Flask. 📚
  • A generous splash of Coffee ☕ and a sprinkle of Love ❤️

Contributing

Contributions are welcome! If you have suggestions or improvements, please create a pull request or open an issue.