Skip to main content

Description of the project here

Project description

Python project template

A simple template of a Python project, with a rigid file structure, and predisposition for unit testing and release on PyPi.

Relevant features

  • All your project code into a single main package (MoneyMate/)
  • All your project tests into a single test package (test/)
  • Unit testing support via unittest
  • Automatic testing on all branches via GitHub Actions
  • Semi-automatic versioning via Git
  • Packaging support via setuptools
  • Automatic release on PyPi via GitHub Actions
  • Docker image support via Dockerfile
  • Automatic release on DockerHub via GitHub Actions
  • Support for semi-automatic development environment management via Pyenv
  • Automatic dependencies updates via Renovate
  • Automatic conversion of TODO comments into GitHub issues via the alstr/todo-to-issue-action

Project structure

.
├── src/
│   └── moneymate/
│       ├── __init__.py
│       ├── __main__.py
│       ├── cli.py
│       ├── data/
│       │   ├── __init__.py
│       │   └── database.py
│       ├── models/
│       ├── services/
│       ├── config/
│       └── utils/
├── MoneyMate/
│   ├── __init__.py
│   └── __main__.py
├── tests/
│   ├── unit/
│   │   └── test_data_layer.py
│   ├── integration/
│   └── conftest.py
├── sql/
├── scripts/
├── pyproject.toml
├── README.md
├── LICENSE
├── CHANGELOG.md
├── .github/
│   └── workflows/
│       ├── ci.yml
│       └── release.yml
├── renovate.json
└── .gitignore

artifact/ ├─ MoneyMate/ │ ├─ init.py │ ├─ data_layer/ │ │ ├─ init.py │ │ ├─ database.py # Low-level DB connection, schema, migration baseline │ │ ├─ manager.py # Process-wide API manager, orchestrates sub-managers │ │ ├─ users.py # Registration, login/logout, roles, password mgmt │ │ ├─ categories.py # CRUD for categories, ownership checks │ │ ├─ contacts.py # CRUD for contacts │ │ ├─ expenses.py # CRUD, search, deterministic listing, pagination │ │ ├─ transactions.py # CRUD, deterministic listing, pagination │ │ ├─ balances.py # Net balance and per-contact summaries │ │ ├─ logging_utils.py # Structured logging helpers │ │ └─ utils.py # Shared utilities, validators │ │ │ └─ gui/
│ ├─ init.py │ ├─ app.py # GUI entry-point │ └─ ... # Views, controllers, assets │ ├─ tests/ # test subdivided by category │ ├─ data_layer/ │ ├─ gui/
│ ├─ system/ │
├─ .github/ │ └─ workflows/ │
├─ LICENSE ├─ README.md ├─ pyproject.toml
├─ requirements.txt └─ requirements-dev.txt # Includes pytest (per CI notes)


## Flow Chart (architecture)

```mermaid
flowchart LR
  subgraph App["Application / GUI"]
    GUI["GUI Components"]
    CLI["Scripts / Integrations"]
  end

  subgraph API["API Manager"]
    MGR["DatabaseManager"]
  end

  subgraph Managers["Entity Managers"]
    U["Users"]
    C["Categories"]
    CO["Contacts"]
    E["Expenses"]
    T["Transactions"]
    B["Balances/Analytics"]
  end

  subgraph DB["SQLite Database"]
    SCHEMA["Versioned Schema + Migrations"]
    TABLES["Tables: users, categories, contacts, expenses, transactions, access_logs, ..."]
    INDEXES["Indexes + Constraints"]
  end

  App -->|calls| MGR
  MGR --> U & C & CO & E & T & B
  U & C & CO & E & T & B -->|validated SQL ops| DB
  DB -->|sqlite3.Row| MGR
  U -->|audit| TABLES
  MGR -->|logging| LOGS["Structured Logging"]

Acknowledgements

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moneymate-1.1.3.tar.gz (72.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moneymate-1.1.3-py3-none-any.whl (58.0 kB view details)

Uploaded Python 3

File details

Details for the file moneymate-1.1.3.tar.gz.

File metadata

  • Download URL: moneymate-1.1.3.tar.gz
  • Upload date:
  • Size: 72.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for moneymate-1.1.3.tar.gz
Algorithm Hash digest
SHA256 f80ff7107f03d734318aaffa210cd958b45068069c4145db7b6f660b9814ffef
MD5 cb0a35730acc0f9392ae019810036ee0
BLAKE2b-256 bc0bb9fac6bc7515fede301c90c037adb6e062cb4f77d3392d9404c69e448c13

See more details on using hashes here.

File details

Details for the file moneymate-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: moneymate-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 58.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for moneymate-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 821ba435cd94e48e35295fe4549f606de25d9ad52fc1f8b2cd79d67fbec1fb92
MD5 e34063e8661c844dc3e83c51aa379657
BLAKE2b-256 0d816b545149aad4f53ea4eddd3daa138cba79241b70091e56df52208935c28c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page