Skip to content

Commit dc97940

Browse files
Feat: Experince Timeline Style added
1 parent 17caf19 commit dc97940

File tree

3 files changed

+414
-205
lines changed

3 files changed

+414
-205
lines changed

index.html

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<link href='https://unpkg.com/[email protected]/dist/boxicons.js' rel='stylesheet'>
3636

3737
<!-- ✅ Canonical link -->
38-
<link rel="canonical" href="https://sakthiprogrammer.github.io/Sakthivel-Portfolio/">
38+
<link rel="canonical" href="https://sakthivel-app.wep.app/">
3939

4040
<!-- ✅ Open Graph for social media (Facebook, LinkedIn, etc.) -->
4141
<meta property="og:title" content="Sakthivel D - Full Stack Developer Portfolio">
@@ -106,7 +106,11 @@ <h2 class="hero-subtitle">
106106
I’m a Passionate Software Developer, Problem Solver, and Tech Enthusiast.
107107
</p>
108108

109-
<p class="hero-description">I specialize in Java, Go, C, C++, Vue.js, Flutter, and Data Structures & Algorithms, building scalable and modern applications that solve real-world challenges. I’ve solved 200+ problems on LeetCode, sharpening my problem-solving and algorithmic skills, and I’m always eager to explore new technologies and frameworks. My mission is to transform ideas into powerful, reliable software that makes a real impact.
109+
<p class="hero-description">I specialize in Java, Go, C, C++, Vue.js, Flutter, and Data Structures &
110+
Algorithms, building scalable and modern applications that solve real-world challenges. I’ve solved
111+
200+ problems on LeetCode, sharpening my problem-solving and algorithmic skills, and I’m always
112+
eager to explore new technologies and frameworks. My mission is to transform ideas into powerful,
113+
reliable software that makes a real impact.
110114
</p>
111115
</div>
112116

@@ -131,30 +135,35 @@ <h2 class="hero-subtitle">
131135

132136
<!-- Experience Section -->
133137
<section id="experience" class="section experience">
134-
<div class="container">
135-
<h2 class="section-title animate-on-scroll">Experience</h2>
136-
<div class="timeline">
138+
<div class="timeline-container">
139+
<h2 class="section-title animate-on-scroll">Experience</h2> <!--animate-on-scroll-->
140+
<div class="timeline animate-on-scroll">
137141
<!-- Experience Item -->
138142
<!-- <div class="timeline-dot"></div> -->
139-
<div class="timeline-card">
140-
<div class="circle"><img class="timeline-logo" src="/docs/flattrade (1).png" alt="Flattrade Logo"></div>
141-
<h3>Software Developer Executive</h3>
142-
<h4>Flattrade Broking Private Limited</h4>
143-
<span class="timeline-date">Dec 2024 - May 2025 (6 Months) | Chennai, India</span>
144-
<ul class="experience-list">
145-
<li>Developed and optimized 3+ internal tools using Go APIs and automated email
146-
schedulers,
147-
resulting in a 30% reduction in manual operations and improved client reporting
148-
efficiency.</li>
149-
<li>Developed scalable backend services using Go, improving response times by 40%
150-
through
151-
clean architecture and optimized queries.</li>
152-
<li>Built interactive user interfaces using Vue.js and mobile modules with Flutter.</li>
153-
<li>Collaborated with cross-functional teams to debug issues, refactor code, and improve
154-
UI
155-
responsiveness.</li>
156-
<li>Followed Git-based workflows and maintained structured commit practices.</li>
157-
</ul>
143+
<div class="padding-container right-container animate-bottom">
144+
<div class="timeline-card">
145+
<div class="circle"><img class="timeline-logo" src="docs/flattrade (1).png"
146+
alt="Flattrade Logo"></div>
147+
<h3>Software Developer Executive</h3>
148+
<h4>Flattrade Broking Private Limited | Chennai, India</h4>
149+
<span class="timeline-date">Dec 2024 - May 2025</span>
150+
<ul class="experience-list">
151+
<li>Developed and optimized 3+ internal tools using Go APIs and automated email
152+
schedulers,
153+
resulting in a 30% reduction in manual operations and improved client reporting
154+
efficiency.</li>
155+
<li>Developed scalable backend services using Go, improving response times by 40%
156+
through
157+
clean architecture and optimized queries.</li>
158+
<li>Built interactive user interfaces using Vue.js and mobile modules with Flutter.</li>
159+
<li>Collaborated with cross-functional teams to debug issues, refactor code, and improve
160+
UI & responsive.
161+
<li>Followed Git-based workflows and maintained structured commit practices.</li>
162+
</ul>
163+
<div clas="right-container-arrow-border"><span class="right-container-arrow"></span></div>
164+
<!-- <span class="left-container-arrow"></span> -->
165+
166+
</div>
158167
</div>
159168
</div>
160169
</div>
@@ -428,7 +437,7 @@ <h2 class="section-title animate-on-scroll">About Me</h2>
428437
</div>
429438
<div class="about-image animate-on-scroll">
430439
<dotlottie-wc src="https://lottie.host/68601e16-9778-425f-883b-dd96750a963f/xT3EIZ8HdA.lottie"
431-
style="height: 300px;" speed="0.5" autoplay loop></dotlottie-wc>
440+
style="height: 300px; width: 300px;" speed="0.5" autoplay loop></dotlottie-wc>
432441
</div>
433442
</div>
434443
</div>

script.js

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ document.addEventListener('DOMContentLoaded', function () {
4343
navbar.classList.remove('home-style');
4444
}
4545

46+
// 🔹 Highlight active section in navbar
4647
sections.forEach(sectionId => {
4748
const section = document.getElementById(sectionId);
4849
if (section) {
@@ -58,10 +59,9 @@ document.addEventListener('DOMContentLoaded', function () {
5859
if (activeLink) {
5960
activeLink.classList.add('active');
6061
}
61-
}
6262

63+
}
6364
}
64-
6565
});
6666
});
6767

@@ -79,6 +79,9 @@ document.addEventListener('DOMContentLoaded', function () {
7979
});
8080
}, observerOptions);
8181

82+
83+
84+
8285
// Observe all elements with animate-on-scroll class
8386
const elementsToAnimate = document.querySelectorAll('.animate-on-scroll');
8487
elementsToAnimate.forEach(el => observer.observe(el));
@@ -206,6 +209,11 @@ document.addEventListener('DOMContentLoaded', function () {
206209
});
207210
});
208211

212+
213+
214+
215+
216+
209217
// Utility functions
210218
function scrollToSection(sectionId) {
211219
const element = document.getElementById(sectionId);
@@ -242,7 +250,7 @@ function openResume() {
242250
let clickCount = 0;
243251
document.querySelector('.logo-text').addEventListener('click', function () {
244252
clickCount++;
245-
if (clickCount === 5) {
253+
if (clickCount == 5) {
246254
this.style.animation = 'bounce 1s ease-in-out';
247255
setTimeout(() => {
248256
this.style.animation = '';
@@ -320,24 +328,24 @@ const eraseSpeed = 50; // deleting speed
320328
const delayBetween = 1500; // pause before deleting
321329

322330
function typeEffect() {
323-
const target = document.getElementById("typed-text");
324-
325-
if (!isDeleting && j <= texts[i].length) {
326-
currentText = texts[i].substring(0, j++);
327-
target.textContent = currentText;
328-
setTimeout(typeEffect, speed);
329-
} else if (isDeleting && j >= 0) {
330-
currentText = texts[i].substring(0, j--);
331-
target.textContent = currentText;
332-
setTimeout(typeEffect, eraseSpeed);
333-
} else if (!isDeleting && j > texts[i].length) {
334-
isDeleting = true;
335-
setTimeout(typeEffect, delayBetween);
336-
} else if (isDeleting && j < 0) {
337-
isDeleting = false;
338-
i = (i + 1) % texts.length; // switch text
339-
setTimeout(typeEffect, speed);
340-
}
331+
const target = document.getElementById("typed-text");
332+
333+
if (!isDeleting && j <= texts[i].length) {
334+
currentText = texts[i].substring(0, j++);
335+
target.textContent = currentText;
336+
setTimeout(typeEffect, speed);
337+
} else if (isDeleting && j >= 0) {
338+
currentText = texts[i].substring(0, j--);
339+
target.textContent = currentText;
340+
setTimeout(typeEffect, eraseSpeed);
341+
} else if (!isDeleting && j > texts[i].length) {
342+
isDeleting = true;
343+
setTimeout(typeEffect, delayBetween);
344+
} else if (isDeleting && j < 0) {
345+
isDeleting = false;
346+
i = (i + 1) % texts.length; // switch text
347+
setTimeout(typeEffect, speed);
348+
}
341349
}
342350

343351
document.addEventListener("DOMContentLoaded", typeEffect);

0 commit comments

Comments
 (0)