Personal portfolio website: https://timtoronto634.github.io/
This repository contains the source code for my personal portfolio website. It's built as a single-page application (SPA) using modern web technologies.
- React 18
- TypeScript
- Vite
- Material-UI (MUI)
- YAML for content management
.
├── src/ # Source code directory
│ ├── components/ # React components
│ │ ├── Blogs.tsx # Blog section component
│ │ ├── Education.tsx # Education section component
│ │ ├── Home.tsx # Home page component
│ │ ├── Work.tsx # Work experience component
│ │ └── ... # Other component files
│ ├── data/ # Content data directory
│ │ ├── general_info.yml # General information and contacts
│ │ ├── work_experience.yml # Work experience data
│ │ ├── education.yml # Educational background
│ │ ├── skills.yml # Technical and soft skills
│ │ └── projects.yml # Project portfolio
│ ├── assets/ # Static assets
│ └── main.tsx # Application entry point
├── images/ # Image assets
├── public/ # Public static files
└── [Configuration Files] # Various config files for TypeScript, ESLint, etc.
The application is structured around several main components:
Home
: Main landing page componentWork
: Displays work experience informationSkills
: Shows technical skills and competenciesBlogs
: Displays blog posts and articlesEducation
: Shows educational backgroundLanguagesOthers
: Displays language proficiencies and other skillsProfileLogo
: Handles profile image display
Data flow is primarily top-down, with content being sourced from YAML files in the src/data
directory.
- Node.js (Latest LTS recommended)
- pnpm (v9.12.2 or later)
# Install dependencies
pnpm install
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm preview
- Preview production buildpnpm lint
- Run ESLintpnpm format
- Check code formattingpnpm validate
- Run all checks (lint, format, types)pnpm validate:fix
- Fix all auto-fixable issues
Content is managed through YAML files located in src/data/
:
general_info.yml
: Contains personal information and contact detailswork_experience.yml
: Contains work experience informationeducation.yml
: Contains educational backgroundskills.yml
: Contains technical, tools, and soft skillsprojects.yml
: Contains project portfolio information
To update content:
- Modify the relevant YAML file in
src/data/
- The changes will be automatically picked up by the build process
- Components will render the updated content
The project uses Vite for building:
- TypeScript compilation
- YAML processing
- Asset optimization
- Bundle generation
The site is deployed to GitHub Pages automatically when changes are pushed to the main branch. The build process is handled through GitHub Actions.
vite.config.ts
- Vite configurationtsconfig.json
- TypeScript configurationeslint.config.mjs
- ESLint configuration.prettierrc.cjs
- Prettier configuration
This documentation is primarily intended to provide context for LLMs (Large Language Models) to understand the project structure and functionality.