PyGtk-Posting is an ERP (Enterprise Resource Planning) system that combines accounting, inventory management, payroll, and manufacturing capabilities into a single integrated application. Built with Python 3, GTK+ 3, and PostgreSQL, it provides a native Linux desktop experience.
Status: Alpha License: GPL v3
- Double-entry accounting system with general ledger
- Bank reconciliation for bank and credit card statements
- Account management with chart of accounts configuration
- Budget tracking and configuration
- Financial reports including profit & loss, net worth, and sales tax reports
- Check writing and payment processing
- Complete customer database with contact information
- Invoice creation and management (draft and completed)
- Payment tracking and receipt generation
- Credit memos and finance charges
- Customer statements with payment history
- Job sheets for project tracking
- Track unpaid invoices and aging
- Vendor contact database
- Purchase order creation and management (draft, unprocessed, and completed)
- Vendor payments and history tracking
- Vendor statement reconciliation
- Product catalog with barcode support
- Inventory tracking with real-time quantity updates
- Inventory adjustments and counts
- Product locations and warehouse management
- Inventory history and audit trails
- Kit products with bill of materials
- Assembly management with version control
- Manufacturing projects and work orders
- Serial number tracking for assembled products
- Bill of materials and component tracking
- Manufacturing history and reporting
- Employee management with contact information
- Pay stub generation and history
- Time tracking integration
- Payroll reporting
- Comprehensive financial reports (profit/loss, balance sheet, net worth)
- Customer and vendor history reports
- Invoice and purchase order summaries
- Manufacturing and inventory reports
- Banking reports (deposits, credit card statements)
- Charts and visualizations using Matplotlib
- Export to PDF and Excel formats
- Time clock system for employee tracking
- Document management with scanning support (SANE)
- Barcode generation and label printing
- Complete search functionality across all modules
- Data import/export tools
- Database backup and restore
- Multi-database support (PostgreSQL and SQLite for configuration)
- Document templates using LibreOffice format (.odt)
- Keyboard shortcuts and quick command system
- Python 3 - Main programming language
- GTK+ 3 (3.20+) - User interface toolkit
- Glade (3.38.2+) - UI design and layout
- PostgreSQL 10+ - Primary database (for business data)
- SQLite - Configuration database
- psycopg2 - PostgreSQL database adapter
- APSW - SQLite wrapper
- Genshi - Template engine for document generation
- lxml - XML processing
- CairoCFFI - Graphics rendering
- Matplotlib - Charts and graphs
- XlsxWriter, xlrd - Excel file handling
- py3o - LibreOffice template processing
- python-sane - Document scanning
- unoconv - Document format conversion
- GooCanvas - Canvas graphics for diagrams
- Linux operating system
- Python 3.x
- PostgreSQL 10 or higher
- GTK+ 3.20 or higher
- Glade 3.38.2 or higher
All required Python packages are listed in requirements.txt:
- python3-apsw
- python3-cairocffi
- python3-genshi
- python3-lxml
- python3-matplotlib
- python3-psycopg2
- python3-sane
- python3-tk
- python3-uno
- python3-xlrd
- python3-xlsxwriter
- gir1.2-goocanvas-2.0
# Install the .deb package (replace <version> with the actual version number)
sudo dpkg -i pygtk_posting_<version>.deb
# Install any missing dependencies
sudo apt-get install -f# Clone the repository
git clone https://github.com/benreu/PyGtk-Posting.git
cd PyGtk-Posting
# Install dependencies (Debian/Ubuntu)
sudo apt-get install python3-apsw python3-cairocffi python3-genshi \
python3-lxml python3-matplotlib python3-psycopg2 python3-sane \
python3-tk python3-uno unoconv python3-xlrd python3-xlsxwriter \
gir1.2-goocanvas-2.0
# Run the application
./pygtk-posting-
First Launch: On first run, PyGtk-Posting will create configuration directories in
~/.config/posting/ -
Database Setup: Configure your PostgreSQL database connection through the initial setup wizard
-
Company Setup: Create your company profile with business information
-
Chart of Accounts: Configure your chart of accounts based on your business needs
-
Start Using: Begin entering customers, vendors, products, and transactions
PyGtk-Posting uses:
- PostgreSQL for all business data (transactions, customers, inventory, etc.)
- SQLite for application configuration stored in
~/.config/posting/
See POSTGRES_README for detailed PostgreSQL setup instructions.
PyGtk-Posting/
βββ src/ # Main source code
β βββ admin/ # Administrative tools
β βββ db/ # Database utilities (backup, restore, tools)
β βββ inventory/ # Inventory management
β βββ invoice/ # Invoicing system
β βββ manufacturing/ # Manufacturing and assembly
β βββ payroll/ # Payroll management
β βββ reports/ # Reporting engine
β βββ *.py # Core modules (accounts, customers, vendors, etc.)
βββ templates/ # LibreOffice document templates (.odt)
βββ help/ # Help documentation
βββ icons/ # Application icons
βββ pygtk-posting # Main launcher script
- Help documentation is available within the application
- Additional documentation files:
INSTALL,POSTGRES_README - Screenshots available at: https://sourceforge.net/projects/pygtk-posting/
This is an open, user-driven project! Contributions are welcome:
- Submit bug reports and feature requests
- Contribute code via pull requests
- Help test and improve the application
- Submit patches and improvements
PyGtk-Posting is released under the GNU General Public License v3 (GPL-3.0).
See LICENSE.md and COPYING for full license text.
If you use PyGtk-Posting for your business, please consider:
- Contributing code or documentation
- Reporting bugs and suggesting features
- Testing new features and releases