Top-Level Structure
Backend (backend/)
The Django backend handles all API endpoints, business logic, and async processing.
Frontend (frontend/)
The React frontend provides the user interface.
Key Directories
e2e/
End-to-end tests using Playwright. See the E2E Testing Guide.
mxl/
Documentation and examples for MXL (Maybern Expression Language), our custom formula language for financial calculations. See the MXL Language Reference.
shadow/
The shadow package handles data loading and import operations. Used primarily for integration testing and data migrations.
tools/
Internal development tools including:
- lark-ts-generator: Generates TypeScript parsers from Lark grammar files
Configuration Files
| File | Purpose |
|---|---|
justfile | Task runner commands |
docker-compose.yml | Local development containers |
docker-compose.e2e.yml | E2E testing containers |
.github/ | GitHub Actions workflows |
Development Workflow
- Backend changes: Work in
backend/server/apps/ - Frontend changes: Work in
frontend/src/ - API changes: Update backend APIs, then regenerate frontend clients with
just codegen clients - Documentation: Update files in
docs/