Start everything (frontend + backend) in one command:
VITE_NEMOTRON_API_KEY='your_nvidia_key' npm run dev:localNotes:
- This starts FastAPI at
http://127.0.0.1:8000 - It starts Vite on the next available port (
5174,5175, etc.) - Open
/app.htmlon that Vite URL for the practice app
npm install
npm run dev- Landing:
http://localhost:5174/ - App:
http://localhost:5174/app.html
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn server:app --reload --port 8000The Vite dev server proxies these routes to the backend:
/api/feedback/api/describe/api/correct/api/health
Production URL:
https://monaco-nine-theta.vercel.app
Health check:
https://monaco-nine-theta.vercel.app/api/health
If deploying again from local:
npx vercel deploy --prod -y --env VITE_NEMOTRON_API_KEY='your_nvidia_key' --env ALLOWED_ORIGINS='https://monaco-nine-theta.vercel.app,https://fcistud.github.io,http://localhost:5174,http://localhost:5173,http://localhost:3000'Pages URL:
https://fcistud.github.io/dance-dance-instructor/
Workflow: .github/workflows/deploy.yml.
Set repository secret:
VITE_API_BASE_URLpointing to deployed backend URL (https://monaco-nine-theta.vercel.app)
This repo supports a secrets-only setup with no manual URL entry in the UI:
- Add these repository secrets:
VERCEL_TOKENVERCEL_ORG_IDVERCEL_PROJECT_IDVITE_NEMOTRON_API_KEYVITE_API_BASE_URL(set this to your stable Vercel production URL, e.g.https://your-project.vercel.app)- Optional:
ALLOWED_ORIGINS(comma-separated CORS origins)
- Run workflow:
.github/workflows/deploy-backend-vercel.yml - Push to
main(or rerun) so.github/workflows/deploy.ymlrebuilds Pages withVITE_API_BASE_URLfrom secrets.
