-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
354 lines (332 loc) · 24.1 KB
/
Copy pathscript.js
File metadata and controls
354 lines (332 loc) · 24.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
document.addEventListener('DOMContentLoaded', () => {
// --- Typing Effect for Hero Section ---
const typingElement = document.getElementById('typing-text');
if (typingElement) {
const words = ["Aspiring Data Analyst", "Data Science Enthusiast", "Insight Seeker"];
let wordIndex = 0;
let charIndex = 0;
let isDeleting = false;
let typeSpeed = 100;
function type() {
const currentWord = words[wordIndex];
if (isDeleting) {
typingElement.textContent = currentWord.substring(0, charIndex - 1);
charIndex--;
typeSpeed = 50;
} else {
typingElement.textContent = currentWord.substring(0, charIndex + 1);
charIndex++;
typeSpeed = 100;
}
if (!isDeleting && charIndex === currentWord.length) {
isDeleting = true;
typeSpeed = 2000;
} else if (isDeleting && charIndex === 0) {
isDeleting = false;
wordIndex = (wordIndex + 1) % words.length;
typeSpeed = 500;
}
setTimeout(type, typeSpeed);
}
type();
}
// --- Dark Mode Toggle ---
const themeToggle = document.getElementById('theme-toggle');
if (themeToggle) {
const currentTheme = localStorage.getItem('theme');
if (currentTheme) {
document.documentElement.setAttribute('data-theme', currentTheme);
themeToggle.innerHTML = currentTheme === 'dark' ? '<i class="fas fa-sun"></i>' : '<i class="fas fa-moon"></i>';
}
themeToggle.addEventListener('click', () => {
let theme = document.documentElement.getAttribute('data-theme');
if (theme === 'dark') {
document.documentElement.setAttribute('data-theme', 'light');
localStorage.setItem('theme', 'light');
themeToggle.innerHTML = '<i class="fas fa-moon"></i>';
} else {
document.documentElement.setAttribute('data-theme', 'dark');
localStorage.setItem('theme', 'dark');
themeToggle.innerHTML = '<i class="fas fa-sun"></i>';
}
});
}
// --- Scroll Animations ---
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) entry.target.classList.add('visible');
});
}, { threshold: 0.1 });
document.querySelectorAll('.animate-fade-in').forEach(el => observer.observe(el));
// --- Navbar Scroll ---
window.addEventListener('scroll', () => {
const nav = document.getElementById('mainNav');
if (nav) {
window.scrollY > 50 ? nav.classList.add('py-2', 'bg-white', 'shadow-sm') : nav.classList.remove('py-2', 'bg-white', 'shadow-sm');
}
});
// --- Project Case Study Logic ---
const projectData = {
'victor-ai': {
title: "Victor AI",
tagline: "Local Voice-Driven AI Assistant & Autonomous Tool Orchestrator",
description: "A local system voice-based AI assistant harnessing LLM reasoning for conversational voice interaction and automated local tool execution, command handling, and desktop routines.",
objectives: [
"Implement low-latency voice capture, speech recognition, and synthesized audio feedback.",
"Develop an extensible function-calling framework to run system-level utilities and routines.",
"Ensure local execution capability prioritizing user privacy and system efficiency."
],
approach: "Constructed a multi-threaded Python pipeline connecting speech-to-text processing with conversational LLM endpoints. Implemented structured schema parsing to route recognized intents into local system tools and automation scripts.",
results: "Provides hands-free voice operations and an easily extensible modular interface for adding custom OS automation tasks.",
stack: ["Python", "SpeechRecognition", "TTS", "LLM APIs", "System Automation", "Function Calling"],
links: [
{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Victor-AI-Assistant", icon: "fab fa-github" }
]
},
'legal-hr-assistant': {
title: "Legal & HR Policy Assistant",
tagline: "Enterprise Document Q&A with Hybrid RAG & Cross-Encoder Reranking",
description: "A production-grade Retrieval-Augmented Generation (RAG) system that allows users to upload PDF contracts and HR policies to query them in natural language, generating faithful answers backed by exact page citations.",
objectives: [
"Implement hybrid retrieval fusing semantic vector similarity search with BM25 lexical search.",
"Integrate a local Cross-Encoder reranker to re-score candidate chunks without API rate limits.",
"Build confidence guardrails that refuse to answer gracefully when retrieved document evidence is insufficient.",
"Quantitatively benchmark retrieval faithfulness and context precision using the RAGAs framework."
],
approach: "Extracted and parsed PDFs using PyMuPDF into 600-token chunks with 100-token overlap. Indexed embeddings locally with ChromaDB and BM25. Filtered candidates through an ms-marco Cross-Encoder, passing context into Llama 3.1 via Groq with strict citation constraints.",
results: "Attained a 0.91 faithfulness score and 0.87 answer relevancy score during RAGAs evaluation, eliminating hallucinations on unmentioned policy topics.",
stack: ["FastAPI", "Python", "React", "ChromaDB", "Groq (Llama 3.1)", "BM25", "Cross-Encoder", "RAGAs"],
links: [
{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Legal-HR-Policy-Assistant", icon: "fab fa-github" }
]
},
'clat-oracle-ai': {
title: "CLAT Oracle AI",
tagline: "AI-Powered Exam Preparation & Passage Generation Platform",
description: "A full-stack, open-source RAG exam preparation platform engineered for CLAT (Common Law Admission Test) aspirants. Generates unlimited practice questions across all 5 exam sections in authentic passage-based format.",
objectives: [
"Construct a specialized Retrieval-Augmented Generation (RAG) pipeline ingesting past exam papers and current affairs into a vector database.",
"Engineer section-specific prompt strategies to yield authentic passage-question clusters instead of generic standalone MCQs.",
"Implement dynamic date-range filtering and repeat-avoidance logic for adaptive practice sessions.",
"Architect a sustainable, zero-cost production stack leveraging hosted free-tier APIs (Groq, Cohere, Qdrant, Vercel, Render)."
],
approach: "Engineered a modular FastAPI Python backend handling document chunking, semantic retrieval with Cohere embeddings, and Qdrant vector indexing. Integrated Groq LLM inference for near-instant question synthesis. Created a responsive Next.js 14 frontend with TypeScript and Tailwind CSS deployed on Vercel.",
results: "Successfully replicated official CLAT passage-question structures across all 5 syllabus sections with sub-second retrieval times and zero infrastructure hosting expense.",
stack: ["FastAPI", "Python", "Next.js 14", "TypeScript", "Tailwind CSS", "Qdrant Vector DB", "Groq API", "Cohere", "RAG Architecture"],
links: [
{ label: "Live Platform", url: "https://clat-oracle-ai.vercel.app", icon: "fas fa-external-link-alt" },
{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/CLAT-Oracle-AI", icon: "fab fa-github" }
]
},
'kaushal-ai': {
title: "Kaushal AI",
tagline: "Flagship AI Career Recommendation System",
description: "Kaushal AI is an intelligent platform designed to bridge the gap between academic education and industry requirements. By processing multi-dimensional user data, it provides personalized career roadmaps and skill suggestions.",
objectives: [
"Develop an automated profiling engine for students and professionals.",
"Implement a multi-model evaluation system to select the best predictive model dynamically.",
"Scale recommendations based on a 20,000+ row synthetic career dataset."
],
approach: "We adopted a modular architecture. First, data preprocessing handled sparse feature sets from diverse backgrounds. Then, we trained multiple classifiers (Random Forest, XGBoost, and SVM) and implemented a voting ensemble.",
results: "The system successfully achieves 92% accuracy in career path matching during validation. It significantly reduces the 'choice paralysis' faced by fresh graduates.",
stack: ["Python", "Scikit-Learn", "XGBoost", "Pandas", "MLflow"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Kaushal-AI", icon: "fab fa-github" }]
},
'arthlytics-ai': {
title: "Arthlytics AI",
tagline: "AI-Powered Data Analytics & Reporting Platform",
description: "Arthlytics AI is a full-stack AI-powered analytics platform that transforms raw datasets into actionable insights through automated data cleaning, intelligent visualizations, conversational analytics, AI-generated reports, and collaborative workspaces. The platform is currently under active development with a modular and scalable architecture.",
objectives: [
"Build a unified platform for automated data cleaning, visualization, reporting, and AI-assisted analytics.",
"Integrate Large Language Models to enable natural language data exploration and intelligent report generation.",
"Design a scalable, production-ready architecture supporting collaboration and future AutoML capabilities."
],
approach: "The platform follows a modular full-stack architecture built with React and FastAPI. It combines AI orchestration using LangChain with Gemini, Groq, and Hugging Face APIs, while leveraging Pandas, Scikit-learn, Chart.js, Matplotlib, and Seaborn for data processing, visualization, and analytics.",
results: "Successfully developed core modules including CleanStats, AutoViz, SmartQuery, Report Generation, Workspace, OAuth Authentication, and User Profiles. The platform provides an intuitive AI-driven analytics workflow and is currently progressing toward Beta deployment.",
stack: ["React", "FastAPI", "Python", "PostgreSQL", "LangChain", "Gemini API", "Groq", "Hugging Face"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Arthlytics-AI", icon: "fab fa-github" }]
},
'personality-prediction': {
title: "Introvert vs Extrovert Classification",
tagline: "ML Model for Personality Type Prediction",
description: "A research-driven project that utilizes Machine Learning to classify personality types (Introvert vs Extrovert) based on digital footprints.",
objectives: [
"Extract meaningful linguistic patterns from input user data.",
"Build a classification model using advanced ML techniques.",
"Integrate Generative AI to provide personalized improvement tips."
],
approach: "Utilized Machine Learning preprocessing and prediction techniques. We implemented a Flask-based backend to serve the model and used the Gemini API for feedback generation.",
results: "Delivered a user-friendly application that provides instant psychological insights with high predictive reliability.",
stack: ["Python", "Flask", "Scikit-Learn", "GenAI", "Gemini API"],
links: [{ label: "View Code", url: "https://github.com/AnubhavDataSci25/Introvert-vs-Extrovert-Classification-Project", icon: "fab fa-github" }]
},
'student-performance': {
title: "Student Habit vs Academic Performance Prediction",
tagline: "Predictive Analytics for Student Success",
description: "This project analyzes the correlation between student habits (like study time, sleep patterns) and their academic performance using machine learning techniques.",
objectives: [
"Identify key habits that influence academic success.",
"Build a predictive model to forecast student performance.",
"Provide actionable insights for students and educators."
],
approach: "We adopted a modular coding approach, starting with data collection and preprocessing. We then trained various regression models and implemented a form which allows users to input their habits and receive performance predictions (marks).",
results: "The model achieved an R² score of 0.85, indicating strong predictive power. The project has been well-received for its practical application in educational settings.",
stack: ["Python", "Scikit-Learn", "Pandas", "Matplotlib", "Flask", "HTML/CSS/Bootstrap", "Docker"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Student-Habit-vs-Academic-Performance-Prediction", icon: "fab fa-github" }]
},
'aurora-ai': {
title: "Aurora AI",
tagline: "AI-Powered Data Analysis and Visualization Tool",
description: "Aurora AI is a comprehensive data analysis and visualization tool that leverages AI to provide insights and recommendations based on user-uploaded datasets.",
objectives: [
"Develop an intuitive interface for data upload and analysis.",
"Utilize pandas cleaning and preprocessing techniques to handle diverse datasets.",
"Implement visualization capabilities using Matplotlib and Seaborn for insightful data representation, without writing custom code.",
"LLM and RAG integration for natural language querying and insights generation."
],
approach: "We developed a user-friendly interface for data upload and analysis. Utilizing pandas for data cleaning and preprocessing, we implemented visualization capabilities using Matplotlib and Seaborn. Additionally, we integrated LLM and RAG technologies for natural language querying and insights generation.",
results: "Aurora AI successfully provides actionable insights from diverse datasets, enhancing the data analysis process with AI-driven automation.",
stack: ["Python", "Pandas", "Matplotlib", "Seaborn", "Streamlit", "Gemini API", "RAG"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Aurora-AI-Project", icon: "fab fa-github" }]
},
'capbot': {
title: "CapBot",
tagline: "AI-Powered Caption Generation for Images",
description: "AI-driven caption generator for social media. Generates creative content from images using image-to-text models. Built with Gemini AI Model and Streamlit for a seamless user experience.",
objectives: [
"Implement image-to-text models to generate captions from user-uploaded images.",
"Create a user-friendly interface using Streamlit for easy image upload and caption retrieval.",
"Integrate Gemini AI Model to enhance caption creativity and relevance."
],
approach: "We utilized image-to-text models to generate captions from user-uploaded images. A user-friendly interface was created using Streamlit for easy image upload and caption retrieval. The Gemini AI Model was integrated to enhance caption creativity and relevance.",
results: "CapBot successfully generates creative and relevant captions for a wide range of images, providing users with engaging content for their social media posts.",
stack: ["Python", "Gemini AI Model", "Streamlit", "PIL"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Caption-Generator-Project", icon: "fab fa-github" }]
},
'salary-analysis': {
title: "Data Professionals Salary Analysis",
tagline: "Interactive Salary Analysis Dashboard for Data Professionals",
description: "Analysis of data professional salaries (2020-2023) featuring interactive Power BI and Streamlit dashboards.",
objectives: [
"Create interactive dashboards to visualize salary trends and insights.",
"Utilize Power BI for data visualization and reporting.",
"Implement Streamlit for a user-friendly interface for exploring salary data."
],
approach: "Collected data from kaggle and developed interactive dashboards using Power BI and Streamlit to visualize salary trends and insights. The dashboards allow users to explore salary data across different dimensions such as experience, location, and industry.",
results: "The salary analysis dashboard provides valuable insights into data professional compensation trends, enabling informed decision-making for career development and negotiation.",
stack: ["Python", "Power BI", "Streamlit", "Pandas", "Plotly"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Data-Professionals-Salaries-2020-to-2023-Analysis", icon: "fab fa-github" }]
},
'spam-classification': {
title: "Spam vs Ham Classification",
tagline: "ML Model for Spam Detection in Emails",
description: "A machine learning project that classifies emails as spam or ham (not spam) using natural language processing techniques.",
objectives: [
"Preprocess email text data for feature extraction.",
"Train a classification model to distinguish between spam and ham emails.",
"Evaluate model performance and optimize for accuracy."
],
approach: "We utilized natural language processing techniques to preprocess email text data, including tokenization and vectorization. A classification model was trained using algorithms such as Naive Bayes and Support Vector Machines. Model performance was evaluated using metrics like accuracy, precision, and recall.",
results: "The spam classification model achieved an accuracy of 95%, effectively distinguishing between spam and ham emails. This project demonstrates the application of machine learning in email filtering and cybersecurity.",
stack: ["Python", "Scikit-Learn", "NLTK", "Pandas", "Matplotlib", "Streamlit"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/Spam-Classification-Project", icon: "fab fa-github" }]
},
'house-price-prediction': {
title: "House Price Prediction",
tagline: "Predictive Model for Real Estate Valuation",
description: "Leveraging King County dataset to identify key market factors and predict sale prices using advanced regression techniques.",
objectives: [
"Collect and preprocess real estate data.",
"Develop a predictive model for house price estimation.",
"Evaluate model performance and refine for accuracy."
],
approach: "We utilized the King County dataset to analyze key market factors influencing house prices. A regression model was developed using advanced techniques to predict sale prices. Model performance was evaluated using metrics like RMSE and R².",
results: "The house price prediction model achieved a high level of accuracy in estimating sale prices, providing valuable insights for real estate professionals and homebuyers.",
stack: ["Python", "Scikit-Learn", "Pandas", "NumPy", "Matplotlib", "Streamlit"],
links: [{ label: "GitHub Repository", url: "https://github.com/AnubhavDataSci25/House-Price-Prediction", icon: "fab fa-github" }]
}
};
const modal = document.getElementById('caseStudyModal');
const closeBtn = document.getElementById('closeCaseStudy');
const openBtns = document.querySelectorAll('.open-case-study');
if (modal && openBtns.length > 0) {
const openModal = (projectId) => {
const data = projectData[projectId];
if (!data) return;
document.getElementById('modalTitle').textContent = data.title;
document.getElementById('modalTagline').textContent = data.tagline;
document.getElementById('modalDescription').textContent = data.description;
document.getElementById('modalApproach').textContent = data.approach;
document.getElementById('modalResults').textContent = data.results;
const objList = document.getElementById('modalObjectives');
objList.innerHTML = '';
data.objectives.forEach(obj => {
const li = document.createElement('li');
li.className = "mb-2";
li.textContent = obj;
objList.appendChild(li);
});
const stackDiv = document.getElementById('modalStack');
stackDiv.innerHTML = '';
data.stack.forEach(tech => {
const span = document.createElement('span');
span.className = "badge rounded-pill bg-primary px-3 py-2 small";
span.textContent = tech;
stackDiv.appendChild(span);
});
const linksDiv = document.getElementById('modalLinks');
linksDiv.innerHTML = '';
data.links.forEach(link => {
const a = document.createElement('a');
a.href = link.url;
a.target = "_blank";
a.className = "btn btn-sm btn-outline-primary rounded-pill text-start w-100 mb-2";
a.innerHTML = `<i class="${link.icon} me-2"></i> ${link.label}`;
linksDiv.appendChild(a);
});
modal.classList.remove('d-none');
document.body.classList.add('modal-open');
};
const closeModal = () => {
modal.classList.add('d-none');
document.body.classList.remove('modal-open');
};
openBtns.forEach(btn => {
btn.addEventListener('click', (e) => {
e.preventDefault();
const id = btn.getAttribute('data-project');
openModal(id);
});
});
closeBtn.addEventListener('click', closeModal);
modal.addEventListener('click', (e) => { if (e.target === modal) closeModal(); });
}
});
// --- Contact Form Handling ---
const contactForm = document.getElementById('contactForm');
if (contactForm) {
// Init EmailJS
if (typeof emailjs !== 'undefined') {
emailjs.init("bHA0zHbNhtt2JnLH1");
}
contactForm.addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('fullName').value.trim();
const email = document.getElementById('emailAddr').value.trim();
const message = document.getElementById('message').value.trim();
if (name && email && message) {
// Send via EmailJS
emailjs.sendForm("service_oa59x3h", "template_yf1rj3k", this)
.then(() => {
const successMsg = document.createElement('div');
successMsg.className = 'alert alert-success mt-4 animate-fade-in shadow-sm rounded-pill py-2';
successMsg.innerHTML = `<i class="fas fa-check-circle me-2"></i> Thank you, ${name}! Your message has been sent.`;
contactForm.parentElement.appendChild(successMsg);
contactForm.reset();
setTimeout(() => successMsg.remove(), 5000);
}, (error) => {
alert("Failed to send message. Please reach out via LinkedIn.");
});
}
});
}