Skip to content

teimurjan/teimurjan.github.io

Repository files navigation

logo

Hey! 👋 This repository contains the source code for my personal website hosted on GitHub Pages.

🤷 What makes this project special?

  1. Tech stack: Hygraph + Next + TypeScript.
  2. GraphQL TypeScript codegen.
  3. Resume generation on website start/build via react-pdf.
  4. GitHub Actions-based automatic deployment.
  5. Monorepo project structure with yarn workspaces.
  6. OpenAI-based job application generation.
  7. Pubsub-based interaction when resume generation is scheduled.

🚀 Quick start

Website

  1. Install dependencies

    yarn
  2. Create environment variables

    # Copy example env files
    cp workspaces/website/.env.example workspaces/website/.env
    
    # Fill in required values in the .env files
  3. Generate GraphQL typings

    env HYGRAPH_URL=<url> yarn workspace @teimurjan/gql-client codegen
  4. Run locally

    yarn workspace @teimurjan/website dev
  5. Build

    yarn workspace @teimurjan/website build

Resume Generator

  1. Install dependencies

    yarn
  2. Create environment variables

    # Copy example env files
    cp workspaces/resume-generator/.env.example workspaces/resume-generator/.env
    
    # Fill in required values in the .env files
  3. Generate GraphQL typings

    env HYGRAPH_URL=<url> yarn workspace @teimurjan/gql-client codegen
  4. Run locally

    yarn workspace @teimurjan/resume-generator dev
  5. Build

    yarn workspace @teimurjan/resume-generator build

✈️ Deployment

GitHub Actions is the CI/CD mechanism responsible for deployments through several workflows:

Website Deployment (deploy.yml)

Triggered when:

  • Code changes are pushed to the main branch (excluding functions and resume generator changes)
  • Manually triggered via workflow_dispatch

The workflow:

  1. Generates OpenGraph images
  2. Generates resume
  3. Builds the Next.js application
  4. Deploys to GitHub Pages

Profile README Deployment (deploy-readme.yml)

Triggered when:

  • The website deployment workflow completes
  • Manually triggered via workflow_dispatch

The workflow:

  1. Generates the GitHub profile README
  2. Copies it to the teimurjan/teimurjan repository
  3. Commits and pushes the changes

Firebase Functions Deployment (deploy-firebase.yml)

Triggered when:

  • Changes are pushed to firebase-functions directory
  • Manually triggered via workflow_dispatch

The workflow deploys the Firebase Functions to Firebase.

Resume Generator Deployment

Triggered on Vercel when:

  • Changes are pushed to the main branch.

This workflow deploys generator to Vercel.

About

Personal website built with Next.

Topics

Resources

Stars

Watchers

Forks

Languages