You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Codex d01e8918c0 feat: add financial domain 2 months ago
config feat: add runnable application skeleton 2 months ago
core feat: add runnable application skeleton 2 months ago
docker/postgres feat: add runnable application skeleton 2 months ago
docs feat: add financial domain 2 months ago
finance feat: add financial domain 2 months ago
tests feat: add financial domain 2 months ago
.dockerignore feat: add runnable application skeleton 2 months ago
.env.example feat: add verified PostgreSQL backups 2 months ago
.gitattributes docs: add contributor foundation 2 months ago
.gitignore docs: complete local MVP workflow 2 months ago
AGENTS.md docs: add contributor foundation 2 months ago
Dockerfile feat: add verified PostgreSQL backups 2 months ago
README.md docs: complete local MVP workflow 2 months ago
compose.yaml feat: add verified PostgreSQL backups 2 months ago
manage.py feat: add runnable application skeleton 2 months ago
pyproject.toml feat: add runnable application skeleton 2 months ago
uv.lock feat: add runnable application skeleton 2 months ago

README.md

Gizmoduck

Gizmoduck is a privacy-conscious personal finance application for importing, organizing, and understanding financial activity. It is a clean successor to the Robopato prototype, carrying forward what was learned from parsing Banco do Brasil account statements and Ourocard invoices without inheriting the prototype's notebook-driven architecture or historical data.

Goals

The initial product should make it possible to:

  • manage bank accounts and credit cards;
  • import supported statement and invoice formats;
  • preview and validate an import before committing it;
  • detect duplicates and preserve import provenance;
  • organize transactions by payee and category;
  • represent transfers, refunds, and installments correctly;
  • inspect monthly cash flow and spending summaries; and
  • export and back up user-owned data.

The first release is intended to be a reliable local application. Bank APIs, investment tracking, mobile clients, receipt recognition, forecasting, and AI categorization are possible later additions, not MVP requirements.

Project documentation

Start with contributor instructions, then read the product scope, architecture, data policy, and delivery roadmap. Owners can follow the copy-paste local workflow guide from reviewed import through reports, export, and verified backup restoration.

Architecture

The approved technical choices are:

  • Python and Django for the application;
  • PostgreSQL for persistent storage;
  • schema migrations from the first release;
  • Docker Compose for local infrastructure;
  • pytest for automated tests; and
  • pure, source-specific parsers feeding a normalized import pipeline.

Changes require explicit owner approval and a documented architectural decision. Bank-account imports use CSV; Banco do Brasil/Ourocard credit-card imports use TXT. OFX is not supported.

The import flow should remain separate from database persistence:

source document
    -> source-specific parser
    -> normalized candidate transactions
    -> validation and duplicate detection
    -> import preview
    -> committed transactions
    -> categorization and reporting

Privacy and security

Financial documents, database exports, credentials, and local application data must never be committed to Git. The repository .gitignore excludes common financial source formats and local data directories, but contributors must still inspect staged changes before every commit.

Development and application processes should use separate, least-privilege database accounts. Imports and material data changes should record their actor, source, timestamp, and outcome so human, application, and automated activity can be distinguished.

Use only synthetic or thoroughly sanitized financial fixtures in automated tests and documentation.

Project status

The local MVP is implemented: contributor foundation, application skeleton, financial domain, reviewed imports, owner screens, monthly reports, portable exports, and verified PostgreSQL backups. The local Django application uses PostgreSQL, explicit migrations, and isolated tests. See the financial domain guide for supported writes and accounting conventions, and reviewed imports for the local CSV/Ourocard preview and commit workflow.

Implemented milestones:

  1. Define the MVP and privacy model.
  2. Scaffold the application, database, migrations, and test suite.
  3. Implement and test the core financial domain model.
  4. Build the import-preview pipeline using sanitized fixtures.
  5. Add transaction management, categorization, and basic reports.

Development

Follow the local development guide for configuration, Docker Compose startup, migrations, tests, and database-role details, then use the local owner workflows for daily operation and recovery.

The readiness endpoint is available at http://127.0.0.1:8000/health/ after startup. Do not place real financial files inside tracked directories.