Rozhina Ahmadi, Esther Lozano, Álvaro Terrón, Marcel Claramunt
app: SvelteKit static web appapi: Python FastAPI backendsdk: Python SDK for the backend with all logic
- Install Node.js and npm
cd appnpm installnpm run dev --host
- Create virtual env (first time)
python3.11 -m venv .venv- Activate virtual env
source .venv/bin/activate- Install dependencies
pip install -r requirements.txt- Run server
python api/main.py- Build Docker image
docker build -t smart-app -f api/Dockerfile .- Run Docker container
docker run -p 80:80 smart-appfrom datriever.smart_app import portfolio
solar = portfolio.Source(cost=50, emissions=30, risk=0.05, p_min=0.1, p_max=0.7)
wind = portfolio.Source(cost=40, emissions=40, risk=0.1, p_min=0.05, p_max=0.7)
nuclear = portfolio.Source(cost=70, emissions=10, risk=0.2, p_min=0.05, p_max=0.6)
portfolio.optimize([solar, wind, nuclear], goals={'green': 0.5, 'cheap': 1})
# [0.25, 0.7, 0.05]
portfolio.cost([(0.5, solar), (0.3, wind), (0.2, nuclear)])
# 51.0
portfolio.emissions([(0.5, solar), (0.3, wind), (0.2, nuclear)])
# 29.0
portfolio.risk([(0.5, solar), (0.3, wind), (0.2, nuclear)])
# 0.095