Atridad Lahiji 9739f0a4f2
Some checks failed
Docker Deploy / build-and-push (push) Has been cancelled
???
2025-06-26 18:44:04 -06:00
2025-05-17 22:42:48 -06:00
2025-06-26 17:49:33 -06:00
2025-06-26 17:49:33 -06:00
2025-06-03 14:31:38 -06:00
2025-05-17 22:42:48 -06:00
2025-06-03 14:31:38 -06:00
???
2025-06-26 18:44:04 -06:00
2025-06-26 17:49:33 -06:00
2025-06-26 16:06:15 -06:00
2025-06-26 16:06:15 -06:00
2025-06-26 17:49:33 -06:00
2025-05-17 22:42:48 -06:00

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 points
  • url: 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

  1. Configure Resume: Edit src/config/data.ts to enable/disable sections
  2. Add Resume Data: Create public/files/resume.toml with your information
  3. View Resume: Navigate to /resume on your site
  4. Generate PDF: Click "Download 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
No description provided
Readme 260 MiB
Languages
TypeScript 66.3%
Astro 28.5%
JavaScript 1.7%
CSS 1.4%
Nix 1.1%
Other 1%