An open API service indexing awesome lists of open source software.

https://github.com/amalchandru/luna

Luna 🛸 : A modular web application built with Flask for managing books
https://github.com/amalchandru/luna

flask javascript jinja2 mongodb python3 tailwindcss

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# 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](#features)
- [Installation](#installation)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
- [Brewed with:](#brewed-with)
- [Contributing](#contributing)

## 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**:
```bash
git clone https://github.com/AmalChandru/luna.git
cd luna-library-management
```

2. **Set up a virtual environment** (optional but recommended):
```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```

3. **Install the required dependencies**:
```bash
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](./app/config/development.py).

5. **Run the application**:
```bash
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/`
- **Delete Book**: `POST /books/delete_book/`

### Members
- **List Members**: `GET /members/`
- **Add Member**: `POST /members/add`
- **Edit Member**: `POST /members/edit/`
- **Delete Member**: `POST /members/delete_member/`

### Transactions
- **List Transactions**: `GET /transactions/`
- **Create Transaction**: `POST /transactions/create`
- **Close Transaction**: `POST /transactions/close/`

For more details and screenshots please checkout [documentation](./docs/)

## Brewed with:

- **[Windmill Dashboard](https://github.com/estevanmaito/windmill-dashboard)**: Multi-theme, accessible dashboard with Tailwind CSS. 🛠️
- **[The Flask Mega-Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world)**: 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.