Skip to content

Commit 7b1b326

Browse files
authored
Update resume-page.tsx
1 parent 82a24d0 commit 7b1b326

1 file changed

Lines changed: 94 additions & 64 deletions

File tree

src/components/vcard/resume-page.tsx

Lines changed: 94 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,97 @@
1-
21
import { Book, Code, GraduationCap } from 'lucide-react';
32
import { Progress } from '@/components/ui/progress';
4-
import { JavaIcon, PythonIcon, ReactIcon, NextJSIcon, FastAPIIcon, DockerIcon } from '@/components/portfolio/icons';
3+
import {
4+
JavaIcon,
5+
PythonIcon,
6+
ReactIcon,
7+
NextJSIcon,
8+
FastAPIIcon,
9+
DockerIcon,
10+
} from '@/components/portfolio/icons';
511

612
const education = [
7-
{
8-
institution: 'Dr. A.P.J. Abdul Kalam Technical University',
9-
period: '2014 — 2018',
10-
description: 'B.Tech in Computer Science & Engineering, Aggregate: 67%'
11-
},
13+
{
14+
institution: 'Dr. A.P.J. Abdul Kalam Technical University',
15+
period: '2014 — 2018',
16+
description: 'B.Tech in Computer Science & Engineering, Aggregate: 67%',
17+
},
1218
];
1319

1420
const experience = [
15-
{
16-
title: 'Software Developer',
17-
company: 'Questt AI',
18-
period: 'Jun 2025 — Present',
19-
description: 'Developed GST automation system using FastAPI and PostgreSQL with secure APIs. Built NPCL dashboard authentication, configurations, APIs and integrated external systems. Worked on Postman testing, DB connectivity, and OpenAI chatbot development.'
20-
},
21-
{
22-
title: 'Technical Developer',
23-
company: 'AB InBev',
24-
period: 'Sep 2023 — Feb 2024',
25-
description: 'Developed scalable Node.js APIs improving app performance by 25%. Implemented secure authentication/authorization reducing security risks by 40%. Used async programming to enhance performance and non-blocking operations.'
26-
},
27-
{
28-
title: 'Web Developer',
29-
company: 'Karabi Software',
30-
period: 'Jun 2022 — Apr 2023',
31-
description: 'Led MongoDB database development improving data processing speed by 50%. Integrated third-party APIs to deliver seamless customer experiences. Built secure JWT-based backend and deployed on Linux Apache server.'
32-
},
33-
{
34-
title: 'Process Analyst',
35-
company: 'Visionet Systems',
36-
period: 'Sep 2020 — May 2022',
37-
description: 'Improved backend scalability and achieved 99.9% uptime with load balancing. Developed five strategic backend features using ES6 and asynchronous programming. Optimized server-side code for performance and reliability.'
38-
}
39-
]
21+
{
22+
title: 'Software Developer',
23+
company: 'Questt AI',
24+
period: 'Jun 2025 — Present',
25+
description:
26+
'Developed GST automation system using FastAPI and PostgreSQL with secure APIs. Built NPCL dashboard authentication, configurations, APIs and integrated external systems. Worked on Postman testing, DB connectivity, and OpenAI chatbot development.',
27+
},
28+
{
29+
title: 'Technical Developer',
30+
company: 'AB InBev',
31+
period: 'Sep 2023 — Feb 2024',
32+
description:
33+
'Developed scalable Node.js APIs improving app performance by 25%. Implemented secure authentication/authorization reducing security risks by 40%. Used async programming to enhance performance and non-blocking operations.',
34+
},
35+
{
36+
title: 'Web Developer',
37+
company: 'Karabi Software',
38+
period: 'Jun 2022 — Apr 2023',
39+
description:
40+
'Led MongoDB database development improving data processing speed by 50%. Integrated third-party APIs to deliver seamless customer experiences. Built secure JWT-based backend and deployed on Linux Apache server.',
41+
},
42+
{
43+
title: 'Process Analyst',
44+
company: 'Visionet Systems',
45+
period: 'Sep 2020 — May 2022',
46+
description:
47+
'Improved backend scalability and achieved 99.9% uptime with load balancing. Developed five strategic backend features using ES6 and asynchronous programming. Optimized server-side code for performance and reliability.',
48+
},
49+
];
4050

4151
const skills = [
42-
{ name: 'Node.js', value: 90, icon: <Code className="h-6 w-6 text-accent"/> },
43-
{ name: 'React.js', value: 85, icon: <ReactIcon className="h-6 w-6 text-accent"/> },
44-
{ name: 'Express.js', value: 88, icon: <Code className="h-6 w-6 text-accent"/> },
45-
{ name: 'FastAPI', value: 80, icon: <FastAPIIcon className="h-6 w-6 text-accent"/> },
46-
{ name: 'Next.js', value: 85, icon: <NextJSIcon className="h-6 w-6 text-accent"/> },
47-
{ name: 'JavaScript', value: 90, icon: <Code className="h-6 w-6 text-accent"/> },
48-
{ name: 'TypeScript', value: 85, icon: <Code className="h-6 w-6 text-accent"/> },
49-
{ name: 'Python', value: 85, icon: <PythonIcon className="h-6 w-6 text-accent"/> },
50-
{ name: 'PostgreSQL', value: 80, icon: <Code className="h-6 w-6 text-accent"/> },
51-
{ name: 'MongoDB', value: 78, icon: <Code className="h-6 w-6 text-accent"/> },
52-
{ name: 'MySQL', value: 75, icon: <Code className="h-6 w-6 text-accent"/> },
53-
{ name: 'Docker', value: 70, icon: <DockerIcon className="h-6 w-6 text-accent"/> },
52+
{ name: 'Node.js', value: 90, icon: <Code className="h-6 w-6 text-accent" /> },
53+
{ name: 'React.js', value: 85, icon: <ReactIcon className="h-6 w-6 text-accent" /> },
54+
{ name: 'Express.js', value: 88, icon: <Code className="h-6 w-6 text-accent" /> },
55+
{ name: 'FastAPI', value: 80, icon: <FastAPIIcon className="h-6 w-6 text-accent" /> },
56+
{ name: 'Next.js', value: 85, icon: <NextJSIcon className="h-6 w-6 text-accent" /> },
57+
{ name: 'JavaScript', value: 90, icon: <Code className="h-6 w-6 text-accent" /> },
58+
{ name: 'TypeScript', value: 85, icon: <Code className="h-6 w-6 text-accent" /> },
59+
{ name: 'Python', value: 85, icon: <PythonIcon className="h-6 w-6 text-accent" /> },
60+
{ name: 'PostgreSQL', value: 80, icon: <Code className="h-6 w-6 text-accent" /> },
61+
{ name: 'MongoDB', value: 78, icon: <Code className="h-6 w-6 text-accent" /> },
62+
{ name: 'MySQL', value: 75, icon: <Code className="h-6 w-6 text-accent" /> },
63+
{ name: 'Docker', value: 70, icon: <DockerIcon className="h-6 w-6 text-accent" /> },
5464
];
5565

5666
const certifications = [
57-
"AWS Certified Cloud Practitioner(CLF-C01)",
58-
"Selenium Essential Training",
59-
"Udemy Certified The Complete (FullStack) Web Developer: Zero To Mastery",
60-
"React + Redux",
61-
"Ducat Certified Data Science using Python",
62-
"Agentic AI with Langchain & Langraph"
63-
]
67+
'AWS Certified Cloud Practitioner (CLF-C01)',
68+
'Selenium Essential Training',
69+
'Udemy Certified The Complete (FullStack) Web Developer: Zero To Mastery',
70+
'React + Redux',
71+
'Ducat Certified Data Science using Python',
72+
'Agentic AI with Langchain & Langraph',
73+
];
6474

6575
export default function ResumePage() {
6676
return (
6777
<article className="rounded-2xl bg-card p-6 shadow-md md:p-8">
78+
{/* ===== Header ===== */}
6879
<header>
6980
<h2 className="text-2xl font-semibold text-foreground">Resume</h2>
70-
<div className="my-4 h-1 w-10 rounded-full bg-accent"></div>
81+
<div className="my-4 h-1 w-10 rounded-full bg-accent" />
7182
</header>
7283

84+
{/* ===== Education & Experience ===== */}
7385
<div className="grid gap-12 md:grid-cols-2">
86+
{/* Education Section */}
7487
<section>
7588
<div className="mb-6 flex items-center gap-4">
7689
<div className="rounded-lg bg-background p-3 shadow-sm">
7790
<GraduationCap className="h-6 w-6 text-accent" />
7891
</div>
7992
<h3 className="text-xl font-medium text-foreground">Education</h3>
8093
</div>
94+
8195
<ol className="relative border-l border-border/50 pl-6">
8296
{education.map((item) => (
8397
<li key={item.institution} className="mb-8 ml-2">
@@ -90,49 +104,65 @@ export default function ResumePage() {
90104
</ol>
91105
</section>
92106

107+
{/* Experience Section */}
93108
<section>
94109
<div className="mb-6 flex items-center gap-4">
95110
<div className="rounded-lg bg-background p-3 shadow-sm">
96111
<Book className="h-6 w-6 text-accent" />
97112
</div>
98113
<h3 className="text-xl font-medium text-foreground">Experience</h3>
99114
</div>
115+
100116
<ol className="relative border-l border-border/50 pl-6">
101117
{experience.map((item) => (
102118
<li key={item.title} className="mb-8 ml-2">
103-
<span className="absolute -left-[9px] flex h-4 w-4 items-center justify-center rounded-full bg-accent ring-4 ring-background"></span>
119+
<span className="absolute -left-[9px] flex h-4 w-4 items-center justify-center rounded-full bg-accent ring-4 ring-background"></span>
104120
<h4 className="text-md font-semibold text-foreground">{item.title}</h4>
105-
<span className="text-sm text-muted-foreground">{item.company} | {item.period}</span>
121+
<span className="text-sm text-muted-foreground">
122+
{item.company} | {item.period}
123+
</span>
106124
<p className="mt-2 text-sm text-muted-foreground">{item.description}</p>
107125
</li>
108126
))}
109127
</ol>
110128
</section>
111129
</div>
112130

131+
{/* ===== Skills Section ===== */}
113132
<section className="mt-12">
114-
<h3 className="mb-6 text-xl font-medium text-foreground">My skills</h3>
133+
<h3 className="mb-6 text-xl font-medium text-foreground">My Skills</h3>
134+
115135
<ul className="grid gap-6 sm:grid-cols-2">
116136
{skills.map((skill) => (
117137
<li key={skill.name}>
118-
<div className="mb-2 flex items-center justify-between">
119-
<div className="flex items-center gap-2">
120-
{skill.icon}
121-
<h5 className="font-medium text-foreground">{skill.name}</h5>
122-
</div>
123-
<data value={skill.value}>{skill.value}%</data>
138+
<div className="mb-2 flex items-center justify-between">
139+
<div className="flex items-center gap-2">
140+
{skill.icon}
141+
<h5 className="font-medium text-foreground">{skill.name}</h5>
124142
</div>
125-
<Progress value={skill.value} className="h-2 [&>div]:bg-accent" />
143+
<data value={skill.value}>{skill.value}%</data>
144+
</div>
145+
146+
{/* ✅ Fixed Progress Bar Width */}
147+
<div className="relative h-2 w-full overflow-hidden rounded-full bg-muted">
148+
<div
149+
className="absolute left-0 top-0 h-full rounded-full bg-accent transition-all duration-500 ease-in-out"
150+
style={{ width: `${skill.value}%` }}
151+
></div>
152+
</div>
126153
</li>
127154
))}
128155
</ul>
129156
</section>
130157

131-
<section className="mt-12">
158+
{/* ===== Certifications ===== */}
159+
<section className="mt-12">
132160
<h3 className="mb-6 text-xl font-medium text-foreground">Certifications</h3>
133161
<ul className="grid gap-2 sm:grid-cols-2">
134162
{certifications.map((cert) => (
135-
<li key={cert} className="text-muted-foreground">{cert}</li>
163+
<li key={cert} className="text-muted-foreground">
164+
{cert}
165+
</li>
136166
))}
137167
</ul>
138168
</section>

0 commit comments

Comments
 (0)