Google drive link : https://drive.google.com/drive/folders/1iLeFEfXtXqILk48R2uPKirBYG5t8CA65?usp=sharing
Link deploy : https://kerjoo-two.vercel.app/
NOTES : REFRESH IF ANY FILES UPLOADED OR ANY DATA CHANGES DIDNT SHOW UP (server sometimes take a long time to respond)
Full‑stack Next.js App Router project with:
- Next.js 15, React 19, Tailwind (shadcn/ui), SWR
- Neon (Postgres) via @neondatabase/serverless
- Vercel Blob for file uploads
- Optional “Company Advisor” endpoint using Google Gemini
- Node.js 18+ (recommended 20+)
- A Neon/Postgres database URL
- (Optional) Google Generative AI key for advisor
- (Optional) Vercel Blob integration for uploads
- Copy envs
- cp .env
- Fill DATABASE_URL, BLOB_READ_WRITE_TOKEN, and (optional) GEMINI_API_KEY/GEMINI_MODEL.
- Install
- npm install
- Run
- npm run dev
- Open http://localhost:3000
See .env for a complete template.
- DATABASE_URL: Postgres connection string (Neon). Used by lib/db.ts and server routes.
- BLOB_READ_WRITE_TOKEN: Required for uploads in /api/upload, /api/projects/upload.
- GEMINI_API_KEY / GEMINI_MODEL: Optional. Used by app/api/company/advisor/route.ts.
- NODE_ENV: development/production.
Note for Vercel: Add these in Project Settings → Environment Variables. If you use Vercel Integrations (Neon, Blob), the variables are added automatically—verify “DATABASE_URL” and “BLOB_READ_WRITE_TOKEN” exist.
This app uses plain SQL over @neondatabase/serverless; no ORM is required.
- If you need schema bootstrap, use the SQL files in /scripts (run in order, e.g., 000_..., 003_..., etc.).
- With Neon: apply SQL via your preferred SQL client (psql, Neon SQL shell).
- npm run dev: Start development server
- npm run build: Build production
- npm run start: Start production server
- npm run lint: Lint sources
- DATABASE_URL: lib/db.ts, employees API, analytics/recommendations routes, worker profile server code
- BLOB_READ_WRITE_TOKEN: /api/upload, /api/projects/upload
- GEMINI_*: /api/company/advisor/route.ts
- Push the repo to GitHub.
- Import into Vercel → set Environment Variables (or connect Integrations: Neon, Blob).
- Deploy. Ensure DATABASE_URL and BLOB_READ_WRITE_TOKEN are present; add GEMINI_API_KEY if Advisor is needed.
- Analytics or DB errors → Confirm DATABASE_URL uses sslmode=require for Neon.
- Upload failing 401/403 → Check BLOB_READ_WRITE_TOKEN validity and scope.
- Advisor endpoint 401/429 → Ensure GEMINI_API_KEY is set and quota applies.