Files
cvfs/apps/webapp
Claude 615d1bdb9e feat: NLP patch insights + standalone demo mode
- dlib/ai/insights.py: pure-Python NLP analysis that correlates accepted
  AI suggestion operations/keywords/sections with submission outcomes
  (pending_review / published = positive, archived = negative)
- Backend: GET /api/v1/insights route + service + Pydantic schema
- Frontend: InsightsPanel component with bar charts for operation impact,
  section impact, and keyword signal lift scores
- Insights tab added to the version panel; compact preview on doc overview
- NEXT_PUBLIC_DEMO=true makes the webapp fully standalone: loads
  DEMO_DOCUMENTS / DEMO_SUBMISSIONS / DEMO_INSIGHTS from demo-data.ts,
  disables all mutating actions, shows a DEMO badge in the top bar
- apps/webapp/public/demo-cv.docx: static dummy CV (Alex Rivera) for demo
- scripts/gen_demo_cv.py: script to regenerate the demo DOCX
- .env.example: document NEXT_PUBLIC_DEMO flag

https://claude.ai/code/session_01LWxu2qrwY6BRjUFXXn7NiM
2026-04-05 09:34:01 +00:00
..
2026-04-02 19:15:47 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00
2026-04-02 18:47:14 +02:00

Next.js 15 webapp with React 19, Tailwind CSS 4, Supabase auth, and Turbopack.

Start

bun dev
# or from project root: make run.webapp

Open http://localhost:3000.

Scripts

Command Description
bun dev Dev server with Turbopack
bun build Production build
bun start Serve production build
bun lint Run ESLint
bun typecheck Run tsc --noEmit

Auth

Auth is wired to Supabase via NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY. Set NEXT_PUBLIC_REQUIRE_AUTH=false in .env to disable auth-gating entirely (default for quick prototyping).

Structure

src/
  app/           - Next.js App Router pages
  components/    - Reusable bare-bones components (style last)
  utils/supabase - Supabase client helpers
  libs/          - Shared utilities
  locales/       - i18n strings (add languages as needed)