Skip to content

dheerajbatra/Local-Accounting-Software

Repository files navigation

Local LLC Accounting System

A local-first accounting web app for a small LLC. It runs on your machine with SQLite and includes:

  • Client management
  • Invoice creation with line items
  • Expense tracking with categories/accounts
  • Automatic journal entries (double-entry style)
  • Reports (P&L and accounts receivable aging)
  • Visual charts for monthly trend and expense mix
  • PDF downloads for invoices and reports
  • CSV exports (invoices, expenses, journal)
  • Recurring invoices and expenses
  • Monthly close checklist tracking
  • One-click DB backup/restore
  • Edit/delete support for clients, invoices, and expenses
  • Insights tab (local analytics or OpenAI-compatible API mode)

Tech stack

  • Python 3.10+
  • Flask
  • ReportLab (PDF generation)
  • SQLite (single local file: accounting.db)

Data persistence

Your data is persistent. The app stores everything in the local file accounting.db.

  • Closing the app does not remove data.
  • Restarting the app reuses the same DB file.
  • Data is only lost if accounting.db is deleted or replaced.

Branding

  • Company name defaults to "My Company LLC" and can be overridden with the COMPANY_NAME environment variable.
  • Logo file is loaded from static/logo.png in the web UI and PDF exports.

Quick start

  1. Create and activate a virtual environment.
  2. Install dependencies.
  3. Run the app.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
./scripts/run_local.sh

Your browser opens automatically. By default it uses http://127.0.0.1:5000 and falls back to the next free local port if needed.

For direct Flask development with hot reload, use:

FLASK_DEBUG=1 python3 app.py

Core workflow

  1. Add clients at /clients.
  2. Create invoices at /invoices/new.
  3. Mark invoices as paid from the invoice detail page.
  4. Add expenses at /expenses.
  5. Manage recurring schedules at /recurring and run due items.
  6. Complete month-end close checklist at /close.
  7. Review reports at /reports.
  8. Review AI/local insights at /insights.
  9. Download invoice PDFs at /invoices/<id>/pdf.
  10. Download report PDFs at /reports/pdf?start=YYYY-MM-DD&end=YYYY-MM-DD.
  11. Review journal entries at /journal.
  12. Create/restore backups from /data.

Accounting behavior

  • Creating an invoice posts:
    • Debit 1100 Accounts Receivable
    • Credit 4000 Sales Revenue
  • Marking an invoice paid posts:
    • Debit 1000 Cash
    • Credit 1100 Accounts Receivable
  • Adding an expense posts:
    • Debit selected expense account (e.g. 5200 Software Expense)
    • Credit 1000 Cash

Export data

Use the export buttons from Invoices, Expenses, Reports, or Journal pages.

CSV endpoints:

  • /exports/invoices.csv
  • /exports/expenses.csv
  • /exports/journal.csv

Backup and restore

  • One-click backup creates timestamped .db snapshots in backups/.
  • One-click restore can restore from any listed local backup.
  • A safety snapshot is created automatically before each restore.
  • In packaged mode, backups live under ~/.local-llc-accounting/backups (or ACCOUNTING_APP_HOME/backups).

Insights tab

  • Local mode: analyzes the SQLite DB directly and produces actionable markdown insights.
  • API mode: sends DB context (and optional markdown notes) to an OpenAI-compatible /v1/chat/completions endpoint.
  • Optional notes path defaults to insight_notes/ and supports .md file or folder input.
  • insight_notes/Dynamic Insights.md is append-only from the UI (add/read enabled, no delete action).
  • In packaged mode, notes default to ~/.local-llc-accounting/insight_notes.

Notes

  • This is for internal bookkeeping and is not tax advice.
  • Before filing taxes, have your CPA review account mappings and entries.

Package As Local App

Build a standalone local app bundle (no separate app.py terminal process required):

source .venv/bin/activate
python3 -m pip install -r requirements-dev.txt
./scripts/package_app.sh

After building, run:

./dist/LocalLLCAccounting/LocalLLCAccounting

Packaged mode keeps data local-first in ~/.local-llc-accounting by default. Set ACCOUNTING_APP_HOME to store the database/backups/insight notes in a different local folder.

About

Local first. Personalized Accounting Software for small and mid sized businesses. AI enabled insights. Haven't packaged it so that you can run it the way you want.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors