Skip to content

πŸ“š A modern desktop app to manage personal libraries. Built with CustomTkinter, SQLAlchemy, and SQLite/MySQL.

Notifications You must be signed in to change notification settings

mmi15/library-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š Library Management App

A desktop application built with CustomTkinter (Python) for managing a personal library.
It allows you to create, edit, delete, filter, and browse books in a user-friendly interface.


✨ Features

  • πŸ–₯️ Modern UI with CustomTkinter (dark mode support).
  • πŸ“– Book management:
    • Add new books.
    • Edit existing ones.
    • Delete with confirmation.
  • πŸ” Advanced filters:
    • Search by title, author, publisher, theme, or collection.
    • Filter by publication year and edition year (exact or ranges).
    • Filter by location (place, furniture, module, shelf).
    • Reset filters with one click.
  • πŸ“‘ Data display:
    • Interactive table (Treeview) with sorting by any column.
    • Vertical scrollbar for easier navigation.
    • Action column with edit ✏️ and delete πŸ—‘οΈ buttons.
  • πŸ“Š Statistics:
    • Shows total number of books in the collection.
  • πŸͺŸ Window management:
    • Main window opens maximized by default.
    • Filter window appears centered over the main window.
    • Fullscreen toggle with F11 and exit with Esc.

πŸ› οΈ Tech Stack

  • Python 3.11+
  • CustomTkinter for the modern UI
  • Tkinter / ttk for advanced widgets (Treeview, Combobox with scroll)
  • SQLAlchemy for ORM and queries
  • SQLite / MySQL (depending on config) as database backend

πŸš€ Installation

Clone the repository:

git clone https://github.com/your-username/library-app.git
cd library-app

Create a virtual environment (recommended):

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

Install dependencies:

pip install -r requirements.txt

Configure the database connection in:

database/db_config.py

▢️ Usage

Run the application:

python main.py
  • Main window opens maximized.
  • Use Filters to refine your book list.
  • Use Add Book to create new entries.
  • Use the ✏️ / πŸ—‘οΈ icons in the table to edit or delete books.

πŸ“‚ Project Structure

library-app/
│── main.py              # Entry point
│── controllers/         # Database logic (CRUD, filters, queries)
│── models/              # SQLAlchemy models
│── views/               # UI windows (Main, Filters, FormBook)
│── database/            # DB config and migrations
│── assets/              # Optional icons or resources
│── requirements.txt     # Dependencies
│── README.md            # This file

πŸ“Έ Screenshots

Main Window

image

(maximized with sortable table and actions)

Filters Modal

image

(advanced filters with placeholders and reset button)

Create/Edit Book

image

(form with placeholders and dropdowns with scroll)


πŸ’‘ Future Improvements

  • Export/import library to CSV/Excel.
  • Support for book covers (images).
  • Statistics dashboard.

πŸ‘€ Author

Developed by MΓ³nica Melendo

Feel free to ⭐ the repo if you find it useful!

About

πŸ“š A modern desktop app to manage personal libraries. Built with CustomTkinter, SQLAlchemy, and SQLite/MySQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages