A comprehensive ERP system designed for single company management with hierarchical business lines, professional invoicing, and complete data portability.
- Secure single company management
- Independent data and configurations
- Optimized for single business operations
- Advanced client management with soft-delete protection
- Service categorization (PERSONAL/BUSINESS)
- Automated payment tracking and remainder management
- Client service lifecycle management
- Up to 3-level business structure
- Dynamic business line management
- Revenue and client analytics per business line
- Flexible business organization
- Complete invoice generation with PDF support
- Single company invoice management
- Professional invoice templates
- Invoice item management with tax calculations
- Categorized expense tracking
- Monthly and yearly expense analytics
- Receipt attachment support
- Business expense reporting
- 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
- Real-time business metrics
- Revenue and expense analytics
- Client and service overview
- Business performance indicators
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
- 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
- Python 3.8+
- PostgreSQL 12+
- Docker (recommended for development)
-
Clone the repository
git clone https://github.com/gmartincor/westforce.git cd westforce -
Start with Docker
docker-compose up -d
-
Access the application
- Main application: http://localhost:8001
- Admin interface: http://localhost:8001/admin
-
Create virtual environment
python -m venv venv source venv/bin/activate # On macOS/Linux # or venv\Scripts\activate # On Windows
-
Install dependencies
pip install -r requirements.txt
-
Configure database
createdb westforce cp .env.example .env # Edit .env with your database configuration -
Run migrations
python manage.py migrate
-
Create admin user
python manage.py create_single_user --interactive
-
Start development server
python manage.py runserver
docker-compose -f docker-compose.prod.yml up -d-
Set production environment
export DJANGO_SETTINGS_MODULE=config.settings.production -
Initialize production
python manage.py check_production_ready python manage.py init_production
-
Start with Gunicorn
gunicorn config.wsgi:application --config gunicorn.conf.py
The system includes a comprehensive data portability solution:
- 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
- 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
Access via navigation menu β "Export Data" β Select format β Download
# 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_syncwestforce/
βββ 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
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Repository: https://github.com/gmartincor/westforce
- Issues: https://github.com/gmartincor/westforce/issues
- Releases: https://github.com/gmartincor/westforce/releases
Developed with β€οΈ for Australian removals companies