Development Setup
Prerequisites
- Python 3.10 to 3.13
- Node.js (LTS) and Yarn 3.5.0
- Git
1. Clone the Repository
git clone https://github.com/DashAISoftware/DashAI.git
cd DashAI
git checkout develop
2. Backend Setup
Create and activate a Python environment (conda or venv):
conda create -n dashai python=3.10
conda activate dashai
Install the package in editable mode with development dependencies:
pip install -r requirements.txt
pip install -e .
pip install -r requirements-dev.txt
pre-commit install
3. Frontend Setup
cd DashAI/front
yarn install
Running in Development
Backend (from the repo root):
python -m DashAI
# or
dashai --no-browser --logging-level INFO
Frontend (development server with hot reload):
cd DashAI/front
yarn start
The backend runs at http://localhost:8000 and the frontend dev server at http://localhost:3000.
Linting and Formatting
Python (using Ruff):
ruff check . --fix
ruff format .
Frontend (ESLint + Prettier):
cd DashAI/front
yarn lint
Pre-commit Hooks
DashAI uses pre-commit hooks for consistent code quality:
# Run all hooks manually
pre-commit run --all-files
# Run on staged files (happens automatically on git commit)
pre-commit run
Project Structure
DashAI/
├── DashAI/
│ ├── __main__.py # CLI entry point (Typer)
│ ├── back/ # FastAPI backend
│ │ ├── app.py # Application factory
│ │ ├── container.py # Kink DI container
│ │ ├── initial_components.py # Startup component registration
│ │ ├── api/ # Routers and request/response schemas
│ │ ├── converters/ # Converter components
│ │ ├── dataloaders/ # DataLoader components
│ │ ├── dependencies/ # Registry, database engine, job queue
│ │ ├── explainability/ # Explainer components
│ │ ├── exploration/ # Explorer components
│ │ ├── job/ # Job implementations
│ │ ├── metrics/ # Metric components
│ │ ├── models/ # ML model components
│ │ ├── optimizers/ # Hyperparameter optimizer components
│ │ ├── plugins/ # Plugin loading system
│ │ ├── tasks/ # Task components
│ │ └── types/ # Shared type definitions
│ └── front/ # React frontend
│ └── src/
│ ├── api/ # HTTP client
│ ├── components/ # UI components
│ └── pages/ # Page components
├── docs/ # Documentation site (Docusaurus)
├── tests/ # Backend tests
└── alembic/ # Database migrations