|
1 | 1 | import { motion, useInView } from 'framer-motion'; |
2 | 2 | import { useRef } from 'react'; |
3 | | -import { GraduationCap, Briefcase, Award, FileText, Languages } from 'lucide-react'; |
| 3 | +import { GraduationCap, Briefcase, Award, FileText, Languages, ExternalLink } from 'lucide-react'; |
4 | 4 |
|
5 | 5 | const Timeline = () => { |
6 | 6 | const ref = useRef(null); |
@@ -48,9 +48,37 @@ const Timeline = () => { |
48 | 48 | ]; |
49 | 49 |
|
50 | 50 | const certificates = [ |
51 | | - "AWS Academy Cloud Foundations", |
52 | | - "Containerization and Virtualization - Datacamp", |
53 | | - "Python Programmer Track - Datacamp" |
| 51 | + { |
| 52 | + name: "Ready Tensor Agentic AI Builder", |
| 53 | + credentialId: "eb338598-3add-4a76-908e-193a655a1c1f", |
| 54 | + link: "https://app.readytensor.ai/certificates/eb338598-3add-4a76-908e-193a655a1c1f", |
| 55 | + featured: true |
| 56 | + }, |
| 57 | + { |
| 58 | + name: "AWS Academy Graduate - AWS Academy Cloud Foundations", |
| 59 | + credentialId: "9e832aba-c055-4679-b3fd-61401a191ebf", |
| 60 | + link: "https://www.credly.com/badges/9e832aba-c055-4679-b3fd-61401a191ebf/print", |
| 61 | + featured: true |
| 62 | + }, |
| 63 | + { |
| 64 | + name: "Data Analysis Using Python", |
| 65 | + credentialId: "3d1d18ab-be1b-4e8d-94d0-81c742db3320", |
| 66 | + link: "https://www.credly.com/badges/3d1d18ab-be1b-4e8d-94d0-81c742db3320" |
| 67 | + }, |
| 68 | + { |
| 69 | + name: "Python for Data Science", |
| 70 | + credentialId: "3d1d18ab-be1b-4e8d-94d0-81c742db3320", |
| 71 | + link: "https://www.credly.com/badges/3d1d18ab-be1b-4e8d-94d0-81c742db3320" |
| 72 | + }, |
| 73 | + { |
| 74 | + name: "Python Developer Track", |
| 75 | + credentialId: "#316,931", |
| 76 | + link: "https://www.datacamp.com/completed/statement-of-accomplishment/track/7653fd473502608649fb0922929cb781c8aaae55" |
| 77 | + }, |
| 78 | + { |
| 79 | + name: "Containerization and Virtualization", |
| 80 | + provider: "Datacamp" |
| 81 | + } |
54 | 82 | ]; |
55 | 83 |
|
56 | 84 | const languages = [ |
@@ -208,11 +236,53 @@ const Timeline = () => { |
208 | 236 | {certificates.map((cert, idx) => ( |
209 | 237 | <div |
210 | 238 | key={idx} |
211 | | - className="bg-white/5 backdrop-blur-sm rounded-lg p-4 border border-neon-blue/30 hover:border-neon-blue/50 transition-all" |
| 239 | + className={`bg-white/5 backdrop-blur-sm rounded-lg p-4 border transition-all group hover:scale-105 ${ |
| 240 | + cert.featured |
| 241 | + ? 'border-accent/50 hover:border-accent hover:shadow-[0_0_20px_rgba(0,255,136,0.3)]' |
| 242 | + : 'border-neon-blue/30 hover:border-neon-blue/50' |
| 243 | + }`} |
212 | 244 | > |
213 | | - <p className="text-gray-300 text-sm">{cert}</p> |
| 245 | + <div className="flex items-start justify-between gap-2"> |
| 246 | + <div className="flex-1"> |
| 247 | + {cert.link ? ( |
| 248 | + <a |
| 249 | + href={cert.link} |
| 250 | + target="_blank" |
| 251 | + rel="noopener noreferrer" |
| 252 | + className="text-white font-semibold text-sm hover:text-accent transition-colors flex items-center gap-2 group-hover:underline" |
| 253 | + > |
| 254 | + {cert.featured && <span className="text-accent">⭐</span>} |
| 255 | + {cert.name} |
| 256 | + <ExternalLink size={14} className="opacity-0 group-hover:opacity-100 transition-opacity" /> |
| 257 | + </a> |
| 258 | + ) : ( |
| 259 | + <p className="text-white font-semibold text-sm">{cert.name}</p> |
| 260 | + )} |
| 261 | + {cert.credentialId && ( |
| 262 | + <p className="text-xs text-gray-400 mt-1"> |
| 263 | + Credential ID: <span className="text-neon-blue font-mono">{cert.credentialId}</span> |
| 264 | + </p> |
| 265 | + )} |
| 266 | + {cert.provider && ( |
| 267 | + <p className="text-xs text-gray-400 mt-1">{cert.provider}</p> |
| 268 | + )} |
| 269 | + </div> |
| 270 | + </div> |
214 | 271 | </div> |
215 | 272 | ))} |
| 273 | + |
| 274 | + {/* View All Certificates Link */} |
| 275 | + <a |
| 276 | + href="https://www.credly.com/users/ammar-ahmed-bsds-2020-fast-nu-lhr/badges" |
| 277 | + target="_blank" |
| 278 | + rel="noopener noreferrer" |
| 279 | + className="block bg-white/5 backdrop-blur-sm rounded-lg p-4 border border-neon-blue/30 hover:border-neon-blue/50 transition-all text-center group" |
| 280 | + > |
| 281 | + <p className="text-neon-blue font-semibold text-sm flex items-center justify-center gap-2"> |
| 282 | + View All on Credly |
| 283 | + <ExternalLink size={14} className="group-hover:translate-x-1 transition-transform" /> |
| 284 | + </p> |
| 285 | + </a> |
216 | 286 | </div> |
217 | 287 | </motion.div> |
218 | 288 |
|
|
0 commit comments