CVin.Bio
io.github.vedangvatsa123/cvinbio
Documentation
CVin.Bio
CVin.Bio generates web profiles from CV documents using AI. Users upload their CVs, and the application extracts and routes the structured data into an editable profile hosted at a custom URL.
š Key Features
- š AI CV Parsing: Upload a CV; the backend uses data extraction (
pdf-parse) to categorize and store the user's personal information, work history, education, and skills. - šØ Structural Rendering: Generates a consistent, monochrome profile mapping without relying on manual themes.
- ā” OpenGraph Edge Generation: Next.js uses the Edge Runtime (Satori) to automatically generate dynamic
1200x630PNG social previews mapping the user's routing URL and avatar metrics. - š Supabase Integration: Connects to PostgreSQL using Row Level Security (RLS) and GoTrue Auth to persist user edits.
- āļø Data Editor: A client-facing configuration dashboard to mutate work summaries, upload new media, and re-order data arrays.
š ļø Tech Stack
- Framework: Next.js 15 (App Router, Server Components)
- Language: TypeScript
- UI & Styling: Tailwind CSS v3 & Shadcn UI
- Backend & Database: Supabase (PostgreSQL & Auth)
- Image Generation: Next/OG
š Project Structure
/
āāā src/
ā āāā app/
ā ā āāā [slug]/ # Public Candidate Profile routes
ā ā ā āāā page.tsx # Clean Server Component fetching public profiles
ā ā ā āāā opengraph-image.tsx # Edge rendering script natively drawing the SVG/PNG previews
ā ā āāā editor/ # Authorized CV editing interface
ā ā āāā api/parse-resume/ # Local algorithmic RegEx parsing route
ā ā āāā opengraph-image.tsx # Root landing page dynamic fallback preview
ā ā āāā page.tsx # Primary Landing interface
ā ā āāā layout.tsx # Symmetrical Universal UI boundaries
ā ā
ā āāā components/ # Shadcn UI atoms and universal Header elements
ā āāā lib/ # Server utilities (Supabase Admin, Heuristics arrays)
ā āāā utils/ # Client-side Supabase Browser constructors
ā āāā types/ # Strict universal TypeScript interfaces
ā
āāā docs/
ā āāā design_guidelines.md # Internal Brand identity and AI Prompts rules
āāā ...
šļø Getting Started Locally
To run CVin.Bio perfectly locally, you will strictly only need a Supabase Database instance.
-
Install Dependencies:
npm install -
Environment Variables: Create a new
.env.localfile strictly mapping your keys into the repository root:NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key NEXT_PUBLIC_SITE_URL=http://localhost:3000 -
Boot Development Server:
npm run dev
The application strictly renders natively on http://localhost:3000.
Built with strict mathematical geometry and aggressive minimalism.
