Files
capitalism-eats-the-world/README-dev.md

2.4 KiB

Development Setup

This document describes how to set up and run the Markov Economics application in a development environment.

Prerequisites

  • Docker
  • Docker Compose

Development Environment

For development purposes, we provide a separate Docker Compose configuration that runs the application without Caddy:

# Start the development environment
docker-compose -f docker-compose-dev.yml up -d

# Stop the development environment
docker-compose -f docker-compose-dev.yml down

The application will be available at http://localhost:5000

Differences from Production

The development setup differs from the production setup in the following ways:

  1. Direct access to the application on port 5000 (no Caddy reverse proxy)
  2. Development mode enabled (FLASK_ENV=development)
  3. Source code mounted as a volume for live reloading during development
  4. No SSL/TLS encryption (HTTP only)

Troubleshooting

If you encounter port conflicts:

  1. Check what's running on port 5000:

    lsof -i :5000
    
  2. Stop any conflicting processes:

    pkill -f "python.*run.py"
    
  3. Stop any conflicting Docker containers:

    docker-compose down
    

Testing

The project includes several test scripts to verify functionality:

  1. test_core.py - Tests core functionality including Markov chains, economic agents, and simulations
  2. test_charts.py - Tests charting functionality through the web API
  3. test_simulation.json - Sample parameters for testing

To run the core tests:

docker-compose -f docker-compose-dev.yml up -d
python test_core.py

To run the chart tests:

docker-compose -f docker-compose-dev.yml up -d
python test_charts.py

Testing the Wealth Distribution Fix

The recent fix for the wealth distribution histogram ensures that:

  1. The backend correctly calculates agent wealth using the proper accessor methods
  2. The frontend properly handles and displays distribution data
  3. Debug logging is available to troubleshoot data flow issues

To test the fix:

  1. Start the development environment
  2. Navigate to http://localhost:5000
  3. Start a simulation with default parameters
  4. Observe the wealth distribution histogram populating with data