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
From PyPI (Recommended)
pip install accountr
From Source
- Clone or download this repository
- 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
-
Open your web browser and navigate to the URL shown in the terminal (usually
http://localhost:8501) -
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 navigationdatabase.py: SQLAlchemy models (Account, JournalEntry) and database configurationconstants.py: Centralized configuration values and magic numbershelpers.py: Common helper functions for validation and formattingaccounting_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 managementjournal_entries_page.py: Journal entry recording and editingaccount_balances_page.py: Account balance viewing with filteringresult_sheet_page.py: Income Statement (Result Sheet) generationbalance_sheet_page.py: Balance Sheet generation with validation
File Management
database_switcher.py: Database backup, restore, and file operationsdatabase_management_ui.py: UI components for file management and year-end closingexcel_utils.py: Excel formatting utilities and configurationexcel_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 bypyproject.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
Metadata
Release files for accountr 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| accountr-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / accountr-0.1.1-py3-none-any.whl
| Download URL | accountr-0.1.1-py3-none-any.whl |
|---|---|
| Size | 51.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f54539e1c69448c6fb3a5c755ad1a3b0bad1dd7eafeb1b04cfbc830edf2f403
|
|
BLAKE2b-256 checksum How to use checksums |
cd6ac75dfb98e3104d1fbf0cd77eba1071412d1f664fd6891609ac113b3e7ca4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 2, 2026.
Transparency logSecurity for accountr 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 1 file in this release has been uploaded with provenance metadata.
Attestation for accountr-0.1.1-py3-none-any.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.