Skip to content

HilariousSoupXD/skill_gap

Repository files navigation

Skill Sketch - Campus Skill Gap Analyzer

A skill gap analysis tool that helps students visualize their proficiency levels, identify missing skills, and get personalized learning plans with curated resources for target tech roles.

🌐 Live Demo: https://skillsketch.vercel.app/

✨ Features

  • πŸ“Š Visual Skill Assessment: Interactive radar charts showing your strengths and gaps
  • 🎯 Role-Based Analysis: Evaluate your skills against industry roles (SDE, Data Scientist, etc.)
  • πŸ“š Personalized Learning Plans: Automatic week-by-week schedules with prioritized resources
  • πŸ” Gap Identification: Detailed breakdown of skill gaps with explanations
  • πŸ“– Curated Resources: Hand-picked courses, tutorials, and practice materials
  • πŸ’Ύ Evaluation History: Track your progress over time

πŸ› οΈ Tech Stack

Frontend

  • React 19 - UI framework
  • Vite - Build tool
  • Tailwind CSS - Styling
  • Recharts - Data visualization
  • Lucide React - Icons

Backend

  • Flask - Python web framework
  • SQLite - Database
  • NumPy - Numerical computations
  • Gunicorn - Production server

Deployment

  • Vercel - Frontend hosting
  • Render - Backend hosting

πŸš€ Quick Start

Prerequisites

  • Python 3.12+
  • Node.js 18+
  • npm or yarn

Backend Setup

  1. Clone the repository:
git clone https://github.com/HilariousSoupXD/skill_gap.git
cd skill_gap
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the Flask server:
python app.py

The backend will be available at http://127.0.0.1:5000

Frontend Setup

  1. Navigate to the frontend directory:
cd frontend
  1. Install dependencies:
npm install
  1. Create a .env file (optional, for local development):
VITE_API_BASE_URL=http://127.0.0.1:5000
  1. Start the development server:
npm run dev

The frontend will be available at http://localhost:5173

πŸ“‘ API Endpoints

POST /evaluate

Evaluate a student's skill profile against a target role.

Request Body:

{
  "role": "SDE",
  "student_profile": {
    "DSA": 0.6,
    "OS": "beginner",
    "Python": 0.8
  },
  "weekly_hours": 10,
  "weeks": 4
}

Response:

{
  "evaluation_id": 123,
  "alignment_score": 0.75,
  "readiness_score": 0.56,
  "top_gaps": [["DSA", 0.12], ...],
  "plan": { ... }
}

GET /roles

Get all available roles and their required skills.

Response:

[
  {
    "id": "SDE",
    "label": "SDE",
    "description": "Core CS & Systems",
    "icon": "code",
    "skills": ["DSA", "OS", "Python", ...]
  }
]

πŸ“ Project Structure

skill_gap/
β”œβ”€β”€ app.py                 # Flask backend application
β”œβ”€β”€ module1_vectors.py     # Skill vector representations
β”œβ”€β”€ module2_models.py       # Role definitions and requirements
β”œβ”€β”€ module3_evaluator.py   # Skill gap evaluation engine
β”œβ”€β”€ module4_recommender.py # Learning plan generator
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ evaluations.db        # SQLite database
β”œβ”€β”€ frontend/             # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/   # React components
β”‚   β”‚   β”œβ”€β”€ App.jsx       # Main app component
β”‚   β”‚   └── config.js    # API configuration
β”‚   └── package.json      # Node dependencies
β”œβ”€β”€ DEPLOYMENT.md         # Detailed deployment guide
└── QUICK_DEPLOY.md       # Quick deployment checklist

🚒 Deployment

This project is configured for free-tier deployment:

  • Backend: Deploy to Render (free tier)
  • Frontend: Deploy to Vercel (free tier)

See DEPLOYMENT.md for detailed instructions or QUICK_DEPLOY.md for a quick checklist.

Environment Variables

Frontend (Vercel):

  • VITE_API_BASE_URL - Your Render backend URL (e.g., https://your-backend.onrender.com)

Backend (Render):

  • PYTHON_VERSION - Python version (default: 3.12.0)

🎯 How It Works

  1. Select Role: Choose your target role (SDE, Data Scientist, etc.)
  2. Input Skills: Enter your proficiency levels for each skill
  3. Get Analysis: View your alignment score, readiness score, and skill gaps
  4. Receive Plan: Get a personalized week-by-week learning plan with resources

πŸ“ Development

Running Tests

# Backend tests (if available)
python -m pytest

# Frontend tests (if available)
cd frontend
npm test

Building for Production

# Frontend
cd frontend
npm run build

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ™ Acknowledgments

  • Built with ❀️ for the hackathon
  • Uses curated educational resources from various platforms
  • Inspired by the need for better skill gap analysis in education

Note: This is a hackathon project. For production use, consider adding authentication, more robust error handling, and additional features.

About

Campus Skill Gap Analyzer - Visualize skill gaps and get personalized learning plans for tech roles

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors