Skip to content

abhinavtiwari77/Senpai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Senpai - AI-Powered Career Coach πŸš€

A comprehensive AI-powered career development platform built with Next.js 15, featuring resume building, cover letter generation, interview preparation, and personalized industry insights.

✨ Features

🎯 Core Features

  • AI Resume Builder - Create professional, ATS-optimized resumes with AI assistance
  • Cover Letter Generator - Generate tailored cover letters for specific job applications
  • Interview Preparation - Practice with AI-generated interview questions specific to your industry
  • Industry Insights Dashboard - Get real-time salary data, market trends, and skill recommendations
  • User Onboarding - Personalized experience based on your industry and experience level

πŸ” Authentication & Security

  • Secure authentication with Clerk
  • Protected routes and API endpoints
  • User profile management

🎨 UI/UX

  • Modern, responsive design with Tailwind CSS
  • Dark mode support with next-themes
  • Beautiful UI components with Shadcn UI
  • Smooth animations and transitions

πŸ€– AI Integration

  • Google Gemini AI for intelligent content generation
  • Personalized industry insights
  • Smart resume and cover letter suggestions
  • Adaptive interview questions

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15.1.4 (App Router + Turbopack)
  • UI Library: React 19
  • Styling: Tailwind CSS 3.4
  • UI Components: Shadcn UI (Radix UI primitives)
  • Forms: React Hook Form + Zod validation
  • Markdown: React Markdown + MD Editor
  • Charts: Recharts
  • Icons: Lucide React

Backend

  • Database: PostgreSQL (Neon DB)
  • ORM: Prisma 6.2.1
  • Authentication: Clerk
  • AI: Google Generative AI (Gemini 1.5 Flash)
  • Background Jobs: Inngest
  • API: Next.js Server Actions

Developer Tools

  • Language: JavaScript (with JSConfig)
  • Linting: ESLint 9 + Next.js config
  • Package Manager: npm
  • Version Control: Git

πŸ“‹ Prerequisites

Before you begin, ensure you have:

  • Node.js 18+ installed
  • npm or yarn package manager
  • A Neon DB account (free tier available)
  • A Clerk account (free tier available)
  • A Google AI Studio account for Gemini API (optional)

πŸ’• Flowchart

NotebookLM Mind Map

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/echoAbhinav/Senpai.git
cd Senpai

2. Install Dependencies

npm install

3. Environment Setup

Create a .env.local file in the root directory:

# Database (PostgreSQL - Neon DB)
DATABASE_URL="your_neon_database_url"

# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key

NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/onboarding
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/onboarding

# Google Gemini AI API Key (Optional - uses mock data if not provided)
GEMINI_API_KEY=your_gemini_api_key

Also create a .env file for Prisma CLI:

DATABASE_URL="your_neon_database_url"

4. Database Setup

Run Prisma migrations to set up your database:

# Deploy migrations
npx prisma migrate deploy

# Generate Prisma client
npx prisma generate

5. Run Development Server

npm run dev

Open http://localhost:3000 in your browser.

πŸ“ Detailed Setup Guide

Setting Up Neon DB

  1. Go to neon.tech and sign up
  2. Create a new project
  3. Copy your connection string
  4. Add it to both .env.local and .env files

Setting Up Clerk Authentication

  1. Visit clerk.com and create an account
  2. Create a new application
  3. Copy your publishable key and secret key
  4. Add them to .env.local
  5. Configure sign-in/sign-up URLs in Clerk dashboard

Setting Up Google Gemini AI (Optional)

  1. Go to Google AI Studio
  2. Sign in with your Google account
  3. Create a new API key
  4. Add it to .env.local

Note: The app works without Gemini API key by using default mock data for industry insights.

πŸ“ Project Structure

Senpai/
β”œβ”€β”€ actions/              # Server actions
β”‚   β”œβ”€β”€ cover-letter.js
β”‚   β”œβ”€β”€ dashboard.js
β”‚   β”œβ”€β”€ interview.js
β”‚   β”œβ”€β”€ resume.js
β”‚   └── user.js
β”œβ”€β”€ app/                  # Next.js app directory
β”‚   β”œβ”€β”€ (auth)/          # Authentication routes
β”‚   β”œβ”€β”€ (main)/          # Main app routes
β”‚   β”œβ”€β”€ api/             # API routes
β”‚   └── lib/             # App-specific utilities
β”œβ”€β”€ components/           # Reusable components
β”‚   β”œβ”€β”€ ui/              # Shadcn UI components
β”‚   └── ...
β”œβ”€β”€ data/                # Static data
β”œβ”€β”€ hooks/               # Custom React hooks
β”œβ”€β”€ lib/                 # Utilities and configs
β”œβ”€β”€ prisma/              # Database schema & migrations
└── public/              # Static assets

🎯 Key Features Explained

Resume Builder

  • Rich markdown editor for resume content
  • Real-time preview
  • Export to PDF functionality
  • ATS score and feedback (with AI)

Cover Letter Generator

  • Template-based generation
  • Job-specific customization
  • Company and role information
  • Multiple cover letters per user

Interview Preparation

  • Industry-specific questions
  • Multiple choice format
  • Performance tracking
  • Detailed analytics and improvement tips

Industry Insights Dashboard

  • Real-time salary ranges by role
  • Market growth rates
  • Top in-demand skills
  • Industry trends and outlook
  • Personalized skill recommendations

πŸ”§ Available Scripts

# Development
npm run dev          # Start dev server with Turbopack

# Production
npm run build        # Build for production
npm start            # Start production server

# Database
npx prisma migrate dev      # Create and apply migrations
npx prisma migrate deploy   # Deploy migrations
npx prisma generate         # Generate Prisma client
npx prisma studio          # Open Prisma Studio

# Linting
npm run lint         # Run ESLint

πŸ› Troubleshooting

Database Connection Issues

  • Ensure DATABASE_URL is correct in both .env and .env.local
  • Check that Neon DB instance is running
  • Verify network connectivity

Clerk Authentication Errors

  • Verify API keys are correct
  • Check that redirect URLs are properly configured
  • Ensure environment variables are loaded

Build Errors

  • Clear .next folder: rm -rf .next
  • Delete node_modules and reinstall: rm -rf node_modules && npm install
  • Run npx prisma generate to regenerate Prisma client

πŸ‘¨β€πŸ’» Author

Abhinav

πŸ™ Acknowledgments

Made with ❀️ by Abhinav

About

A comprehensive AI-powered career development platform built with Next.js 15, featuring resume building, cover letter generation, interview preparation, and personalized industry insights.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors