Coursevitafinal

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 17

SKILLMATE

Real-Time Skill
Recommendation System

Presented by
Ashish
Imad
Manasa
INTRODUCTION
PROBLEM STATEMENT: To Develop a real-time skill recommendation system with an intuitive
user interface that allows users to input a specific skill and receive personalized recommendations
for complementary skills. The system should provide an easy-to-use interface where users can
explore relevant skill suggestions, tailored to their current expertise and learning goals, promoting
continuous professional development. The user interface should also offer explanations for each
recommendation and insights into skill trends to guide the user's learning journey effectively.

OVERVIEW:

-Importance of continuous learning in the modern workforce.

-The need for personalized skill recommendations.


OBJECTIVES
-Provide tailored skill recommendations based on user input.

-Enhance user engagement through an intuitive interface.

-Facilitate professional growth with relevant insights and trends.

OUR PROJECT FACILITATES THE FOLLOWING POINTS:

Highlight the fast-paced changes in the job market due to technological advancements and globalization.

Discuss how professionals need to continuously update their skills to remain competitive.

Mention the challenges of identifying which skills to pursue next.


TARGET AUDIENECE AND (UX) & DESIGN
TARGET AUDIENCE
● Professionals: Mid-career individuals looking to advance or pivot in their careers.
● Students: Recent graduates or current students seeking skills relevant to job markets.
● Lifelong Learners: Individuals interested in personal development and skill enhancement.
USER EXPERIENCE (UX) & DESIGN
• Intuitive Interface: Clean layout with easy navigation; users can quickly input skills and
view recommendations without confusion.
• Visual Appeal: Use of engaging colors and modern typography that align with
professional branding while ensuring readability.
• Responsive Design: Mobile-friendly interface to accommodate users on various devices
(desktops, tablets, smartphones).
TECH STACK & ARCHITECTURE
Frontend:
Framework: HTML,CSS and JAVASCRIPT for building a responsive and dynamic user interface.
Backend:
Language: Python for the server-side logic, utilizing Flask or Django for API development.
Recommendation Engine: Machine learning libraries such as scikit-learn for implementing
algorithms that generate personalized skill recommendations.
Architecture Overview:
Client-Server Model: The frontend interacts with the backend via RESTful APIs.
Recommendation Workflow: User input is processed through the recommendation engine, which
retrieves relevant data from the database and returns skill suggestions.
DEVELOPMENT PROCESS
Frontend Development
● Created wireframes and mockups of the user interface.
● Developed a prototype to visualize user flow and interactions.
● Challenge: Iterating on design based on multiple feedbacks.
● Solution: Implemented an agile feedback loop with frequent testing sessions.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SkillMate</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; font-family: Arial, sans-serif; }
body { display: flex; flex-direction: column; align-items: center; justify-content: center; min-
height: 100vh; background: linear-gradient(135deg, #3a6073, #16222A); color: #fff; }
.navbar { position: fixed; top: 0; width: 100%; padding: 1.5rem 2rem; background-color:
#1C1C1E; text-align: left; font-size: 1.8rem; font-weight: bold; }
.container { text-align: center; margin-top: 100px; }
.search-bar { display: flex; flex-direction: column; align-items: center; margin-top: 60px; }
.search-bar input { padding: 1rem; width: 350px; border: none; border-radius: 25px;
outline: none; text-align: center; background: rgba(255, 255, 255, 0.2); color: #fff; }
.search-bar button { margin-top: 20px; padding: 0.8rem 2rem; border: none; background-
color: #000; color: white; border-radius: 25px; cursor: pointer; }
.output-box { margin-top: 50px; width: 80%; max-width: 600px; padding: 1rem; border-
radius: 20px; background-color: rgba(255, 255, 255, 0.1); color: white; font-size: 1.2rem; }
</style>
</head>
<body>
<div class="navbar">SkillMate</div>
<div class="container">
<h1>Find the skills you need</h1>
<div class="search-bar">
<input type="text" id="searchInput" placeholder="Enter the Skill">
<button onclick="searchSkill()">Search</button>
</div>
<div class="output-box" id="outputBox">Your search query will appear here...</div>
</div>
<script>
async function searchSkill() {
const searchValue = document.getElementById("searchInput").value;
const outputBox = document.getElementById("outputBox");

if (searchValue) {
const response = await fetch('/recommend', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: skill=${encodeURIComponent(searchValue)}
});

const data = await response.json();

if (data.error) {
outputBox.textContent = data.error;
} else {
outputBox.innerHTML = "<h2>Top Recommendations:</h2>";
data.recommendations.forEach((rec, index) => {
outputBox.innerHTML += <h3>${index + 1}. ${rec.Skill} (Similarity Score: $
{rec.Similarity_Score})</h3>
<p>Related Skills: ${rec.Related_Skills}</p>
<p>Explanation: ${rec.Explanation}</p>
<p>Popularity Trend: ${rec.Popularity_Trend}</p>
<p>Industry Focus: ${rec.Industry_Focus}</p>
<p>Recommended Resources: ${rec.Resources}</p>;
});
}
} else {
outputBox.textContent = "Please enter a title before searching.";
}
}
</script>
</body>
</html>
Backend Development
Set up the database and built the API for skill recommendations.
Integrated the recommendation algorithm.
Challenge: Ensuring data consistency and performance.
Solution: Conducted thorough testing and optimized database.

from flask import Flask, request, jsonify, render_template


import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

app = Flask(name)

class SkillRecommender:
def init(self, data_path):
# Read the CSV file
self.df = pd.read_csv(data_path)

# Create TF-IDF vectorizer for skill similarity


self.vectorizer = TfidfVectorizer(stop_words='english')
# Combine all text columns for better similarity matching
self.df['combined_features'] = self.df['Skill'] + ' ' + \
self.df['Related Skills'] + ' ' + \
self.df['Explanation'] + ' ' + \
self.df['Industry Focus']

# Create TF-IDF matrix


self.tfidf_matrix = self.vectorizer.fit_transform(self.df['combined_features'])

# Calculate similarity matrix


self.similarity_matrix = cosine_similarity(self.tfidf_matrix)

def get_recommendations(self, input_skill):


"""Get recommendations based on input skill"""
try:
skill_idx = self.df[self.df['Skill'].str.lower() == input_skill.lower()].index[0]
except IndexError:
return "Skill not found in database"

similarity_scores = self.similarity_matrix[skill_idx]
similar_indices = similarity_scores.argsort()[::-1][1:4] # Get top 3 similar skills
recommendations = []
for idx in similar_indices:
recommendations.append({
'Skill': self.df.iloc[idx]['Skill'],
'Related_Skills': self.df.iloc[idx]['Related Skills'],
'Explanation': self.df.iloc[idx]['Explanation'],
'Popularity_Trend': self.df.iloc[idx]['Popularity Trend'],
'Industry_Focus': self.df.iloc[idx]['Industry Focus'],
'Resources': self.df.iloc[idx]['Resources'],
'Similarity_Score': f"{similarity_scores[idx]:.2f}"
})

return recommendations

# Initialize the recommender


recommender = SkillRecommender('hack.csv')
Integration Development
Developed the user interface and integrated it with backend services.
Focused on responsiveness and usability.
Challenge: Maintaining compatibility across devices.
Solution: Utilized a mobile-first design approach and tested on various devices.

@app.route('/')
def home():
return render_template('index.html')

@app.route('/recommend', methods=['POST'])
def recommend():
input_skill = request.form.get('skill')
results = recommender.get_recommendations(input_skill)

if isinstance(results, str):
return jsonify({'error': results})

return jsonify({'recommendations': results})

if name == 'main':
app.run(debug=True)
CHALLENGES & LEARNINGS
Challenges
Time Constraints: Limited time for research, development, and testing during the hackathon.
Solution: Prioritized features and adopted a focused development approach, ensuring essential
functionalities were implemented first.
Technical Hurdles:Integration issues between frontend and backend components.
Solution: Conducted daily sync meetings to address issues promptly and maintain clear
communication among team members.
Key Takeaways & Learnings
Enhanced Technical Skills:Improved proficiency in tools and frameworks (e.g., React, Python)
through hands-on experience.
Collaboration & Communication:Strengthened teamwork skills by fostering open communication and
collective problem-solving.
Learned the importance of regular check-ins and feedback loops to ensure alignment and progress.
DEMO
CONCLUSION & SUMMARY
Our real-time skill recommendation system is designed to empower users in their professional
development journey. Here are the key points of our solution:
User-Centric Interface:
• The intuitive UI allows users to easily input a specific skill.
• Clear navigation facilitates exploration of recommended complementary skills.
Personalized Recommendations:
• The system analyzes the user’s current expertise and learning goals.
• Suggestions are tailored to enhance the user’s skill set, promoting relevant growth.
Insightful Explanations:
• Each skill recommendation is accompanied by detailed explanations.
• Users gain insights into how these skills interrelate and benefit their career trajectory.
Impact on Continuous Learning:
• By facilitating personalized learning paths, our system encourages lifelong learning.
• Users are better equipped to stay competitive and adaptable in their careers.

You might also like