Skip to content

MohtadiAwada/DiskLog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DiskLog

Stop guessing what's on your external drives. DiskLog is a lightweight, fully customizable desktop application designed to track and manage collections of external disks, flash drives, and memory cards. Built entirely with Python's standard library, it offers a snappy, zero-dependency solution to digital hoarding.

What makes DiskLog special? It is 100% config-driven. You define your database schema and UI forms in a simple JSON file, and DiskLog automatically handles the rest, from rendering input fields to dynamically altering your SQLite database.


app preview screenshot

✨ Features

  • πŸ›  Dynamic, Config-Driven UI: Add, remove, or modify columns via a simple config.json. The app instantly generates the appropriate UI elements and updates the database schema automatically.
  • πŸ“€ Flexible Data Export: (New in v2.1.0) Export your filtered data to CSV for spreadsheets or to a brand-new SQLite database file for external use.
  • πŸ” Advanced Query Search: Use powerful database operators directly in the search bar (e.g., Type = SSD, is encrypted = 1).
  • ✏️ In-App Schema Editor: Tweak your configuration directly inside the app with built-in validation.
  • ⚑ Zero Dependencies: Built strictly with Python's standard library. No pip install required.

πŸš€ Getting Started

πŸ“¦ Portable Version (Windows)

Download the latest .exe from the Releases page for a self-contained, no-installation experience.

🐍 Running from Source

Requirements: Python 3.10+ on Windows, macOS, or Linux.

  1. Clone and enter the repository:

    git clone https://github.com/MohtadiAwada/DiskLog.git
    cd DiskLog
  2. Run the application:

    python app.py

πŸ“– Special Features & Proper Usage

1. The Export Engine (v2.1.0)

DiskLog now features a "What You See Is What You Get" export system. Only the data currently visible in your table (based on your search/filters) will be exported.

  • Spreadsheet (.csv): Generates a clean CSV file compatible with Excel, Google Sheets, and Numbers.
  • Database File (.db): Generates a new SQLite database. You can customize the Table Name and Primary Key during the export process, making it perfect for migrating specific datasets to other projects.

2. Advanced Search Syntax

The search bar parses input to execute complex queries:

  • Global Search: Type any word to search across all columns.
  • Targeted Operators: Use =, !=, >, <, >=, <=, or LIKE.
    • Example: Type != HDD
  • Multiple Queries: Combine filters with a comma.
    • Example: Type = Flash Drive, Sandisk

3. Automatic Schema Evolution

When you add a new column to the columns list in your config, DiskLog's engine automatically executes an ALTER TABLE command to update your SQLite database.


πŸ—οΈ Project Architecture

DiskLog/
β”œβ”€β”€ app.py                 # Entry point (Initializes Tkinter mainloop)
β”œβ”€β”€ config.json            # Auto-generated schema configuration
β”œβ”€β”€ data.db                # Auto-generated SQLite database
β”œβ”€β”€ core/                  # Backend Logic
β”‚   β”œβ”€β”€ config.py          # Config loader and validator
β”‚   β”œβ”€β”€ db.py              # Dynamic SQLite engine and query parser
β”‚   └── store.py           # State management
β”œβ”€β”€ models/                # Reusable UI Components
β”‚   β”œβ”€β”€ table.py           # Dynamic data grid
β”‚   β”œβ”€β”€ tools.py           # Toolbar buttons
β”‚   └── export.py          # CSV and SQLite export engine (v2.1.0)
└── windows/               # Application Windows
    β”œβ”€β”€ main.py            # Main GUI layout
    β”œβ”€β”€ add_popup.py       # Dynamic creation form
    β”œβ”€β”€ edit_popup.py      # Dynamic edit form
    └── config_popup.py    # Raw JSON editor with safety validations

πŸ“„ License

MIT License - see the LICENSE file for details.

About

πŸ’½ A professional, config-driven disk management tool for tracking external media. Features a dynamic SQLite backend, advanced operator-based search, and filtered exports to CSV/DB. No dependencies.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages