b4298e78efd02bd96476862a850da1210c1b1121
All checks were successful
Docker Deploy / build-and-push (push) Successful in 6m56s
Personal Website
My personal website built with Astro and Preact!
Features
- Resume Management
- Blog Posts
- Projects
- Talks & Presentations
- Terminal View
Resume Configuration
The resume system supports multiple sections that can be enabled, disabled, and customized.
Available Resume Sections
| Section | Required Fields |
|---|---|
| basics | name, email, profiles |
| summary | content |
| experience | company, position, location, date, description |
| education | institution, degree, field, date |
| skills | name, level (1-5) |
| volunteer | organization, position, date |
| awards | title, organization, date |
| profiles | network, username, url |
Section Configuration
Each section can be configured in src/config/data.ts:
export const resumeConfig: ResumeConfig = {
tomlFile: "/files/resume.toml",
sections: {
summary: {
title: "Professional Summary",
enabled: true,
},
experience: {
title: "Work Experience",
enabled: true,
},
awards: {
title: "Awards & Recognition",
enabled: true,
},
// ... other sections
},
};
Resume Data Format (TOML)
Create a resume.toml file in the public/files/ directory:
[basics]
name = "Your Name"
email = "your.email@example.com"
[[basics.profiles]]
network = "GitHub"
username = "yourusername"
url = "https://github.com/yourusername"
[[basics.profiles]]
network = "LinkedIn"
username = "yourname"
url = "https://linkedin.com/in/yourname"
[summary]
content = "Your professional summary here..."
[[experience]]
company = "Company Name"
position = "Job Title"
location = "City, State"
date = "2020 - Present"
description = [
"Achievement or responsibility 1",
"Achievement or responsibility 2"
]
url = "https://company.com"
[[education]]
institution = "University Name"
degree = "Bachelor of Science"
field = "Computer Science"
date = "2016 - 2020"
details = [
"Relevant coursework or achievements"
]
[[skills]]
name = "JavaScript"
level = 4
[[skills]]
name = "Python"
level = 5
[[volunteer]]
organization = "Organization Name"
position = "Volunteer Position"
date = "2019 - Present"
[[awards]]
title = "Award Title"
organization = "Awarding Organization"
date = "2023"
description = "Brief description of the award"
Section Field Details
Skills Section
level: Integer from 1-5 representing proficiency level- Displays as progress bars with visual indicators
Experience Section
description: Array of strings for bullet pointsurl: Optional company website link
Education Section
details: Optional array of additional information (coursework, achievements, etc.)
Awards Section
description: Optional additional details about the award
Profiles Section
network: Used for icon selection (GitHub, LinkedIn, etc.)- Icons automatically selected based on network name
Usage
- Configure Resume: Edit
src/config/data.tsto enable/disable sections - Add Resume Data: Create
public/files/resume.tomlwith your information - View Resume: Navigate to
/resumeon your site - Generate PDF: Click "Generate PDF Resume" button for downloadable PDF
Development
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
Resume PDF Generation
The system automatically generates PDFs using Puppeteer with:
- Optimized layout for A4 paper
- Print-friendly styling
- Consistent formatting across sections
- Proper page breaks and margins
Description
Languages
TypeScript
47.2%
Astro
28.8%
Vue
21.4%
JavaScript
2%
Dockerfile
0.5%