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/
- 📊 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
- React 19 - UI framework
- Vite - Build tool
- Tailwind CSS - Styling
- Recharts - Data visualization
- Lucide React - Icons
- Flask - Python web framework
- SQLite - Database
- NumPy - Numerical computations
- Gunicorn - Production server
- Vercel - Frontend hosting
- Render - Backend hosting
- Python 3.12+
- Node.js 18+
- npm or yarn
- Clone the repository:
git clone https://github.com/HilariousSoupXD/skill_gap.git
cd skill_gap- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Run the Flask server:
python app.pyThe backend will be available at http://127.0.0.1:5000
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Create a
.envfile (optional, for local development):
VITE_API_BASE_URL=http://127.0.0.1:5000- Start the development server:
npm run devThe frontend will be available at http://localhost:5173
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 all available roles and their required skills.
Response:
[
{
"id": "SDE",
"label": "SDE",
"description": "Core CS & Systems",
"icon": "code",
"skills": ["DSA", "OS", "Python", ...]
}
]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
This project is configured for free-tier deployment:
See DEPLOYMENT.md for detailed instructions or QUICK_DEPLOY.md for a quick checklist.
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)
- Select Role: Choose your target role (SDE, Data Scientist, etc.)
- Input Skills: Enter your proficiency levels for each skill
- Get Analysis: View your alignment score, readiness score, and skill gaps
- Receive Plan: Get a personalized week-by-week learning plan with resources
# Backend tests (if available)
python -m pytest
# Frontend tests (if available)
cd frontend
npm test# Frontend
cd frontend
npm run buildContributions are welcome! Please feel free to submit a Pull Request.
- 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.