Run everything in Docker. No local Node or Python installs are modified.
Start services:
docker compose up --buildServices:
- Frontend: http://localhost:3000
- Backend: http://localhost:8000 (health:
/health, matches:/matches)
Vite inlines env at build time. If your backend runs elsewhere, set VITE_API_BASE at build time.
Build image (replace API base as needed):
docker build \
--build-arg VITE_API_BASE=http://localhost:8000 \
-t hackathon-frontend:latest .Run container:
docker run --rm -p 3000:80 hackathon-frontend:latestWe added a FastAPI server that computes LLM-based card matching and suggests categories. It uses LangChain with OpenAI optionally (falls back to heuristic if no key).
Start everything with Docker Compose:
docker compose up --buildThe frontend calls the backend at http://localhost:8000 (provided via build arg and also inferred at runtime), so no local environment setup is required.
- Frontend build arg:
VITE_API_BASE(Compose passeshttp://localhost:8000) - Backend:
OPENAI_API_KEY,OPENAI_MODEL(defaultgpt-4o-mini),CORS_ORIGINS
- Card type now supports optional
llmCategoryto store suggested categories. - Card type now supports optional
llmTagsto store suggested tags. - On submit (RequestHelp/ProvideSolution), the app calls
/enrichto normalize category/tags automatically; users can still edit fields. - If the backend is unreachable, the app falls back to local matching by tag overlap and skips enrichment.
- API not reachable banner: Ensure the backend container is healthy at
http://localhost:8000/health. - Different API port: Adjust
docker-compose.ymlVITE_API_BASEbuild arg and the backend port mapping accordingly.