We welcome contributions to the KWC EV Charging Station Network Optimization project! This document outlines the process for contributing to the project.
- Contributions
- Python 3.12.7 or higher
- Gurobi Optimizer License
- OpenChargeMap API key
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/your-username/kw-ev-charging-optimization.git cd kw-ev-charging-optimization
-
Create virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install in development mode:
pip install -e .
-
Configure environment:
cp .env.example .env # Edit .env with your API keys
main
: Production-ready codedevelop
: Integration branch- Feature branches:
feature/description
- Bug fixes:
fix/description
- Documentation:
docs/description
- Run tests:
pytest tests/
- Check coverage:
pytest --cov=src tests/
- Verify setup:
python src/verify_setup.py
- Follow PEP 8
- Use type hints for all functions
- Maximum line length: 88 characters
- Comprehensive docstrings
- Function docstrings with:
- Purpose
- Parameters
- Returns
- Examples
- Module documentation
- Updated README for new features
# Standard library
import os
import sys
# Third-party packages
import numpy as np
import pandas as pd
# Local modules
from src.data import utils
- Create feature branch
- Implement with tests
- Update documentation
- Run full test suite
- Submit pull request
- Create bug fix branch
- Add reproducing test
- Fix bug
- Verify tests
- Submit pull request
- Update notebooks
- Document changes
- Test solver behavior
- Update parameters
- Validate results
- Update documentation
- Run all tests
- Format code
- Create detailed PR description
- Await review
data/
├── raw/ # Original data files
│ ├── boundaries/ # Geographic boundaries
│ ├── charging_stations/
│ ├── ev_fsa/ # EV ownership data
│ ├── population/ # Census data
│ └── potential_locations/
└── processed/ # Processed datasets
├── demand_points/
├── ev_fsa_analyzed/
├── integrated_analyzed_data/
└── optimization_inputs/
- Raw data is immutable
- Document all processing steps
- Use provided utility functions
- Include data validation
- Maintain data versions
kw-ev-charging-optimization/
├── data/ # Data storage
├── notebooks/ # Analysis notebooks
├── src/ # Source code
│ ├── data/ # Data processing
│ ├── model/ # Optimization model
│ └── visualization/
├── tests/ # Test modules
└── configs/ # Configuration files
- Data Manager (
src/data/data_manager.py
) - Network Optimizer (
src/model/network_optimizer.py
) - Analysis Notebooks (
notebooks/
) - Visualization Tools (
src/visualization/
)
- Submit issues for bugs
- Start discussions for features
- Tag maintainers for review