Catalog PyPI
Back to packageRELEASE DETAILS

0.1.1

PyPI

accountr

A simple accounting application built with Python, Streamlit, and SQLAlchemy

accountingbookkeepingfinancestreamlit
Published2 Jan 2026
Direct dependencies8
Transitive dependenciesNot calculated

README

Version 0.1.1 documentation

Simple Accounting App

A simple accounting application built with Python, Streamlit, and SQLAlchemy.

Features

  • Multi-language Support: Available in English, French, and German
  • Chart of Accounts Management: Add, edit, and manage accounts categorized as Active (Assets), Passive (Liabilities/Equity), Expenses, and Products (Revenue)
  • Journal Entries: Record double-entry bookkeeping transactions with validation
  • Account Balances: View balances for all accounts with filtering and detailed transaction history
  • Balance Sheet: Generate and view balance sheet with automatic balance validation
  • Result Sheet (Income Statement): View revenue and expenses with net income calculation
  • Excel Export: Export all accounting data to formatted Excel workbooks
  • Database Management: Backup, restore, and manage database files
  • Year-End Closing: Automated year-end closing with comprehensive backup packages

Technologies Used

  • Frontend: Streamlit for web interface
  • Database: SQLite with SQLAlchemy ORM
  • Data Processing: Pandas for data manipulation and analysis
  • Export: XlsxWriter for Excel report generation
  • Visualization: Plotly for charts (if needed)

Installation

pip install accountr

From Source

  1. Clone or download this repository
  2. Install the package in development mode:
    pip install -e .
    

Usage

After Installation from PyPI

accounting-app

From Source or Development

python main.py

Or alternatively:

streamlit run src/accounting/app.py
  1. Open your web browser and navigate to the URL shown in the terminal (usually http://localhost:8501)

  2. Select your preferred language from the dropdown (English, French, or German)

Application Structure

The application follows a modular architecture with clear separation of concerns:

Core Modules (src/accounting/)

  • app.py: Main Streamlit application entry point with navigation
  • database.py: SQLAlchemy models (Account, JournalEntry) and database configuration
  • constants.py: Centralized configuration values and magic numbers
  • helpers.py: Common helper functions for validation and formatting
  • accounting_utils.py: Business logic for accounting calculations (balance, trial balance, etc.)
  • translation_utils.py: Multi-language support utilities (English, French, German)
  • translations.py: Translation strings for all supported languages

Page Modules (src/accounting/pages/)

  • chart_of_accounts_page.py: Chart of Accounts management
  • journal_entries_page.py: Journal entry recording and editing
  • account_balances_page.py: Account balance viewing with filtering
  • result_sheet_page.py: Income Statement (Result Sheet) generation
  • balance_sheet_page.py: Balance Sheet generation with validation

File Management

  • database_switcher.py: Database backup, restore, and file operations
  • database_management_ui.py: UI components for file management and year-end closing
  • excel_utils.py: Excel formatting utilities and configuration
  • excel_export.py: Excel export logic for all accounting reports

Database

  • Default database stored in src/accounting/server_files/
  • requirements.txt: Legacy dependency file (now replaced by pyproject.toml)

Database

The application uses SQLite for data storage. The database file (accounting.db) will be created automatically in the same directory as the application.

Features Overview

Chart of Accounts Tab

  • View all active accounts in a table format
  • Add new accounts with account codes, names, types, and categories
  • Deactivate accounts (soft delete)

Journal Entries Tab

  • View recent journal entries
  • Add new journal entries with double-entry validation
  • Select debit and credit accounts from dropdown menus

Account Balances Tab

  • View balances for all accounts
  • Filter by category or account type
  • Summary metrics showing totals by account type

Balance Sheet Tab

  • Traditional balance sheet format
  • Shows Assets on the left, Liabilities and Equity on the right
  • Automatic balance validation (Assets = Liabilities + Equity)

Code Quality

This project follows professional coding standards:

  • No Magic Numbers: All configuration values centralized in constants.py
  • DRY Principle: Common functionality extracted into helper modules
  • Separation of Concerns: Clear boundaries between UI, business logic, and data layers
  • Modular Architecture: Focused modules with single responsibilities
  • Type Hints: Function signatures include type information where appropriate
  • Documentation: Functions include docstrings explaining purpose and parameters

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 8

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
streamlit
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
streamlit>=1.52.0runtime
sqlalchemy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
sqlalchemy>=2.0.23runtime
pandas
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
pandas>=2.1.4runtime
plotly
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
plotly>=5.17.0runtime
xlsxwriter
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
xlsxwriter>=3.1.9runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
pytest>=7.0; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
ruff>=0.14.8; extra == "dev"runtime
mypy
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.12",
  "evaluation": "NOT_EVALUATED"
}
mypy>=1.0; extra == "dev"runtime

Distribution files

1 collected
accountr-0.1.1-py3-none-any.whl

bdist_wheel · 50.71 KB · Python py3

Source file

Repository

PENDING
njacquemin1993/accounting

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:01 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:5383bac609b95131b22c1707528ad58bb5ea00a6e62ed2f1dc988739697507b7

Other collected versions

View all collected versions →