Skip to content

Repository files navigation

CareerSathi - Your Trusted AI Career Advisor

A personalized AI-powered career and skills advisor for Indian students, designed to provide structured career guidance, skill gap analysis, and step-by-step roadmaps. Built with Next.js 14, TypeScript, Tailwind CSS, Prisma, and Google Cloud AI.


πŸš€ Features

πŸš€ CareerSathi – Key Features

  • πŸ€– AI-Powered Career Recommendations
    Suggests 2–3 personalized career paths across tech & non-tech fields (doctor, IAS, engineer, gamer, singer, entrepreneur, etc.)
    based on skills, interests, motivation, and time availability.

  • 🎯 Career Roadmaps
    Adaptive, step-by-step roadmap updated every 4 months with latest industry trends (e.g., GenAI, creator economy).

  • πŸ“Š Skill Gap Analysis
    Compares user’s current profile with target career, highlights gaps, and suggests learning resources.

  • πŸ“ Multi-Stage Assessment
    Interactive 4-stage onboarding capturing qualifications, interests, motivation, and goals.

  • πŸ’¬ Empathetic Chatbot Guidance
    Context-aware AI chatbot for resolving doubts, handling personal challenges (finance, family, health, etc.),
    and suggesting micro-experiments for talent discovery.

  • πŸ“… Daily Micro-Tasks
    Personalized small tasks as footprints toward career success, directly integrated in the user dashboard.

  • πŸ’Ό Job Recommendation & Apply
    Matches user profiles with real-time job opportunities and allows direct applications from dashboard.

  • πŸ“± Personal Dashboard
    Central hub to track progress via weekly graphs, update profile anytime, and connect back with the chatbot.

  • πŸ” Secure Authentication
    Google OAuth + Email/Password with JWT-based sessions, CSRF protection, and secure storage.

  • 🌐 Responsive & Scalable Design
    Built on Next.js 13+, TypeScript, Tailwind, Prisma, Framer Motion for modern UX and smooth performance.

  • πŸ›‘οΈ Privacy First
    User data stored securely in PostgreSQL & Firestore, processed via Vertex AI Gemini with encryption and consent control.


πŸ“‚ Project Structure

src/
β”œβ”€β”€ app/                        # Next.js App Router – all application routes
β”‚   β”œβ”€β”€ api/                    # Serverless API endpoints
β”‚   β”‚   β”œβ”€β”€ assessment/         # Assessment logic and scoring
β”‚   β”‚   β”œβ”€β”€ auth/               # Authentication APIs (sign-in / sign-up / OAuth)
β”‚   β”‚   β”œβ”€β”€ careersathi/        # Career guidance and recommendation APIs
β”‚   β”‚   β”œβ”€β”€ charts/             # Data visualization & analytics APIs
β”‚   β”‚   β”œβ”€β”€ jobs/               # Job search & recommendation APIs
β”‚   β”‚   β”œβ”€β”€ questions/          # Dynamic question retrieval for assessments
β”‚   β”‚   └── roadmap/            # Career roadmap generation APIs
β”‚   β”œβ”€β”€ auth/                   # Public authentication pages
β”‚   β”‚   β”œβ”€β”€ signin/             # Sign-in page
β”‚   β”‚   └── signup/             # Sign-up page
β”‚   β”œβ”€β”€ dashboard/              # Personalized student dashboard
β”‚   β”‚   β”œβ”€β”€ loading/            # Suspense loading state
β”‚   β”‚   └── page/               # Dashboard entry point
β”‚   β”œβ”€β”€ plan/                   # Career roadmap UI (renamed from `roadmap`)
β”‚   β”‚   β”œβ”€β”€ [[id]]/             # Dynamic roadmap details
β”‚   β”‚   └── page/               # Roadmap landing page
β”‚   β”œβ”€β”€ practice/               # Skill-building practice modules
β”‚   β”‚   └── experiments/        # Guided micro-experiments
β”‚   β”œβ”€β”€ how-it-helps/           # Static informational page
β”‚   β”œβ”€β”€ jobs/                   # Job listings & search interface
β”‚   β”‚   β”œβ”€β”€ loading/
β”‚   β”‚   └── page/
β”‚   β”œβ”€β”€ chat/                   # Real-time chat interface
β”‚   β”‚   └── [[id]]/             # Dynamic chat sessions
β”‚   β”‚       └── page/
β”‚   β”œβ”€β”€ assessment/             # Assessment flow entry page
β”‚   β”œβ”€β”€ layout/                 # Global layout wrapper (shared header/footer)
β”‚   β”œβ”€β”€ page/                   # Root landing page
β”‚   β”œβ”€β”€ error/                  # Application-wide error boundary
β”‚   β”œβ”€β”€ not-found/              # 404 page
β”‚   └── globals.css             # Global styles
β”‚
β”œβ”€β”€ components/                 # Reusable, feature-oriented React components
β”‚   β”œβ”€β”€ auth/                   # Authentication UI widgets
β”‚   β”œβ”€β”€ layout/                 # Header, footer, navigation bars
β”‚   β”œβ”€β”€ providers/              # Context & session providers
β”‚   β”œβ”€β”€ dashboard/              # Dashboard cards and charts
β”‚   β”œβ”€β”€ assessment/             # Assessment UI elements
β”‚   β”œβ”€β”€ chat/                   # Chat UI widgets
β”‚   β”œβ”€β”€ jobs/                   # Job-related components
β”‚   β”œβ”€β”€ roadmap/                # Career roadmap visuals
β”‚   └── ui/                     # Shared UI primitives (buttons, cards, progress bars)
β”‚
β”œβ”€β”€ hooks/                      # Custom React hooks
β”‚   β”œβ”€β”€ useAutoScroll/          # Auto-scrolling for chat windows
β”‚   β”œβ”€β”€ useChatMessages/        # Chat message management
β”‚   └── useChatSessions/        # Chat session handling
β”‚
β”œβ”€β”€ lib/                        # Core utilities and service layers
β”‚   β”œβ”€β”€ assessmentChecker/      # Assessment validation and scoring helpers
β”‚   β”œβ”€β”€ atom/                   # Jotai/Recoil state atoms
β”‚   β”œβ”€β”€ auth/                   # Authentication configuration
β”‚   β”œβ”€β”€ chatStorage/            # Persistent chat storage utilities
β”‚   β”œβ”€β”€ firebase/               # Firebase client SDK
β”‚   β”œβ”€β”€ prisma/                 # Prisma ORM client
β”‚   β”œβ”€β”€ questionService/        # Question retrieval service
β”‚   β”œβ”€β”€ randomGreeting/         # Friendly greeting generator
β”‚   β”œβ”€β”€ utils/                  # General-purpose helper functions
β”‚   β”œβ”€β”€ parseJDToHTML/          # Parse job descriptions into HTML
β”‚   β”œβ”€β”€ getRecommendedJobs/     # Job recommendation engine
β”‚   └── vertex/                 # AI helper functions (Vertex AI)
β”‚
β”œβ”€β”€ types/                      # Central TypeScript type definitions
β”‚   β”œβ”€β”€ profile/                # User profile types
β”‚   β”œβ”€β”€ roadmap/                # Career roadmap types
β”‚   └── career/                 # Career and job types
β”‚
β”œβ”€β”€ middleware/                 # Route protection & JWT validation
β”œβ”€β”€ .envExample                 # Environment variable template
β”œβ”€β”€ .eslintrc.json              # ESLint configuration
└── .gitignore                  # Git ignore rules


⚑ Getting Started

Prerequisites

  • Node.js v18+
  • npm or yarn
  • Google Cloud project (for Vertex AI)
  • Firebase project (Authentication + Firestore)

1️⃣ Clone Repository

git clone https://github.com/itgithubplatform/careersathi.git
cd careersathi

2️⃣ Install Dependencies

npm install

3️⃣ Configure Environment Variables

Copy the example .env.local and update with actual credentials:

cp .env.local.example .env.local

Required variables:

# Database
DATABASE_URL="file:./dev.db"

# NextAuth.js
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"

# Google OAuth
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"

# Firebase (client & admin)
NEXT_PUBLIC_FIREBASE_API_KEY="..."
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="..."
NEXT_PUBLIC_FIREBASE_PROJECT_ID="..."
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET="..."
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID="..."
NEXT_PUBLIC_FIREBASE_APP_ID="..."
FIREBASE_PRIVATE_KEY="..."
FIREBASE_CLIENT_EMAIL="..."
FIREBASE_PROJECT_ID="..."

# Optional: Google Cloud AI
GOOGLE_CLOUD_PROJECT_ID="..."
GOOGLE_CLOUD_API_KEY="..."

4️⃣ Setup Database

npx prisma generate
npx prisma db push

5️⃣ Run Development Server

npm run dev

Open http://localhost:3000 to access the app.


🧩 Authentication System

  • Sign In / Sign Up Pages

    • Google OAuth βœ…
    • Email/Password (optional)
  • Security Features

    • JWT session
    • Middleware route protection
    • Secure cookies (HttpOnly, Secure, SameSite)
    • CSRF protection
  • UI/UX

    • OAuth buttons with correct branding
    • Loading states & error handling
    • Responsive design

πŸ“ Multi-Stage Assessment

Stage 1 – Identity & Context

  • Collect basic info: age, education, location
  • Preferences & consent

Stage 2 – Interests & Motivation

  • Domain selection (AI, Web, Design, Finance, etc.)
  • Work preferences & motivation type
  • Optional: β€œI’m not sure” β†’ chatbot redirection

Stage 3 – Skills & Competency

  • Interactive skill sliders (1–5)
  • Project experience & technology familiarity
  • Optional: Chatbot assistance if confused

Stage 4 – Results & Recommendations

  • AI-generated career matches (2–5 options)
  • Skill gap analysis
  • Satisfaction check β†’ redirect to chatbot if needed

Chatbot Integration

  • Redirection triggers: motivation unclear, skill assessment help, unsatisfied with results
  • Contextual guidance using AI
  • Previous responses available for continuity

🎨 UI / UX Highlights

  • Mobile-first responsive design
  • Gradient backgrounds, hover effects, smooth transitions
  • Framer Motion animations for components
  • Progress bars & stage indicators in assessment
  • Touch-friendly sliders and buttons for mobile

πŸ“Š AI & Recommendation System

  • Vertex AI Gemini + Vector DB integration
  • Structured output for recommendations:
{
  "identity": { "age": 22, "education": "BTech", "location": "Mumbai" },
  "interests": { "domains": ["AI", "Web"], "motivation": "high-pay" },
  "skills": { "problemSolving": 4, "coding": 3, "communication": 4 },
  "chatbotTriggers": ["motivation_unclear", "skills_help_needed"]
}
  • Dynamic re-mapping based on user feedback or micro-experiments
  • Skill gap analysis and roadmap generation

πŸ” Security & Privacy

  • OAuth-only authentication (no passwords stored)
  • JWT-based secure sessions
  • Route protection middleware
  • Explicit user consent for data usage
  • Secure storage and no external sharing

βœ… Manual Testing Checklist

  1. /auth/signup β†’ OAuth buttons visible
  2. Google/LinkedIn sign-in β†’ redirect to /dashboard
  3. Attempt /dashboard without login β†’ redirected to /auth/signin
  4. Navigation buttons change based on auth state
  5. Logout β†’ redirects to landing page
  6. Multi-stage assessment β†’ all stages progress correctly
  7. Chatbot redirection triggers working
  8. Skill gap analysis and career recommendations shown correctly

πŸ’» Tech Stack

  • Frontend: Next.js 13+, TypeScript, Tailwind CSS, Framer Motion
  • Backend: NextAuth.js, Prisma ORM, SQLite, postgreSQL, Firestore
  • AI: Google Cloud Vertex AI Gemini, Vector DB(not implemented currently)
  • Authentication: OAuth (Google), email/password (not implemented)(optional)
  • Deployment: Vercel recommended

πŸ“š Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit changes (git commit -m "Add new feature")
  4. Push branch (git push origin feature/your-feature)
  5. Open a Pull Request

πŸ“„ License

MIT License – see LICENSE


πŸ“ž Support


Made with ❀️ for Indian students by the CareerSathi Team

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages