Skip to content

Westforce - Australian Moving Company Management System. A comprehensive ERP system designed for moving companies across Australia with client management, invoicing, expense tracking, and business analytics.

Notifications You must be signed in to change notification settings

gmartincor/westforce

Repository files navigation

Westforce - Australian Removals Company Management System

A comprehensive ERP system designed for single company management with hierarchical business lines, professional invoicing, and complete data portability.

πŸš€ Key Features

🏒 Single Company Architecture

  • Secure single company management
  • Independent data and configurations
  • Optimized for single business operations

πŸ‘₯ 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
  • Single 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
  • Company-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
β”œβ”€β”€ 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 single company architecture
  • 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/westforce.git
    cd westforce
  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 westforce
    cp .env.example .env
    # Edit .env with your database configuration
  4. Run migrations

    python manage.py migrate
  5. Create admin user

    python manage.py create_single_user --interactive
  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
  • Application 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 single-user setup
python manage.py verify_single_user_migration

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

πŸ“ Project Structure

westforce/
β”œβ”€β”€ 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 Australian removals companies

About

Westforce - Australian Moving Company Management System. A comprehensive ERP system designed for moving companies across Australia with client management, invoicing, expense tracking, and business analytics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published