Skip to content

Repository files navigation

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

Setup

Environment Variables

Create a .env.local file in the project root with the following variables:

# Clerk Authentication (Required)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_your_clerk_publishable_key_here
CLERK_SECRET_KEY=sk_test_your_clerk_secret_key_here

# Gemini AI API (Required)
GEMINI_API_KEY=your_gemini_api_key_here

# Firebase Admin (Required for user data storage)
FIREBASE_PROJECT_ID=your_firebase_project_id
FIREBASE_CLIENT_EMAIL=your_firebase_client_email
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\nyour_firebase_private_key_here\n-----END PRIVATE KEY-----\n"

# MongoDB (Optional - currently using Firebase)
MONGODB_URI=mongodb://localhost:27017
MONGODB_DB=cv-adapter

Important Notes:

  • Make sure all Clerk keys are properly set - the 401 errors you're seeing are likely due to missing Clerk environment variables

  • The Firebase private key should include the full key with proper line breaks (\n)

  • Without proper environment variables, authentication will fail and you'll see 401 Unauthorized errors

  • Run the dev server:

npm run dev

Notes

  • Free platform: Users sign up with Google via Clerk authentication
  • Usage limits: Admin-configurable limits for AI adaptations and resume builds
  • No payment system: Simple PayPal "Buy Me a Coffee" link for donations
  • AI adaptation via API route: src/app/api/adapt/route.ts
  • Export to PDF uses html2canvas + jsPDF

Authentication Setup (Clerk)

  1. Create a Clerk account at clerk.com
  2. Create a new application
  3. Enable Google OAuth in the Clerk dashboard
  4. Copy your publishable and secret keys to .env.local
  5. Configure allowed redirect URLs in Clerk dashboard

Firebase Setup (for user data storage)

  1. Create a Firebase project in the Firebase Console
  2. Enable Firestore (native mode)
  3. Create a Service Account key (Project Settings > Service Accounts > Generate new private key)
  4. Add the Firebase Admin credentials to .env.local

Usage:

  • Authentication handled by Clerk with Google OAuth
  • User profiles and usage counters stored in Firestore users/{clerk_user_id}
  • Usage limits configurable by admin users via /admin dashboard
  • Admin privileges granted by setting role: "admin" in Clerk user metadata

About

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages