Skip to content

ishaa-p/skillgap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

🎯 Skill Gap Predictor

AI-Powered Career Readiness Analysis Platform

A comprehensive full-stack web application that analyzes university syllabi and identifies skill gaps compared to industry requirements. Upload your syllabus PDF or paste text content, and get personalized insights on what skills you already have and what you need to learn for your target career.

🌟 Features

πŸ€– AI-Powered Analysis

  • Smart PDF Processing: Extract and analyze text from university syllabus PDFs
  • Advanced NLP: Uses spaCy, NLTK, and scikit-learn for intelligent skill extraction
  • Industry Comparison: Comprehensive database of industry skill requirements
  • Multi-format Support: PDF upload or direct text input
  • Visual Analytics: Interactive charts and radar visualizations
  • Skill Categorization: Organized by programming, tools, frameworks, etc.
  • Coverage Metrics: Detailed percentage-based coverage analysis
  • Gap Identification: Clear identification of missing skills

πŸŽ“ Personalized Learning

  • Learning Recommendations: Curated course suggestions from top platforms
  • Resource Links: Direct links to Coursera, Udemy, and other learning platforms
  • Progress Tracking: Save and retrieve previous analyses
  • Field-Specific Insights: Tailored for Computer Science, Engineering, Data Science, etc.

πŸš€ Modern Tech Stack

  • Frontend: React 18 + Tailwind CSS + Chart.js
  • Backend: FastAPI + Python + SQLite

πŸ–₯️ Screenshots

Upload Interface Analysis Results Skill Visualization
Upload Results Charts

πŸš€ Quick Start

Prerequisites

  • Python 3.13.4+ with pip
  • Node.js 16+ with npm
  • No API keys required - completely free to use!

One-Command Setup

# Clone the repository
git clone <repository-url>
cd skill-gap-predictor

# Make scripts executable
chmod +x start.sh backend/start.sh frontend/start.sh

# Start both backend and frontend
./start.sh

The application will be available at:

Manual Setup

Backend Setup

cd backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Setup NLP models and data
python setup_nlp.py

# Setup environment variables
cp .env.example .env
# No API keys needed - ready to use!

# Initialize database
cd ../database
python populate_skills.py
cd ../backend

# Start backend server
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload

Frontend Setup

cd frontend

# Install dependencies
npm install

# Create environment file
echo "REACT_APP_API_URL=http://localhost:8000" > .env.local

# Start development server
npm start

πŸ”§ Configuration

Environment Variables

Backend (.env)

# Environment Configuration
ENVIRONMENT=development
ALLOWED_ORIGINS=http://localhost:3000,http://127.0.0.1:3000

# Optional: Enable debug logging for NLP processing
DEBUG_NLP=false

Frontend (.env.local)

REACT_APP_API_URL=http://localhost:8000
REACT_APP_ENV=development

πŸ—οΈ Project Structure

skill-gap-predictor/
β”œβ”€β”€ πŸ“ backend/                 # FastAPI backend
β”‚   β”œβ”€β”€ 🐍 main.py             # Main FastAPI application
β”‚   β”œβ”€β”€ πŸ“„ requirements.txt     # Python dependencies
β”‚   β”œβ”€β”€ βš™οΈ .env.example         # Environment template
β”‚   β”œβ”€β”€ πŸš€ start.sh             # Backend startup script
β”‚   └── πŸ“ database/            # SQLite database files
β”œβ”€β”€ πŸ“ frontend/                # React frontend
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ βš›οΈ App.js           # Main React component
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/      # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ FileUpload.js   # File upload interface
β”‚   β”‚   β”‚   β”œβ”€β”€ Results.js      # Analysis results display
β”‚   β”‚   β”‚   β”œβ”€β”€ SkillChart.js   # Data visualizations
β”‚   β”‚   β”‚   β”œβ”€β”€ Loading.js      # Loading states
β”‚   β”‚   β”‚   └── Error.js        # Error handling
β”‚   β”‚   └── 🎨 index.css        # Tailwind CSS styles
β”‚   β”œβ”€β”€ πŸ“¦ package.json         # Node.js dependencies
β”‚   β”œβ”€β”€ βš™οΈ tailwind.config.js   # Tailwind configuration
β”‚   └── πŸš€ start.sh             # Frontend startup script
β”œβ”€β”€ πŸ“ database/                # Database utilities
β”‚   └── 🐍 populate_skills.py   # Industry skills data
β”œβ”€β”€ πŸš€ start.sh                 # Main startup script
└── πŸ“– README.md                # This file

πŸ“‹ API Endpoints

Core Endpoints

  • POST /analyze - Analyze syllabus (PDF or text)
  • GET /skills/{analysis_id} - Retrieve analysis by ID
  • GET /fields - Get available fields of study
  • GET /analyses - Get recent analyses
  • GET /health - Health check

Example API Usage

// Analyze syllabus
const formData = new FormData();
formData.append('university', 'Mumbai University');
formData.append('field', 'Computer Science');
formData.append('file', pdfFile);

const response = await fetch('/analyze', {
  method: 'POST',
  body: formData
});

const analysis = await response.json();

πŸ› οΈ Development

Adding New Skills

# In database/populate_skills.py
new_skills = [
    ("Computer Science", "Skill Name", "Category", 8, "Source"),
    # Add more skills...
]

Extending Analysis

# In backend/main.py - extract_skills_with_llm function
prompt = f"""
Custom prompt for skill extraction...
Analyze: {syllabus_text}
Return: JSON array of skills
"""

Custom Visualizations

// In frontend/src/components/SkillChart.js
const customChartData = {
  // Add new chart configurations
};

🚒 Deployment

Docker Deployment

# Build and run with Docker Compose
docker-compose up --build

# Or build individual containers
docker build -t skillgap-backend ./backend
docker build -t skillgap-frontend ./frontend

Production Environment

# Backend production server
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker

# Frontend production build
npm run build
serve -s build -l 3000

πŸ§ͺ Testing

Backend Tests

cd backend
python -m pytest tests/ -v

Frontend Tests

cd frontend
npm test

API Testing

# Test API endpoints
curl -X POST http://localhost:8000/analyze \
  -F "university=Test University" \
  -F "field=Computer Science" \
  -F "text_content=Python programming, data structures, algorithms"

πŸ”§ Troubleshooting

Common Issues

Backend won't start:

# Check Python version
python3 --version  # Should be 3.13.4+

# Check virtual environment
source venv/bin/activate
pip list

# Setup NLP dependencies
python setup_nlp.py

Frontend won't start:

# Check Node.js version
node --version  # Should be 16+

# Clear cache and reinstall
rm -rf node_modules package-lock.json
npm install

API connection issues:

  • Verify backend is running on port 8000
  • Check REACT_APP_API_URL in frontend .env.local
  • Ensure CORS is configured correctly

NLP processing issues:

  • Run python setup_nlp.py to download required models
  • Check if spaCy model is installed: python -c "import spacy; spacy.load('en_core_web_sm')"
  • Verify NLTK data: python -c "import nltk; nltk.data.find('tokenizers/punkt')"

Logs and Debugging

# View backend logs
tail -f logs/backend.log

# View frontend logs
tail -f logs/frontend.log

# Database inspection
sqlite3 backend/database/skill_predictor.db
.tables
SELECT * FROM industry_skills LIMIT 10;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors