Skip to content

gmartincor/zento_erp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

364 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zento ERP - Multi-Tenant Business Management System

A comprehensive ERP system designed for multi-tenant business management with hierarchical business lines, professional invoicing, and complete data portability.

πŸš€ Key Features

🏒 Multi-Tenant Architecture

  • Complete tenant isolation using PostgreSQL schemas
  • Secure multi-client management
  • Independent data and configurations per tenant

πŸ‘₯ Client & Service Management

  • Advanced client management with soft-delete protection
  • Service categorization (PERSONAL/BUSINESS)
  • Automated payment tracking and remainder management
  • Client service lifecycle management

πŸ—οΈ Hierarchical Business Lines

  • Up to 3-level business structure
  • Dynamic business line management
  • Revenue and client analytics per business line
  • Flexible business organization

πŸ’° Professional Invoicing System

  • Complete invoice generation with PDF support
  • Multi-company invoice management
  • Professional invoice templates
  • Invoice item management with tax calculations

πŸ’Έ Expense Management

  • Categorized expense tracking
  • Monthly and yearly expense analytics
  • Receipt attachment support
  • Business expense reporting

πŸ“Š Data Export & Portability

  • Complete data portability system with 4 export formats:
    • CSV: Professional tabular format with section headers
    • Excel: Multi-sheet workbooks with professional styling
    • ZIP: Individual CSV files per data type
    • JSON: Structured data for API integration
  • Tenant-level data export with metadata
  • Professional export interface integrated in navigation

πŸŽ›οΈ Advanced Dashboard

  • Real-time business metrics
  • Revenue and expense analytics
  • Client and service overview
  • Business performance indicators

πŸ—οΈ System Architecture

Applications Structure

apps/
β”œβ”€β”€ authentication/     # User authentication and management
β”œβ”€β”€ tenants/           # Multi-tenant configuration and models  
β”œβ”€β”€ core/              # Core utilities and export system
β”‚   β”œβ”€β”€ exporters/     # Data export engines (CSV, Excel, ZIP, JSON)
β”‚   β”œβ”€β”€ services/      # Export registry and serialization
β”‚   └── management/    # Production management commands
β”œβ”€β”€ accounting/        # Client and service management
β”œβ”€β”€ business_lines/    # Hierarchical business structure
β”œβ”€β”€ invoicing/         # Professional invoicing system
β”œβ”€β”€ expenses/          # Expense tracking and categorization
└── dashboard/         # Analytics and reporting dashboard

πŸ› οΈ Technology Stack

  • Backend: Django 4.2 LTS (Long Term Support)
  • Database: PostgreSQL 12+ with schema-based multi-tenancy
  • Multi-tenancy: django-tenants 3.8.0
  • Export System: openpyxl 3.1.2 for Excel generation
  • PDF Generation: ReportLab 4.0.7
  • Production: Gunicorn + WhiteNoise
  • Frontend: Django Templates with Alpine.js components

πŸ“‹ Requirements

  • Python 3.8+
  • PostgreSQL 12+
  • Docker (recommended for development)

πŸš€ Quick Start

Development with Docker

  1. Clone the repository

    git clone https://github.com/gmartincor/zento_erp.git
    cd zento_erp
  2. Start with Docker

    docker-compose up -d
  3. Access the application

Manual Installation

  1. Create virtual environment

    python -m venv venv
    source venv/bin/activate  # On macOS/Linux
    # or
    venv\Scripts\activate     # On Windows
  2. Install dependencies

    pip install -r requirements.txt
  3. Configure database

    createdb zento_erp
    cp .env.example .env
    # Edit .env with your database configuration
  4. Run migrations

    python manage.py migrate_schemas
  5. Create superuser

    python manage.py create_tenant_superuser
  6. Start development server

    python manage.py runserver

πŸ”§ Production Deployment

Using Docker

docker-compose -f docker-compose.prod.yml up -d

Manual Production Setup

  1. Set production environment

    export DJANGO_SETTINGS_MODULE=config.settings.production
  2. Initialize production

    python manage.py check_production_ready
    python manage.py init_production
  3. Start with Gunicorn

    gunicorn config.wsgi:application --config gunicorn.conf.py

πŸ“Š Data Export System

The system includes a comprehensive data portability solution:

Export Formats

  • CSV: Single file with section headers (=== TABLE_NAME ===)
  • Excel: Multi-sheet workbook with professional styling
  • ZIP: Individual CSV files compressed
  • JSON: Structured data with metadata

Export Coverage

  • Client information and statistics
  • Service details and payment history
  • Business line hierarchy and analytics
  • Company and invoice data
  • Expense categories and records
  • Tenant configuration and metadata

Usage

Access via navigation menu β†’ "Export Data" β†’ Select format β†’ Download

πŸ§ͺ Management Commands

# Production readiness check
python manage.py check_production_ready

# Initialize production environment
python manage.py init_production

# Verify production setup
python manage.py verify_production

# Reset migrations (development only)
python manage.py reset_migrations_after_sync

πŸ“ Project Structure

zento_erp/
β”œβ”€β”€ apps/                   # Django applications
β”œβ”€β”€ config/                 # Project configuration
β”œβ”€β”€ templates/              # Global templates
β”œβ”€β”€ static/                 # Static files
β”œβ”€β”€ media/                  # User uploaded files
β”œβ”€β”€ scripts/                # Deployment scripts
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ docker-compose.yml      # Docker development setup
β”œβ”€β”€ Dockerfile             # Container configuration
└── manage.py              # Django management script

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ”— Links


Developed with ❀️ for modern business management

About

Zento ERP is a customizable system for managing business processes, built with Python and Django. It offers modules for finance, inventory, sales, and more, tailored to diverse industries.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors