Initial scaffold: Flask/SQLite backend, React/Vite PWA frontend
Backend: receipt upload -> LLM vision extraction (OpenAI-compatible, provider-agnostic), item review/edit, per-group splitting against Cospend projects/members, highlight+upload via WebDAV, public share link, bill creation via Cospend's OCS API (verified against real source, not just doc summaries). Frontend: capture -> review -> group -> summary flow as an installable PWA. install.sh / run.sh (venv + npm, tmux session) instead of Docker, per the ~/Projects/gain pattern.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Copy to .env and fill in. Never commit .env.
|
||||
|
||||
# --- Nextcloud ---
|
||||
NC_BASE_URL=https://cloud.dominik-roth.eu
|
||||
NC_USERNAME=dodox
|
||||
# Settings -> Security -> "Devices & Sessions" -> create app password
|
||||
NC_APP_PASSWORD=
|
||||
# Folder (relative to the user's files root) receipt images get uploaded to.
|
||||
# Created automatically on first upload if missing (each path segment).
|
||||
NC_UPLOAD_FOLDER=Documents/Cospend/Assets
|
||||
|
||||
# --- Cospend ---
|
||||
# Optional: pre-selects a project in the UI. The app lists all your Cospend
|
||||
# projects via the API (GET /ocs/v2.php/apps/cospend/api/v1/projects), so
|
||||
# this is just a convenience default, not required.
|
||||
COSPEND_PROJECT_ID=
|
||||
|
||||
# --- Vision LLM (OpenAI-compatible chat completions API) ---
|
||||
# OpenAI example:
|
||||
# LLM_BASE_URL=https://api.openai.com/v1
|
||||
# LLM_MODEL=gpt-4o-mini
|
||||
# Gemini (OpenAI-compat layer) example:
|
||||
# LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
|
||||
# LLM_MODEL=gemini-2.0-flash
|
||||
LLM_BASE_URL=
|
||||
LLM_API_KEY=
|
||||
LLM_MODEL=
|
||||
|
||||
# --- Flask ---
|
||||
FLASK_SECRET_KEY=dev-change-me
|
||||
DATABASE_PATH=instance/wgbill.sqlite3
|
||||
Reference in New Issue
Block a user