Skip to content

atharvpatil01/CareerPathAi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 CareerPath AI β€” Career Guidance System

An AI-powered career guidance system that provides personalized career predictions and roadmaps for students who just passed 10th or 12th standard. Built with a Python Flask backend (ML-powered) and a modern React frontend.


πŸ“Έ Screenshots

Landing Page

Premium dark-themed landing page with animated hero section and feature highlights.

Profile Assessment

Interactive profile page with score sliders, skill tags, and interest selection.

AI Career Predictions

Dashboard showing top 3 career recommendations with confidence scores from the ML ensemble.

Personalized Roadmap

Step-by-step career roadmap tailored to the student's education level (after 10th or 12th).


πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     User Interface (React)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Input Processing Module   β”‚
β”‚  (Scores, Skills, Interest) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Feature Engineering &      β”‚
β”‚  Preprocessing              β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β–Ό              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Random Forestβ”‚ β”‚   XGBoost    β”‚
β”‚  Classifier  β”‚ β”‚  Classifier  β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Prediction & Recommendationβ”‚
β”‚  (Weighted Ensemble)        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Output β€” Career Results   β”‚
β”‚  Suggestions, Skills, etc.  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”„ Workflow

Step Process Description
1 User Registration Student creates account with education level (10th/12th)
2 Skill & Interest Analysis System collects academic scores, skills, and interests
3 Career Domain Prediction ML model predicts suitable career domains
4 Career Mapping System maps careers to required skills and courses
5 Roadmap Generation Personalized career roadmap is created
6 Dashboard Display Career options, certifications, and timeline displayed

πŸ› οΈ Tech Stack

Backend

Technology Purpose
Python 3.10+ Backend language
Flask REST API framework
scikit-learn Random Forest classifier
XGBoost XGBoost classifier
PyJWT JWT authentication
Flask-CORS Cross-origin support
NumPy Numerical computing

Frontend

Technology Purpose
React 19 UI library
Vite Build tool & dev server
React Router Client-side routing
Vanilla CSS Custom design system
Google Fonts (Inter) Typography

πŸ“ Project Structure

CareerPathAi/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ app.py                  # Flask entry point
β”‚   β”œβ”€β”€ requirements.txt        # Python dependencies
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ career_data.py      # Career datasets, roadmaps, training data
β”‚   β”‚   └── ml_model.py         # RF + XGBoost ensemble predictor
β”‚   └── routes/
β”‚       β”œβ”€β”€ auth.py             # Register/Login (JWT)
β”‚       β”œβ”€β”€ predict.py          # Career prediction endpoint
β”‚       └── roadmap.py          # Roadmap generation endpoint
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ index.html              # Entry HTML
β”‚   β”œβ”€β”€ package.json            # Node dependencies
β”‚   β”œβ”€β”€ vite.config.js          # Vite configuration
β”‚   └── src/
β”‚       β”œβ”€β”€ main.jsx            # React entry point
β”‚       β”œβ”€β”€ App.jsx             # Router & auth state
β”‚       β”œβ”€β”€ api.js              # Backend API client
β”‚       β”œβ”€β”€ index.css           # Design system (dark theme)
β”‚       β”œβ”€β”€ components/
β”‚       β”‚   └── Navbar.jsx      # Navigation bar
β”‚       └── pages/
β”‚           β”œβ”€β”€ Landing.jsx     # Hero & features page
β”‚           β”œβ”€β”€ Auth.jsx        # Login/Register page
β”‚           β”œβ”€β”€ Profile.jsx     # Score/Skill/Interest input
β”‚           β”œβ”€β”€ Dashboard.jsx   # Career prediction results
β”‚           └── Roadmap.jsx     # Personalized career roadmap
β”‚
└── .gitignore

πŸš€ Getting Started

Prerequisites

  • Python 3.10+ installed
  • Node.js 18+ and npm installed
  • Git installed

1. Clone the Repository

git clone https://github.com/atharvpatil01/CareerPathAi.git
cd CareerPathAi

2. Setup Backend

cd backend
pip install -r requirements.txt
python app.py

The backend will:

  • Generate synthetic training data (2400 samples)
  • Train Random Forest + XGBoost models
  • Start the API server on http://localhost:5000

3. Setup Frontend

cd frontend
npm install
npm run dev

The frontend will start on http://localhost:5173

4. Open the App

Navigate to http://localhost:5173 in your browser and start exploring!


πŸ“‘ API Endpoints

Method Endpoint Description
POST /api/register Register new user (name, email, password, education_level)
POST /api/login Login with email & password
POST /api/predict Get career predictions (scores, skills, interests)
GET /api/options Get available skills & interests
GET /api/roadmap/<career> Get career roadmap (query: education_level)
GET /api/careers List all available careers
GET /api/health Health check

Example: Predict Career

curl -X POST http://localhost:5000/api/predict \
  -H "Content-Type: application/json" \
  -d '{
    "scores": {"math": 85, "science": 78, "english": 70, "logical_reasoning": 90},
    "skills": ["Programming", "Problem Solving", "Analytical Thinking"],
    "interests": ["Technology", "Science", "Engineering"]
  }'

πŸ€– ML Model Details

Ensemble Architecture

The system uses a weighted ensemble of two classifiers:

  • Random Forest (150 estimators, max_depth=15) β€” Weight: 45%
  • XGBoost (150 estimators, max_depth=8, lr=0.1) β€” Weight: 55%

Training Data

  • 2400 synthetic samples generated from career profiles
  • 34 features: 4 academic scores + 15 skill indicators + 15 interest indicators
  • 12 career domains with distinct score/skill/interest patterns

Career Domains

Domain Key Strengths
πŸ’» Software Engineering High math + logical reasoning + programming
πŸ“Š Data Science High math + analytical thinking + data analysis
πŸ₯ Medicine High science + research + healthcare interest
βš–οΈ Law High english + communication + critical thinking
πŸ“ˆ Business & Finance High math + leadership + business interest
🎨 Design & UX Creativity + design skills + arts interest
πŸ‘©β€πŸ« Teaching & Education Communication + public speaking + education interest
βš™οΈ Mechanical Engineering High math + science + engineering interest
πŸ—οΈ Civil Engineering High math + science + environment interest
πŸ“° Journalism & Media High english + writing + media interest
🧠 Psychology & Counseling Communication + empathy + social work interest
🧬 Biotechnology High science + research + healthcare interest

πŸ—ΊοΈ Personalized Roadmaps

Each career provides a tailored roadmap based on whether the student passed 10th or 12th standard, including:

  • πŸ“š Step-by-step educational path (stream selection, degree, specialization)
  • πŸ› οΈ Skills to develop (technical + soft skills)
  • πŸ“œ Certifications to pursue
  • πŸŽ“ Top courses & colleges recommended
  • πŸ’° Expected salary range in India

✨ Features

  • πŸ” JWT Authentication β€” Secure register/login with token-based auth
  • πŸ“Š Interactive Score Input β€” Slider-based academic score entry
  • 🏷️ Tag Selection β€” Click-to-select skills and interests
  • πŸ€– AI Predictions β€” Top 3 career matches with confidence percentages
  • πŸ—ΊοΈ Visual Roadmap β€” Animated timeline with career milestones
  • πŸŒ™ Premium Dark Theme β€” Glassmorphism, gradients, micro-animations
  • πŸ“± Responsive Design β€” Works on desktop, tablet, and mobile
  • ⚑ Fast & Modern β€” Vite-powered frontend with hot reload

πŸ§ͺ Testing

Backend API Test

# Health check
curl http://localhost:5000/api/health

# Register
curl -X POST http://localhost:5000/api/register \
  -H "Content-Type: application/json" \
  -d '{"name":"Test","email":"[email protected]","password":"1234","education_level":"12th"}'

# Get options
curl http://localhost:5000/api/options

Full Flow Test

  1. Open http://localhost:5173
  2. Register with your details (select 10th or 12th)
  3. Fill in academic scores, select skills & interests
  4. Click "Get Career Predictions"
  5. View your top 3 career matches
  6. Click "View Career Roadmap" for detailed guidance

πŸ“„ License

This project is open source and available under the MIT License.


πŸ‘€ Author

Atharv Patil


Made with ❀️ for students navigating their career paths


πŸ“‹ Project Methodology

1. Introduction & Problem Statement

Problem: Students who have just passed their 10th or 12th standard face a critical decision about their career path but often lack personalised, data-driven guidance.

Solution: An AI-powered web application that takes a student's academic scores, skills, and interests as input and uses Machine Learning to predict the top 3 suitable career domains β€” along with a personalised step-by-step roadmap.


2. Development Methodology

The project follows a modified Agile/Iterative approach split into clearly defined phases:

Phase 1 β€” Requirement Analysis & Data Modelling

Activity Output
Identify target audience (10th/12th pass students) User persona document
Map 12 career domains with score ranges, skills, and interests career_data.py β€” CAREER_PROFILES dictionary
Define input features (4 scores + 15 skills + 15 interests = 34 features) Feature schema
Design career roadmaps for each domain (after 10th & after 12th) CAREER_ROADMAPS dictionary

Phase 2 β€” Machine Learning Model Development

Activity Output
Generate synthetic training data (2,400 samples) using CAREER_PROFILES generate_training_data() in career_data.py
Train Random Forest (150 estimators, max_depth=15) Trained RF model in ml_model.py
Train XGBoost (150 estimators, max_depth=8, lr=0.1) Trained XGB model in ml_model.py
Build weighted ensemble (RF 45% + XGBoost 55%) CareerPredictor.predict() method
Validate training accuracy Accuracy printed on startup

Phase 3 β€” Backend API Development (Flask)

Activity Output
Create Flask app with CORS support app.py β€” create_app()
Implement JWT-based auth (register/login) routes/auth.py
Build prediction endpoint routes/predict.py β€” POST /api/predict
Build roadmap generation endpoint routes/roadmap.py β€” GET /api/roadmap/<career>
Add utility endpoints (health, options, careers) Various routes

Phase 4 β€” Frontend Development (React + Vite)

Activity Output
Design dark-themed design system (CSS variables, glassmorphism) index.css β€” 22 KB design system
Build responsive Navbar with auth awareness Navbar.jsx
Build Landing page with hero section & features Landing.jsx
Build Auth page (login/register toggle) Auth.jsx
Build Profile page (sliders for scores, tag-select for skills/interests) Profile.jsx
Build Dashboard (top 3 predictions with confidence bars) Dashboard.jsx
Build Roadmap page (animated timeline) Roadmap.jsx
Wire up API client api.js

Phase 5 β€” Integration & Testing

Activity Output
Connect frontend β†’ backend via REST API api.js baseURL β†’ localhost:5000
End-to-end flow testing (register β†’ login β†’ profile β†’ predict β†’ roadmap) Manual test script in README
API endpoint testing with curl Test commands documented

3. Technology Stack Justification

Layer Choice Rationale
ML β€” Random Forest scikit-learn Robust, interpretable, handles tabular data well
ML β€” XGBoost xgboost Best-in-class gradient boosting for structured data
Ensemble Strategy Weighted average (45/55) Combines RF's stability with XGBoost's precision
Backend Flask Lightweight, Pythonic, easy ML integration
Auth PyJWT Stateless token-based auth, no DB dependency
Frontend React 19 + Vite Fast dev server, modern JSX, component reusability
Styling Vanilla CSS Full control, no framework overhead, premium dark theme
Routing React Router SPA navigation, auth-protected routes

4. Data Flow β€” Complete User Journey

Student                    React Frontend              Flask Backend               ML Ensemble
  β”‚                              β”‚                           β”‚                          β”‚
  β”œβ”€β”€ Register ────────────────► POST /api/register ────────►│                          β”‚
  │◄──────────── JWT Token ◄──── JWT Token ◄─────────────────                          β”‚
  β”‚                              β”‚                           β”‚                          β”‚
  β”œβ”€β”€ Input Scores/Skills ─────► POST /api/predict ─────────► prepare_features()        β”‚
  β”‚                              β”‚                           β”œβ”€β”€ 34-dim vector ────────►│
  β”‚                              β”‚                           β”‚   RF predict_proba       β”‚
  β”‚                              β”‚                           β”‚   XGB predict_proba      β”‚
  β”‚                              β”‚                           │◄── Ensemble (0.45*RF     β”‚
  β”‚                              β”‚                           β”‚     + 0.55*XGB)  ◄────────
  │◄──── Dashboard (3 cards) ◄── Top 3 careers + confidence◄─                          β”‚
  β”‚                              β”‚                           β”‚                          β”‚
  β”œβ”€β”€ Click "View Roadmap" ────► GET /api/roadmap/<career> ─►│                          β”‚
  │◄──── Animated Timeline  ◄─── Roadmap phases, skills ◄────                          β”‚

5. ML Model Methodology

5.1 Synthetic Data Generation

Since real student-career outcome data is not available, the system generates 2,400 synthetic training samples (200 per career domain) using the curated CAREER_PROFILES:

  • Score features (4): Gaussian distribution centred on each career's ideal range (e.g., Software Engineering β†’ math 75–100, logical 80–100)
  • Skill features (15): Binary flags, 75% probability if the skill is associated with the career, 15% otherwise
  • Interest features (15): Binary flags, 75% probability if associated, 12% otherwise

5.2 Model Training

Model Hyperparameters
Random Forest n_estimators=150, max_depth=15, min_samples_split=5, min_samples_leaf=2
XGBoost n_estimators=150, max_depth=8, learning_rate=0.1, subsample=0.8, colsample_bytree=0.8

5.3 Ensemble Prediction

ensemble_probabilities = 0.45 Γ— RF_probabilities + 0.55 Γ— XGB_probabilities

Top 3 indices are extracted via argsort(), inverse-label-transformed to career names, and returned with confidence percentages.


6. Frontend Page Architecture

Page Route Purpose
Landing / Hero section, feature highlights, CTA
Auth /auth Login/Register form with toggle
Profile /profile Score sliders, skill/interest tag selection β†’ submit
Dashboard /dashboard Top 3 career prediction cards with confidence bars
Roadmap /roadmap/:career Step-by-step animated career roadmap timeline

7. Testing Strategy

Test Type Method Scope
API Smoke Test curl http://localhost:5000/api/health Backend is running, model trained
Registration Test curl POST /api/register with JSON body User creation + JWT return
Prediction Test curl POST /api/predict with sample data ML pipeline end-to-end
Full Flow (Manual) Browser walk-through: register β†’ profile β†’ predict β†’ roadmap Complete user journey

8. Future Enhancements

Enhancement Description
Real Dataset Replace synthetic data with real student-career outcome data
Database Add SQLite / PostgreSQL for persistent user storage
Model Persistence Save/load trained models with joblib instead of retraining on every startup
More Careers Expand from 12 to 20+ career domains
Feedback Loop Let users rate predictions to improve model accuracy over time
Deployment Deploy backend on Render/Railway, frontend on Vercel/Netlify

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors