commit 1450563ce10b05f7774a17a792a367e42027cffc Author: zwitschi Date: Mon Apr 27 17:21:01 2026 +0200 init Co-authored-by: Copilot diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..996283e --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +# Python +__pycache__/ +*.py[cod] +*.pyo +*.pyd +.Python +*.egg +*.egg-info/ +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +wheels/ +pip-wheel-metadata/ + +# Virtual environments +.venv/ +venv/ +env/ +ENV/ + +# Environment variables +.env +.env.* +!.env.example + +# DuckDB data files +data/*.db +data/*.duckdb + +# pytest +.pytest_cache/ +.coverage +htmlcov/ + +# IDE +.vscode/ +.idea/ + +# OS +.DS_Store +Thumbs.db + +# instructions +.github/instructions/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d3fac77 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# AI + +A multi-modal AI web application. Users can choose between different AI models for text generation, text-to-image, text-to-video, and image-to-video generation, powered by [openrouter.ai](https://openrouter.ai). + +## Components + +| Component | Technology | Description | +| --------- | ----------------- | -------------------------------------------------------- | +| Backend | FastAPI + uvicorn | REST API for auth, user management, and AI generation | +| Database | DuckDB | Lightweight embedded storage for users and session data | +| Frontend | Flask + Jinja2 | Server-rendered UI served at | + +## Getting Started + +### Prerequisites + +- Python 3.11+ +- An [openrouter.ai](https://openrouter.ai) API key + +### Setup + +```bash +# Clone the repo +git clone +cd 12-ai.allucanget.biz + +# Create and activate virtual environment +python -m venv .venv +# Windows +.venv\Scripts\activate +# Linux/macOS +source .venv/bin/activate + +# Install dependencies +pip install -r requirements.txt + +# Copy and fill in environment variables +cp .env.example .env +``` + +### Running the backend + +```bash +cd backend +uvicorn app.main:app --reload --port 8000 +``` + +### Running the frontend + +```bash +cd frontend +flask --app app.main run --port 5000 +``` + +### Running tests + +```bash +pytest +``` + +## Project Structure + +``` +backend/ FastAPI backend + app/ + routers/ API route handlers + services/ Business logic + models/ Pydantic models + tests/ +frontend/ Flask frontend + app/ + templates/ Jinja2 HTML templates + static/ CSS, JS, images + tests/ +data/ DuckDB database files (gitignored) +docs/ Architecture documentation +``` + +## Documentation + +For the full architecture documentation see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md), which links to all 12 arc42 sections.