Skip to content
eealbaPublic

About

Lightweight, zero-dependency data dictionary and metadata catalog designed to document, organize, and maintain complex enterprise database structures.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

SchemaMap

License: MIT Python: 3.8+ Platform: Cross-Platform

SchemaMap is a lightweight, zero-dependency data dictionary and metadata catalog designed to document, organize, and maintain complex enterprise database structures.

Built entirely using Python's standard library, this cross-platform desktop tool provides an intuitive interface to map out database schemas hierarchically—organizing technical assets by Systems, Microservices/Modules, Tables, Columns, and Queries.


🚀 Key Features

  • Zero-Dependency Core: Powered strictly by Python's native Tkinter (ttk) for a clean, platform-agnostic UI and built-in file I/O operations. No heavy web frameworks or external ORM maintenance required.
  • Git-Friendly Storage: Avoids merge conflicts by isolation. Every database table is stored as an individual JSON file. This makes it perfect for decentralized engineering teams using Git.
  • Decoupled Data Architecture: The application code is completely separate from the metadata. It includes a native Folder Chooser to load any data workspace dynamically.
  • 100% Portable: The entire application runs natively on Windows, macOS, and Linux. It is fully self-contained—perfect for carrying on a flash drive or sharing across DevOps teams.

📁 Decoupled Architecture & Workspace Structure

The application binary/code lives in its own repository, while your database metadata lives in a separate version-controlled data repository (Workspace).

1. Application Repository

schemamap/
│
├── core/                # Core business logic modules (Data)
│   ├── __init__.py
│   ├── workspace.py     # Workspace manager (JSON File I/O handler)
│
├── ui/                  # Native graphical user interface modules
│   ├── __init__.py
│   ├── main_window.py   # Main window (Treeview navigation & Notebook panels)
│   └── components.py    # Dialogs (Folder Chooser, modals, forms)
│
├── app.py               # Main application entry point (Orchestrator)
├── config.json          # Local app settings (Stores selected workspace path)
├── AGENTS.md            # AI Developer Guidelines and Architectural Constraints
├── LICENSE               # MIT License
└── README.md            # App documentation

2. External Data Workspace Repository

your-metadata-workspace/
│
├── systems.json               # Global index mapping systems and their modules
└── crm_system/                # Root directory for a specific System
    ├── metadata.json          # General system description and settings
    ├── mod_customers/         # Sub-folder acting as a logical Module/Microservice
    │   ├── queries.json       # Consolidated queries for this module
    │   ├── CUSTOMER_REFS.json # Isolated metadata & indexes for this specific table
    │   └── ADDRESSES.json
    └── mod_billing/
        └── INVOICES.json

🛠️ Getting Started

Prerequisites

Python 3.8 or higher installed on your system.

(Linux Users Only) Depending on your distribution, you might need to ensure tkinter is installed natively:

sudo apt-get install python3-tk

Installation

1. Clone the repository:

git clone [https://github.com/your-username/schemamap.git](https://github.com/your-username/schemamap.git)
cd schemamap

2. Run the application:

python app.py

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Lightweight, zero-dependency data dictionary and metadata catalog designed to document, organize, and maintain complex enterprise database structures.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages