Video Driven Skill is a two-service app (Java backend + React frontend) that transforms screen recordings into runnable automation skill packages.
| Service | Directory | Dev command | Port |
|---|---|---|---|
| Backend (Spring Boot) | backend/ |
./mvnw spring-boot:run -DskipTests |
8080 |
| Frontend (Vite + React) | frontend/ |
npm run dev |
3000 |
The Vite dev server proxies /api and /ws to the backend at localhost:8080 (configured in frontend/vite.config.js).
Start the backend first — the frontend proxies API calls to it. The backend creates its SQLite DB and data directories automatically on first run at ~/video-driven-skill/.
- Backend:
cd backend && ./mvnw spotless:check(Google Java Format). Auto-fix with./mvnw spotless:apply. - Frontend: No dedicated lint script configured; use
npm run buildto catch TypeScript/build errors.
- Backend:
cd backend && ./mvnw test(no test sources currently present). - Frontend: No test framework configured.
- Backend:
cd backend && ./mvnw -DskipTests packageproduces a fat JAR intarget/. - Frontend:
cd frontend && npm run buildproduces static assets indist/.
- The Maven enforcer plugin requires Java 17+. The environment has Java 21, which is compatible.
- The backend uses Spring Boot 4.1 RC1 with the Spring milestone repository configured in the Maven wrapper properties. First-time dependency resolution takes ~20s.
- FFmpeg must be on
PATHfor video frame extraction. TheFFMPEG_PATHenv var can override this. - AI generation features require
AI_API_KEY,AI_BASE_URL, andAI_MODELenv vars (or.envfile). The app still works without them for upload/extract/edit/run workflows. - The backend
runner.timeoutdefaults to 600 seconds for skill execution.