Full-stack app for participatory water pricing using Bezier curves. - Backend: FastAPI + SQLAlchemy + SQLite with JWT auth - Frontend: Nuxt 4 + TypeScript with interactive SVG editor - Math engine: cubic Bezier tarification with Cardano solver - Admin: commune management, household import, vote monitoring, CMS - Citizen: interactive curve editor, vote submission - Docker-compose deployment ready Includes fixes for: - Impact table snake_case/camelCase property mismatch - CMS content backend API + frontend editor (was stub) - Admin route protection middleware - Public content display on commune page - Vote confirmation page link fix Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
658 B
Python
20 lines
658 B
Python
from pydantic_settings import BaseSettings
|
|
from pathlib import Path
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
APP_NAME: str = "SejeteralO"
|
|
DEBUG: bool = True
|
|
DATABASE_URL: str = "sqlite+aiosqlite:///./sejeteralo.db"
|
|
SECRET_KEY: str = "change-me-in-production-with-a-real-secret-key"
|
|
ALGORITHM: str = "HS256"
|
|
ADMIN_TOKEN_EXPIRE_HOURS: int = 24
|
|
CITIZEN_TOKEN_EXPIRE_HOURS: int = 4
|
|
BASE_DIR: Path = Path(__file__).resolve().parent.parent
|
|
CORS_ORIGINS: list[str] = ["http://localhost:3000", "http://localhost:3001", "http://localhost:3009"]
|
|
|
|
model_config = {"env_file": ".env", "env_file_encoding": "utf-8"}
|
|
|
|
|
|
settings = Settings()
|