This repository has been archived on 2025-05-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
seccodesmith-frontend/src/pages/About.tsx
T
seccodesmith 8d440c1993 feat: Add JSON data files for About, Blog Posts, Contact, Projects, Skills, and Social Links
- Created AboutProps.json with core values, technical arsenal, professional journey, and testimonials.
- Added BlogPosts.json for blog post data including title, content, and metadata.
- Introduced Contact.json for contact information and FAQs.
- Created ProjectProps.json as a template for project details.
- Added SkillCardProps.json for skill categories and skills.
- Introduced SocialLink.json for social media links.
- Updated components to fetch data from newly created JSON files instead of hardcoded values.
- Adjusted TypeScript configuration to support JSON module imports.
- Enhanced Vite configuration for public directory and build targets.
2025-05-27 16:14:15 +02:00

178 lines
7.9 KiB
TypeScript

import { PageHeader } from '../components/PageHeader';
import { aboutProps } from '../data/AboutProps';
import style from '@styles/About.module.scss';
export const About = () => {
const data = aboutProps;
return (
<>
<PageHeader
title="The Forgemaster"
subtitle="Crafting digital solutions from the raw materials of innovation"
/>
{/* Introduction Section */}
<section className="py-5">
<div className="container">
<div className="row">
<div className="col-lg-4">
<h2 className={`${style.sectionTitle}`}>The Master Behind the Mask</h2>
<div className={style.profileImage}>
<img src="/images/profile.jpg" alt="SecCodeSmith" />
</div>
</div>
<div className="col-lg-8">
<div className={style.introText}>
<p className={style.introText}>Greetings, seeker of digital arcana. I am <strong>SecCodeSmith</strong>, a master craftsman of code and conductor of silicon. For over a decade, I have been forging robust solutions across the realms of embedded systems, machine learning, and web development.</p>
<p className={style.introText}>My journey began in the depths of <span className={style.accent}>low-level programming</span>, where I learned to bend hardware to my will through carefully crafted instructions. From the arcane energies of microcontrollers to the vast landscapes of cloud architecture, I have honed my skills to create solutions that stand the test of time.</p>
<p className={style.introText}>What distinguishes my work is the <strong>meticulous attention to security</strong> and performance. Like a blacksmith who understands that a sword's true value lies not just in its edge but in the integrity of its steel, I craft code that is not merely functional but resilient against the chaotic forces of the digital wilderness.</p>
<p className={style.introText}>Beyond the technical realms, I am a devoted practitioner of open-source sorcery, contributing to projects that empower others to create and innovate. When not at the forge, I can be found exploring the ancient texts of computer science, delving into new programming languages, or mentoring apprentices on their own journey.</p>
<div className="mt-4">
<a href="#" className={style.connectLink}>
<i className={`fab fa-github ${style.connectIcon}`}></i>
<span>GitHub</span>
</a>
<a href="#" className={style.connectLink}>
<i className={`fab fa-linkedin ${style.connectIcon}`}></i>
<span>LinkedIn</span>
</a>
<a href="#" className={style.connectLink}>
<i className={`fab fa-twitter ${style.connectIcon}`}></i>
<span>Twitter</span>
</a>
<a href="#" className={style.connectLink}>
<i className={`fas fa-envelope ${style.connectIcon}`}></i>
<span>Email</span>
</a>
</div>
</div>
</div>
</div>
</div>
</section>
{/* Core Values Section */}
<section className="py-5 bg-dark">
<div className="container">
<div className="row mb-4">
<div className="col-12">
<h2 className={` ${style.sectionTitle}`}>Forging Principles</h2>
</div>
</div>
<div className={`row g-4 ${style.row}`}>
{data.coreValues.map((value, index) => (
<div className="col-md-6 col-lg-3" key={index}>
<div className={` h-100 ${style.valueCard}`}>
<div className={style.valueIcon}>
<i className={value.icon}></i>
</div>
<h3 className={`${style.valueTitle}`}>{value.title}</h3>
<p className={`${style.valueText}`}>{value.description}</p>
</div>
</div>
))}
</div>
</div>
</section>
{/* Technical Expertise Section */}
<section className="py-5">
<div className="container">
<div className="row mb-4">
<div className="col-12">
<h2 className={`${style.sectionTitle}`}>Arsenal of Expertise</h2>
</div>
</div>
<div className="row g-4">
{data.technicalArsenal.map((value, index) => (
<div className="col-md-6 col-lg-3" key={index}>
<div className={`h-100 ${style.skillCard}`} key={index}>
<div className={`${style.skillHeader}`}>
<div className={`${style.skillIcon}`}>
<i className={value.icon}></i>
</div>
<h3 className={`skill-title ${style.skillTitle}`}>{value.title}</h3>
</div>
<ul className="list-unstyled">
{value.skills.map((skillItem, skillIndex) => (
<li className="mb-2" key={skillIndex}>
<i className={`fas fa-check skill-check ${style.skillCheck}`}></i>
<span>{skillItem}</span>
</li>
))}
</ul>
</div>
</div>
))}
</div>
</div>
</section >
{/* Professional Journey Section */}
< section className="py-5 bg-dark" >
<div className="container">
<div className="row mb-5">
<div className="col-12 text-center">
<h2 className={`section-title ${style.sectionTitle}`}>The Smith's Journey</h2>
</div>
</div>
<div className="row">
<div className="col-12">
<ul className={`${style.timeline}`}>
{data.professionalJourney.map((journey, index) => (
<li className={`${style.timelineItem} clearfix`} key={index}>
<div className={`${style.timelineDot}`}></div>
<div className={`${style.timelineContent}`}>
<div className={`${style.timelineDate}`}>{journey.duration}</div>
<h3 className={`${style.timelineTitle}`}>{journey.title}</h3>
<p className={`${style.timelineText}`}>{journey.description}</p>
</div>
</li>
))}
</ul>
</div>
</div>
</div>
</section >
{/* Testimonials Section */}
{data.testimonials.length > 0 && (
< section className="py-5" >
<div className="container">
<div className="row mb-4">
<div className="col-12">
<h2 className={`section-title ${style.sectionTitle}`}>Tales from the Guild</h2>
</div>
</div>
<div className="row">
<div className="col-lg-8 mx-auto">
{data.testimonials.map((testimonial, index) => (
<div className="testimonial" key={index}>
<div className="testimonial-content">
{testimonial.content}
</div>
<div className="d-flex align-items-center gap-3 testimonial-author">
<div className="author-avatar">
<img src="/images/testimonials/james.jpg" alt={testimonial.author} />
</div>
<div className="author-info">
<h4 className="author-name">{testimonial.author}</h4>
<div className="author-title">{testimonial.position}</div>
</div>
</div>
</div>
))}
</div>
</div>
</div>
</section >)}
</>
);
};