Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Projects & Experience - Pranit Chilbule</title> | |
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet"> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css"> | |
<style> | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
:root { | |
--bg-primary: #0d1117; | |
--bg-secondary: #010409; | |
--bg-card: #21262d; | |
--text-primary: #c9d1d9; | |
--text-secondary: rgba(201, 209, 217, 0.8); | |
--accent-blue: #58a6ff; | |
--accent-green: #10a37f; | |
--accent-purple: #a5b4fc; | |
--accent-orange: #fbbf24; | |
--header-bg: rgba(0, 0, 0, 0.8); | |
--border-color: #30363d; | |
--gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
--gradient-2: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); | |
--gradient-3: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); | |
} | |
body { | |
background-color: var(--bg-primary); | |
color: var(--text-primary); | |
font-family: 'Inter', sans-serif; | |
line-height: 1.6; | |
overflow-x: hidden; | |
} | |
/* Animated Background */ | |
.animated-bg { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: -1; | |
opacity: 0.1; | |
} | |
.floating-shape { | |
position: absolute; | |
border-radius: 50%; | |
animation: float 20s infinite ease-in-out; | |
} | |
.shape-1 { | |
width: 300px; | |
height: 300px; | |
background: var(--gradient-1); | |
top: 10%; | |
left: 10%; | |
animation-delay: 0s; | |
} | |
.shape-2 { | |
width: 200px; | |
height: 200px; | |
background: var(--gradient-2); | |
top: 60%; | |
right: 10%; | |
animation-delay: 7s; | |
} | |
.shape-3 { | |
width: 150px; | |
height: 150px; | |
background: var(--gradient-3); | |
bottom: 20%; | |
left: 20%; | |
animation-delay: 14s; | |
} | |
@keyframes float { | |
0%, 100% { transform: translate(0, 0) rotate(0deg); } | |
33% { transform: translate(50px, -50px) rotate(120deg); } | |
66% { transform: translate(-30px, 30px) rotate(240deg); } | |
} | |
/* Header Styles */ | |
header { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
padding: 1rem 2rem; | |
background: var(--header-bg); | |
backdrop-filter: blur(20px); | |
z-index: 1000; | |
transition: all 0.3s ease; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
nav { | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
max-width: 1200px; | |
margin: 0 auto; | |
} | |
.logo { | |
font-family: 'Roboto Mono', monospace; | |
font-size: 1.5rem; | |
color: var(--text-primary); | |
text-decoration: none; | |
font-weight: 700; | |
transition: color 0.3s ease; | |
} | |
.logo:hover { | |
color: var(--accent-blue); | |
} | |
.nav-links { | |
display: flex; | |
gap: 2rem; | |
list-style: none; | |
} | |
.nav-links a { | |
color: var(--text-primary); | |
text-decoration: none; | |
font-weight: 500; | |
position: relative; | |
transition: color 0.3s ease; | |
padding: 0.5rem 0; | |
} | |
.nav-links a::after { | |
content: ''; | |
position: absolute; | |
bottom: 0; | |
left: 0; | |
width: 0; | |
height: 2px; | |
background: var(--accent-blue); | |
transition: width 0.3s ease; | |
} | |
.nav-links a:hover::after, | |
.nav-links a.active::after { | |
width: 100%; | |
} | |
.nav-links a:hover, | |
.nav-links a.active { | |
color: var(--accent-blue); | |
} | |
/* Main Content Styles */ | |
main { | |
padding: 2rem; | |
max-width: 1400px; | |
margin: 80px auto 0; | |
} | |
section { | |
margin-bottom: 6rem; | |
} | |
h1 { | |
font-size: 3.5rem; | |
margin-bottom: 1rem; | |
color: var(--accent-blue); | |
text-align: center; | |
font-weight: 700; | |
position: relative; | |
} | |
h1::after { | |
content: ''; | |
position: absolute; | |
bottom: -10px; | |
left: 50%; | |
transform: translateX(-50%); | |
width: 150px; | |
height: 4px; | |
background: var(--gradient-1); | |
border-radius: 2px; | |
} | |
.portfolio-stats { | |
display: flex; | |
justify-content: center; | |
gap: 3rem; | |
margin: 3rem 0; | |
flex-wrap: wrap; | |
} | |
.stat-item { | |
text-align: center; | |
background: var(--bg-card); | |
padding: 2rem; | |
border-radius: 16px; | |
border: 1px solid var(--border-color); | |
min-width: 150px; | |
} | |
.stat-number { | |
font-size: 2.5rem; | |
font-weight: 700; | |
color: var(--accent-green); | |
display: block; | |
} | |
.stat-label { | |
color: var(--text-secondary); | |
font-size: 0.9rem; | |
margin-top: 0.5rem; | |
} | |
/* Project Categories */ | |
.project-categories { | |
display: flex; | |
justify-content: center; | |
gap: 1rem; | |
margin-bottom: 3rem; | |
flex-wrap: wrap; | |
} | |
.category-btn { | |
background: var(--bg-card); | |
border: 2px solid var(--border-color); | |
color: var(--text-primary); | |
padding: 0.75rem 1.5rem; | |
border-radius: 25px; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
font-weight: 500; | |
} | |
.category-btn:hover, | |
.category-btn.active { | |
background: var(--accent-blue); | |
border-color: var(--accent-blue); | |
transform: translateY(-2px); | |
box-shadow: 0 5px 15px rgba(88, 166, 255, 0.4); | |
} | |
/* Project Cards */ | |
.projects-grid { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); | |
gap: 2.5rem; | |
padding: 2rem 0; | |
} | |
.project-card { | |
background: var(--bg-card); | |
border-radius: 16px; | |
overflow: hidden; | |
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3); | |
transition: all 0.4s ease; | |
border: 1px solid var(--border-color); | |
position: relative; | |
display: flex; | |
flex-direction: column; | |
} | |
.project-card::before { | |
content: ''; | |
position: absolute; | |
top: 0; | |
left: 0; | |
right: 0; | |
height: 4px; | |
background: var(--gradient-1); | |
opacity: 0; | |
transition: opacity 0.3s ease; | |
} | |
.project-card:hover::before { | |
opacity: 1; | |
} | |
.project-card:hover { | |
transform: translateY(-10px); | |
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); | |
border-color: var(--accent-blue); | |
} | |
.project-header { | |
position: relative; | |
padding: 2rem; | |
background: linear-gradient(135deg, var(--bg-secondary) 0%, rgba(33, 38, 45, 0.8) 100%); | |
display: flex; | |
align-items: center; | |
gap: 1rem; | |
} | |
.project-logo { | |
width: 60px; | |
height: 60px; | |
border-radius: 12px; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 1.8rem; | |
font-weight: bold; | |
color: white; | |
flex-shrink: 0; | |
} | |
.project-status { | |
position: absolute; | |
top: 1rem; | |
right: 1rem; | |
background: var(--accent-green); | |
color: white; | |
padding: 0.5rem 1rem; | |
border-radius: 15px; | |
font-size: 0.8rem; | |
font-weight: 600; | |
z-index: 1; | |
} | |
.project-status.in-progress { | |
background: var(--accent-orange); | |
} | |
.project-content { | |
padding: 1.5rem; | |
display: flex; | |
flex-direction: column; | |
flex-grow: 1; | |
} | |
.project-title { | |
font-size: 1.3rem; | |
color: var(--accent-blue); | |
margin-bottom: 0.75rem; | |
font-weight: 600; | |
} | |
.project-category { | |
background: var(--accent-purple); | |
color: white; | |
padding: 0.3rem 0.8rem; | |
border-radius: 12px; | |
font-size: 0.8rem; | |
font-weight: 500; | |
width: fit-content; | |
margin-bottom: 1rem; | |
} | |
.project-description { | |
color: var(--text-secondary); | |
margin-bottom: 1rem; | |
line-height: 1.6; | |
font-size: 0.9rem; | |
flex-grow: 1; | |
} | |
.tech-stack { | |
display: flex; | |
flex-wrap: wrap; | |
gap: 0.5rem; | |
margin-bottom: 1rem; | |
} | |
.tech-tag { | |
background: var(--bg-secondary); | |
color: var(--accent-green); | |
padding: 0.3rem 0.8rem; | |
border-radius: 15px; | |
font-size: 0.8rem; | |
font-weight: 500; | |
border: 1px solid rgba(16, 163, 127, 0.3); | |
transition: all 0.3s ease; | |
} | |
.tech-tag:hover { | |
background: var(--accent-green); | |
color: white; | |
transform: translateY(-2px); | |
} | |
.project-links { | |
display: flex; | |
gap: 0.75rem; | |
margin-top: auto; | |
} | |
.project-links a { | |
color: var(--accent-blue); | |
text-decoration: none; | |
display: flex; | |
align-items: center; | |
gap: 0.4rem; | |
padding: 0.6rem 1.2rem; | |
border: 2px solid var(--accent-blue); | |
border-radius: 8px; | |
transition: all 0.3s ease; | |
font-weight: 500; | |
font-size: 0.9rem; | |
flex: 1; | |
justify-content: center; | |
} | |
.project-links a:hover { | |
background: var(--accent-blue); | |
color: white; | |
transform: translateY(-2px); | |
} | |
/* Hide projects by default */ | |
.project-card.hidden { | |
display: none; | |
} | |
/* Responsive Design */ | |
@media (max-width: 768px) { | |
.projects-grid { | |
grid-template-columns: 1fr; | |
} | |
.portfolio-stats { | |
gap: 1.5rem; | |
} | |
.project-categories { | |
justify-content: flex-start; | |
overflow-x: auto; | |
padding-bottom: 1rem; | |
flex-wrap: nowrap; | |
} | |
.category-btn { | |
white-space: nowrap; | |
} | |
h1 { | |
font-size: 2.5rem; | |
} | |
.nav-links { | |
display: none; | |
} | |
} | |
@media (max-width: 480px) { | |
main { | |
padding: 1rem; | |
margin-top: 70px; | |
} | |
.projects-grid { | |
grid-template-columns: 1fr; | |
gap: 1.5rem; | |
} | |
.project-header { | |
padding: 1.5rem; | |
} | |
.project-logo { | |
width: 50px; | |
height: 50px; | |
font-size: 1.5rem; | |
} | |
h1 { | |
font-size: 2rem; | |
} | |
} | |
</style> | |
</head> | |
<body> | |
<!-- Animated Background --> | |
<div class="animated-bg"> | |
<div class="floating-shape shape-1"></div> | |
<div class="floating-shape shape-2"></div> | |
<div class="floating-shape shape-3"></div> | |
</div> | |
<header> | |
<nav> | |
<a href="#" class="logo">Pranit Chilbule</a> | |
<ul class="nav-links" id="navLinks"> | |
<li><a href="index.html"><i class="fas fa-house"></i> Home</a></li> | |
<li><a href="about.html"><i class="fas fa-user"></i> About</a></li> | |
<li><a href="projects.html"><i class="fas fa-code"></i> Projects</a></li> | |
<li><a href="achievements.html"><i class="fas fa-trophy"></i> Achievements</a></li> | |
<li><a href="contact.html"><i class="fas fa-envelope"></i> Contact</a></li> | |
</ul> | |
</nav> | |
</header> | |
<main> | |
<section id="projects"> | |
<h1>Complete Projects Portfolio</h1> | |
<div class="portfolio-stats"> | |
<div class="stat-item"> | |
<span class="stat-number">44</span> | |
<span class="stat-label">Total Projects</span> | |
</div> | |
<div class="stat-item"> | |
<span class="stat-number">21</span> | |
<span class="stat-label">AI/ML Projects</span> | |
</div> | |
<div class="stat-item"> | |
<span class="stat-number">13</span> | |
<span class="stat-label">Web Development</span> | |
</div> | |
<div class="stat-item"> | |
<span class="stat-number">10</span> | |
<span class="stat-label">Other Technologies</span> | |
</div> | |
</div> | |
<div class="project-categories"> | |
<button class="category-btn active" onclick="filterProjects('all')">All Projects</button> | |
<button class="category-btn" onclick="filterProjects('ai-ml')">AI/ML</button> | |
<button class="category-btn" onclick="filterProjects('web')">Web Development</button> | |
<button class="category-btn" onclick="filterProjects('iot')">IoT</button> | |
<button class="category-btn" onclick="filterProjects('blockchain')">Blockchain</button> | |
<button class="category-btn" onclick="filterProjects('mobile')">Mobile</button> | |
<button class="category-btn" onclick="filterProjects('security')">Security</button> | |
</div> | |
<div class="projects-grid" id="projectsGrid"> | |
<!-- Projects will be populated by JavaScript --> | |
</div> | |
</section> | |
</main> | |
<script> | |
// Complete portfolio projects data and functionality | |
const projects = [ | |
{ | |
id: 1, | |
name: "Garbage Segregation and Monitoring System", | |
category: "iot", | |
description: "Automated real-time garbage classification into 6 waste types using ML model deployed on Edge IoT device with OpenCV and TensorFlow Lite.", | |
techs: ["OpenCV", "IoT", "Python", "TensorFlow Lite", "Raspberry Pi"], | |
logo: "🗑️", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 2, | |
name: "Employee Salary Classification System", | |
category: "ai-ml", | |
description: "Predict salary group based on employee parameters using Decision Tree classifier with comprehensive data analysis and visualization.", | |
techs: ["Python", "Pandas", "Scikit-learn", "Decision Trees", "Flask"], | |
logo: "💼", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 3, | |
name: "College Chat System", | |
category: "web", | |
description: "Real-time WhatsApp-like communication system for college students with authentication, messaging, and group chat features.", | |
techs: ["HTML", "CSS", "JavaScript", "MySQL", "PHP", "WebSockets"], | |
logo: "💬", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 4, | |
name: "Internship & Placement Finder", | |
category: "web", | |
description: "Intelligent recommendation system for internships and placements based on student interests, skills, and resume profiles.", | |
techs: ["Python", "SQLite", "Flask", "Machine Learning", "OOP"], | |
logo: "🎯", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 5, | |
name: "Facial Emotion Recognition using CNN", | |
category: "ai-ml", | |
description: "Real-time emotion detection via webcam using custom CNN architecture trained on FER-2013 dataset for accurate emotion classification.", | |
techs: ["Python", "CNN", "OpenCV", "Keras", "TensorFlow"], | |
logo: "😊", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 6, | |
name: "Custom Chatbot with PDF & Dataset Integration", | |
category: "ai-ml", | |
description: "Multi-functional chatbot for document and dataset querying with embeddings, supporting PDF analysis and data exploration.", | |
techs: ["LangChain", "OpenAI API", "PyPDF2", "Streamlit", "ChromaDB"], | |
logo: "🤖", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 7, | |
name: "Plant Disease Detection & Agro-Pesticide Recommendation", | |
category: "ai-ml", | |
description: "Assist farmers in diagnosing plant diseases using computer vision and recommend appropriate treatments and pesticides.", | |
techs: ["OpenCV", "CNN", "Keras", "Flask", "SQLite", "IoT"], | |
logo: "🌱", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 8, | |
name: "Intrusion Detection and Alert System", | |
category: "iot", | |
description: "Secure area monitoring with motion detection, real-time alerts via email/Telegram, and comprehensive dashboard for security management.", | |
techs: ["Python", "OpenCV", "PIR Sensors", "Flask", "Email API"], | |
logo: "🔒", | |
logoColor: "#f5576c", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 9, | |
name: "Emotion & Classification Bot", | |
category: "ai-ml", | |
description: "Multimodal system for text, voice, and facial emotion recognition with sentiment analysis and review classification capabilities.", | |
techs: ["CNN", "RNN", "SpaCy", "OpenCV", "NLTK", "Flask"], | |
logo: "🎭", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 10, | |
name: "NLP Blog Generator Website", | |
category: "ai-ml", | |
description: "Automatically generates high-quality blogs based on topic prompts using advanced NLP techniques and GPT integration.", | |
techs: ["GPT APIs", "Hugging Face", "Flask", "MongoDB", "NLP"], | |
logo: "📝", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 11, | |
name: "Blockchain-Based Safe Vault", | |
category: "blockchain", | |
description: "Secure password vault using blockchain technology with weak password analytics and AES encryption for maximum security.", | |
techs: ["Solidity", "Ganache", "Web3.py", "Flask", "AES Encryption"], | |
logo: "⛓️", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 12, | |
name: "Financial Trend Agent with LSTM & LLM", | |
category: "ai-ml", | |
description: "Smart investment assistant with stock price prediction using LSTM and LLM insights for comprehensive financial analysis.", | |
techs: ["LSTM", "Keras", "NewsAPI", "LangChain", "Streamlit", "AWS"], | |
logo: "📈", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 13, | |
name: "College Placement & Analysis Platform", | |
category: "web", | |
description: "Comprehensive platform with three dashboards for students, colleges, and companies to analyze placement trends and statistics.", | |
techs: ["Flask", "Django", "PostgreSQL", "Plotly", "Chart.js"], | |
logo: "🎓", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 14, | |
name: "Krishi Mitra – AI-Powered Farmer Support", | |
category: "ai-ml", | |
description: "Complete agricultural solution with plant disease detection, weather forecasting, fertilizer recommendations, and market trends.", | |
techs: ["OpenCV", "TensorFlow", "Weather APIs", "Flask", "MongoDB"], | |
logo: "🚜", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 15, | |
name: "LearnMate-AI", | |
category: "ai-ml", | |
description: "AI-powered learning assistant designed to enhance educational experiences with personalized tutoring and progress tracking.", | |
techs: ["Python", "NLP", "Machine Learning", "Flask", "AI"], | |
logo: "🧠", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 16, | |
name: "AgroConnect Market Storage Finder", | |
category: "web", | |
description: "Web platform connecting farmers with market and storage facilities, facilitating better agricultural supply chain management.", | |
techs: ["HTML", "CSS", "JavaScript", "Firebase", "Maps API"], | |
logo: "🌾", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 17, | |
name: "Analyze the Geomaps", | |
category: "ai-ml", | |
description: "Python-based tool for analyzing geospatial data and creating interactive visualizations for geographic information systems.", | |
techs: ["Python", "GeoPandas", "Matplotlib", "Folium", "GIS"], | |
logo: "🗺️", | |
logoColor: "#4facfe", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 18, | |
name: "Attendance Monitoring Live", | |
category: "ai-ml", | |
description: "Live attendance monitoring system using facial recognition and computer vision for automated attendance tracking.", | |
techs: ["Python", "OpenCV", "Face Recognition", "Flask", "CV"], | |
logo: "👥", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 19, | |
name: "CarePlanAI", | |
category: "web", | |
description: "AI-driven platform for creating personalized healthcare plans with intelligent recommendations and health monitoring.", | |
techs: ["HTML", "CSS", "JavaScript", "AI Integration", "Healthcare"], | |
logo: "🏥", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 20, | |
name: "Chat with DataFrame", | |
category: "ai-ml", | |
description: "Interactive chatbot that allows users to converse with and query Pandas DataFrames using natural language processing.", | |
techs: ["Python", "Pandas", "NLP", "Streamlit", "Data Analysis"], | |
logo: "📊", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 21, | |
name: "ClassiGrid", | |
category: "ai-ml", | |
description: "Python tool for data classification and grid-based analysis with advanced machine learning algorithms and visualization.", | |
techs: ["Python", "Scikit-learn", "Pandas", "Data Visualization", "ML"], | |
logo: "🔢", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 22, | |
name: "CraneSmart", | |
category: "iot", | |
description: "Smart IoT system for crane operations monitoring and safety with real-time data collection and web-based dashboard.", | |
techs: ["HTML", "CSS", "JavaScript", "IoT", "Sensors", "Safety"], | |
logo: "🏗️", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 23, | |
name: "Emotion Detection Web App", | |
category: "web", | |
description: "Web-based application for detecting emotions from text or images using AI with real-time processing capabilities.", | |
techs: ["HTML", "JavaScript", "Python", "TensorFlow.js", "AI"], | |
logo: "🎭", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 24, | |
name: "Financial Stock Insight Web App", | |
category: "web", | |
description: "Comprehensive web application providing insights and analytics for financial stock data with interactive charts and predictions.", | |
techs: ["HTML", "CSS", "JavaScript", "Chart.js", "Finance"], | |
logo: "💹", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 25, | |
name: "Find Your Own Raga", | |
category: "ai-ml", | |
description: "Python project for Indian classical music (Raga) generation and analysis using machine learning and audio processing.", | |
techs: ["Python", "Librosa", "Machine Learning", "Audio Processing", "Music"], | |
logo: "🎵", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 26, | |
name: "GenSong", | |
category: "ai-ml", | |
description: "AI project for generating original song melodies and lyrics using deep learning techniques and music theory.", | |
techs: ["Python", "Magenta", "LSTM", "Music Generation", "AI"], | |
logo: "🎶", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 27, | |
name: "GlucoLens", | |
category: "web", | |
description: "Progressive web application for glucose monitoring and diabetes management with tracking and analytics features.", | |
techs: ["HTML", "CSS", "JavaScript", "PWA", "Healthcare"], | |
logo: "🩺", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 28, | |
name: "Harvest Analysis", | |
category: "ai-ml", | |
description: "Python-based tool for analyzing agricultural harvest data and providing insights for crop yield optimization.", | |
techs: ["Python", "Pandas", "Scikit-learn", "Data Analysis", "Agriculture"], | |
logo: "🌽", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 29, | |
name: "HospitAI Intelligent Resource Management", | |
category: "ai-ml", | |
description: "Intelligent system for hospital resource and patient management with AI-powered optimization and scheduling.", | |
techs: ["C", "AI/ML Algorithms", "Data Structures", "Healthcare", "Optimization"], | |
logo: "🏥", | |
logoColor: "#f5576c", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 30, | |
name: "InterviewInsight", | |
category: "ai-ml", | |
description: "AI-powered platform to provide insights and feedback on interview performance using speech analysis and NLP.", | |
techs: ["Python", "NLP", "Speech-to-Text", "Flask", "AI"], | |
logo: "🎤", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 31, | |
name: "Invoice Matching NLP System", | |
category: "ai-ml", | |
description: "Invoice matching system using NLP, fuzzy logic, and regular expressions for automated document processing.", | |
techs: ["Python", "Jupyter", "Pandas", "NLTK", "Fuzzy Logic"], | |
logo: "📄", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 32, | |
name: "Laptop Recommendation System", | |
category: "web", | |
description: "Web-based recommendation system to help users choose laptops based on their requirements and preferences.", | |
techs: ["HTML", "CSS", "JavaScript", "Content Filtering", "ML"], | |
logo: "💻", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 33, | |
name: "MaintAI Predictive Maintenance Dashboard", | |
category: "ai-ml", | |
description: "Web dashboard for predictive maintenance using AI, displaying insights from sensor data with real-time monitoring.", | |
techs: ["HTML", "JavaScript", "Chart.js", "Python Backend", "AI"], | |
logo: "⚙️", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 34, | |
name: "MoodTunes Song Predictor", | |
category: "ai-ml", | |
description: "Song recommendation system that predicts songs based on user's emotion using sentiment analysis and music APIs.", | |
techs: ["Python", "Jupyter", "NLP", "Spotify API", "ML"], | |
logo: "🎧", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 35, | |
name: "Movie Review Sentiment Analysis", | |
category: "ai-ml", | |
description: "Sentiment analysis of movie reviews using Python and the spaCy NLP library for text processing and classification.", | |
techs: ["Python", "spaCy", "NLP", "Sentiment Analysis", "ML"], | |
logo: "🎬", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 36, | |
name: "My Voice Assistant (Alexa Clone)", | |
category: "ai-ml", | |
description: "Custom voice assistant similar to Alexa, built using Python with speech recognition and text-to-speech capabilities.", | |
techs: ["Python", "SpeechRecognition", "pyttsx3", "AI", "Voice"], | |
logo: "🗣️", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 37, | |
name: "PassGuard", | |
category: "security", | |
description: "Secure password management tool with web interface featuring encryption and secure storage capabilities.", | |
techs: ["HTML", "CSS", "JavaScript", "Cryptography", "Security"], | |
logo: "🔐", | |
logoColor: "#f5576c", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 38, | |
name: "Customer Sentiment Classification with BERT", | |
category: "ai-ml", | |
description: "Customer sentiment classification application using BERT transformer model for advanced text understanding.", | |
techs: ["Python", "BERT", "Hugging Face", "Flask API", "NLP"], | |
logo: "🤖", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 39, | |
name: "Smart Movie Recommender", | |
category: "ai-ml", | |
description: "Intelligent movie recommendation system using collaborative or content-based filtering with machine learning algorithms.", | |
techs: ["Python", "Pandas", "Scikit-learn", "Flask", "ML"], | |
logo: "🍿", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 40, | |
name: "Song Playlist Recommendation", | |
category: "ai-ml", | |
description: "System for recommending songs and generating playlists based on user preferences using clustering algorithms.", | |
techs: ["Python", "Machine Learning", "Clustering", "Music API", "ML"], | |
logo: "📱", | |
logoColor: "#f093fb", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 41, | |
name: "EduGenie", | |
category: "mobile", | |
description: "Educational mobile application built with Kotlin providing interactive learning experiences and progress tracking.", | |
techs: ["Kotlin", "Android", "Spring Boot", "Firebase", "Mobile"], | |
logo: "📚", | |
logoColor: "#58a6ff", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 42, | |
name: "Forge Development Toolkit", | |
category: "web", | |
description: "Versatile development toolkit and platform for web and software creation with automation capabilities.", | |
techs: ["DevOps", "Automation", "API", "Web Development", "Tools"], | |
logo: "🔧", | |
logoColor: "#10a37f", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 43, | |
name: "Institute Activity Analyser", | |
category: "web", | |
description: "Web-based tool for analyzing activities within educational institutes with comprehensive data visualization.", | |
techs: ["HTML", "CSS", "JavaScript", "Data Visualization", "Analytics"], | |
logo: "🏫", | |
logoColor: "#a5b4fc", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
}, | |
{ | |
id: 44, | |
name: "MathCoder144", | |
category: "web", | |
description: "Platform combining mathematics and coding challenges with algorithmic problem-solving and educational content.", | |
techs: ["Algorithms", "Data Structures", "Web Interface", "Education"], | |
logo: "🧮", | |
logoColor: "#fbbf24", | |
status: "Completed", | |
github: "#", | |
demo: "#" | |
} | |
]; | |
// Function to create project card HTML | |
function createProjectCard(project) { | |
return ` | |
<div class="project-card" data-category="${project.category}"> | |
<div class="project-header"> | |
<div class="project-logo" style="background: ${project.logoColor}">${project.logo}</div> | |
<div class="project-status ${project.status === 'In Progress' ? 'in-progress' : ''}">${project.status}</div> | |
</div> | |
<div class="project-content"> | |
<h3 class="project-title">${project.name}</h3> | |
<div class="project-category">${project.category.replace('-', '/').toUpperCase()}</div> | |
<p class="project-description">${project.description}</p> | |
<div class="tech-stack"> | |
${project.techs.map(tech => `<span class="tech-tag">${tech}</span>`).join('')} | |
</div> | |
<div class="project-links"> | |
<a href="${project.github}" target="_blank"> | |
<span>📂</span> Code | |
</a> | |
<a href="${project.demo}" target="_blank"> | |
<span>🚀</span> Demo | |
</a> | |
</div> | |
</div> | |
</div> | |
`; | |
} | |
// Function to render all projects | |
function renderProjects() { | |
const projectsGrid = document.getElementById('projectsGrid'); | |
if (!projectsGrid) return; | |
projectsGrid.innerHTML = projects.map(project => createProjectCard(project)).join(''); | |
} | |
// Function to filter projects by category | |
function filterProjects(category) { | |
const projectCards = document.querySelectorAll('.project-card'); | |
const categoryButtons = document.querySelectorAll('.category-btn'); | |
// Update active button | |
categoryButtons.forEach(btn => btn.classList.remove('active')); | |
event.target.classList.add('active'); | |
// Filter projects | |
projectCards.forEach(card => { | |
if (category === 'all' || card.dataset.category === category) { | |
card.classList.remove('hidden'); | |
card.style.display = 'flex'; | |
} else { | |
card.classList.add('hidden'); | |
card.style.display = 'none'; | |
} | |
}); | |
// Add animation effect | |
projectCards.forEach((card, index) => { | |
if (!card.classList.contains('hidden')) { | |
card.style.animationDelay = `${index * 0.1}s`; | |
card.style.animation = 'none'; | |
card.offsetHeight; // Trigger reflow | |
card.style.animation = 'fadeInUp 0.6s ease forwards'; | |
} | |
}); | |
} | |
// Function to update portfolio statistics | |
function updatePortfolioStats() { | |
const totalProjects = projects.length; | |
const aiMlProjects = projects.filter(p => p.category === 'ai-ml').length; | |
const webProjects = projects.filter(p => p.category === 'web').length; | |
const otherProjects = totalProjects - aiMlProjects - webProjects; | |
// Update stat numbers | |
const statNumbers = document.querySelectorAll('.stat-number'); | |
if (statNumbers.length >= 4) { | |
statNumbers[0].textContent = totalProjects; | |
statNumbers[1].textContent = aiMlProjects; | |
statNumbers[2].textContent = webProjects; | |
statNumbers[3].textContent = otherProjects; | |
} | |
} | |
function addSmoothScrolling() { | |
const navLinks = document.querySelectorAll('.nav-links a'); | |
navLinks.forEach(link => { | |
link.addEventListener('click', function(e) { | |
const href = this.getAttribute('href'); | |
if (href.startsWith('#')) { | |
e.preventDefault(); | |
const targetEl = document.querySelector(href); | |
if (targetEl) { | |
targetEl.scrollIntoView({ behavior: 'smooth', block: 'start' }); | |
} | |
} | |
// else: do nothing, so the link follows through normally | |
}); | |
}); | |
} | |
// Function to add header scroll effect | |
function addHeaderScrollEffect() { | |
const header = document.querySelector('header'); | |
let lastScrollY = window.scrollY; | |
window.addEventListener('scroll', () => { | |
const currentScrollY = window.scrollY; | |
if (currentScrollY > 100) { | |
header.style.background = 'rgba(0, 0, 0, 0.95)'; | |
header.style.backdropFilter = 'blur(30px)'; | |
} else { | |
header.style.background = 'rgba(0, 0, 0, 0.8)'; | |
header.style.backdropFilter = 'blur(20px)'; | |
} | |
// Hide header on scroll down, show on scroll up | |
if (currentScrollY > lastScrollY && currentScrollY > 200) { | |
header.style.transform = 'translateY(-100%)'; | |
} else { | |
header.style.transform = 'translateY(0)'; | |
} | |
lastScrollY = currentScrollY; | |
}); | |
} | |
// Function to add search functionality | |
function addSearchFunctionality() { | |
const searchInput = document.getElementById('searchInput'); | |
if (searchInput) { | |
searchInput.addEventListener('input', function() { | |
const searchTerm = this.value.toLowerCase(); | |
const projectCards = document.querySelectorAll('.project-card'); | |
projectCards.forEach(card => { | |
const projectName = card.querySelector('.project-title').textContent.toLowerCase(); | |
const projectDescription = card.querySelector('.project-description').textContent.toLowerCase(); | |
const techTags = Array.from(card.querySelectorAll('.tech-tag')).map(tag => tag.textContent.toLowerCase()); | |
const matches = projectName.includes(searchTerm) || | |
projectDescription.includes(searchTerm) || | |
techTags.some(tech => tech.includes(searchTerm)); | |
if (matches) { | |
card.style.display = 'flex'; | |
card.classList.remove('hidden'); | |
} else { | |
card.style.display = 'none'; | |
card.classList.add('hidden'); | |
} | |
}); | |
}); | |
} | |
} | |
// Function to add loading animation | |
function addLoadingAnimation() { | |
const projectsGrid = document.getElementById('projectsGrid'); | |
if (projectsGrid) { | |
projectsGrid.style.opacity = '0'; | |
setTimeout(() => { | |
projectsGrid.style.transition = 'opacity 0.5s ease'; | |
projectsGrid.style.opacity = '1'; | |
}, 100); | |
} | |
} | |
// Function to handle responsive navigation | |
function handleResponsiveNav() { | |
const navToggle = document.querySelector('.nav-toggle'); | |
const navLinks = document.querySelector('.nav-links'); | |
if (navToggle && navLinks) { | |
navToggle.addEventListener('click', () => { | |
navLinks.classList.toggle('active'); | |
}); | |
} | |
} | |
// CSS for animations (to be added to your CSS file) | |
const animationStyles = ` | |
@keyframes fadeInUp { | |
from { | |
opacity: 0; | |
transform: translateY(30px); | |
} | |
to { | |
opacity: 1; | |
transform: translateY(0); | |
} | |
} | |
.project-card { | |
animation: fadeInUp 0.6s ease forwards; | |
} | |
/* Responsive navigation styles */ | |
@media (max-width: 768px) { | |
.nav-links { | |
position: fixed; | |
top: 70px; | |
left: -100%; | |
width: 100%; | |
height: calc(100vh - 70px); | |
background: var(--bg-secondary); | |
flex-direction: column; | |
justify-content: flex-start; | |
align-items: center; | |
padding-top: 2rem; | |
transition: left 0.3s ease; | |
} | |
.nav-links.active { | |
left: 0; | |
} | |
.nav-toggle { | |
display: block; | |
background: none; | |
border: none; | |
color: var(--text-primary); | |
font-size: 1.5rem; | |
cursor: pointer; | |
} | |
} | |
`; | |
// Initialize everything when DOM is loaded | |
document.addEventListener('DOMContentLoaded', function() { | |
// Render projects | |
renderProjects(); | |
// Update portfolio statistics | |
updatePortfolioStats(); | |
// Add smooth scrolling | |
addSmoothScrolling(); | |
// Add header scroll effect | |
addHeaderScrollEffect(); | |
// Add search functionality | |
addSearchFunctionality(); | |
// Add loading animation | |
addLoadingAnimation(); | |
// Handle responsive navigation | |
handleResponsiveNav(); | |
// Add animation styles to the page | |
const styleSheet = document.createElement('style'); | |
styleSheet.textContent = animationStyles; | |
document.head.appendChild(styleSheet); | |
console.log('Portfolio initialized with', projects.length, 'projects'); | |
}); | |
// Export functions for external use | |
window.portfolioFunctions = { | |
filterProjects, | |
renderProjects, | |
updatePortfolioStats, | |
projects | |
}; | |
</script> | |
</body></html> |