Skip to content

A dynamic portfolio hub that automatically detects, updates, and deploys featured GitHub projects using GitHub Actions, HTML, CSS themes, and vanilla JavaScript.

License

Notifications You must be signed in to change notification settings

brianwalkerdev/automated-portfolio-hub-github-actions

Repository files navigation

Brian Walker - Portfolio Hub

A dynamic portfolio website that automatically showcases my pinned GitHub repositories with live demos, theme customization, and responsive design.

Portfolio Hub Screenshot

🌐 Live Demo: https://projects.brianwalker.dev

✨ Features

  • Auto-Syncing Projects - Fetches and displays pinned GitHub repositories automatically
  • Live Project Demos - Each project is deployed and accessible with one click
  • Theme Customization - Switch between 5 accent colors (neutral, green, blue, purple, orange)
  • Dark/Light Mode - Toggle between dark and light themes
  • Smart Search & Sort - Filter projects by name or description, sort by date or alphabetically
  • Responsive Design - Optimized for desktop, tablet, and mobile devices
  • Image Lightbox - Click project thumbnails for full-size preview
  • Weekly Auto-Updates - GitHub Actions workflow refreshes projects every week
  • SEO Optimized - Comprehensive on-page SEO, structured data (Schema.org), sitemap, and performance optimization
  • Accessible - WCAG compliant with keyboard navigation, screen reader support, and ARIA labels

πŸ› οΈ Tech Stack

  • Frontend: HTML5, CSS3, Vanilla JavaScript
  • Hosting: GitHub Pages
  • Automation: GitHub Actions (CI/CD)
  • API: GitHub GraphQL API for pinned repositories

πŸš€ Installation & Usage

Local Development

  1. Clone the repository:

    git clone https://github.com/brianwalkerdev/projects.brianwalker.dev.git cd projects.brianwalker.dev
  2. Install dependencies (optional - only needed for build):

    npm install
  3. Run locally:

    • Simply open index.html in your browser, or
    • Use the dev server: npm run dev (opens at http://localhost:8080)
  4. Build for production:

    npm run build
    • Static files are generated in the dist/ folder

Configuration

  • Add Project Thumbnails: Place images in assets/img/ named after your repository
  • Modify Workflow: Edit .github/workflows/deploy-and-update.yml to customize automation
  • Update Projects: GitHub Actions runs weekly, or trigger manually from the Actions tab

πŸ“¦ Deployment

This project is designed for static hosting. Deploy to any of these platforms:

GitHub Pages (Current Setup)

  • Automatically deployed via GitHub Actions
  • Custom domain configured: projects.brianwalker.dev
  • Projects deployed to subdirectories: /<project-name>/

Netlify

npm run build # Deploy the dist/ folder

Vercel

npm run build # Deploy the dist/ folder

Other Static Hosts

Upload the contents of the dist/ folder to any static hosting service.

πŸ“ Project Structure

projects.brianwalker.dev/ β”œβ”€β”€ index.html # Main portfolio page β”œβ”€β”€ projects.json # Auto-generated project metadata β”œβ”€β”€ robots.txt # Search engine crawler directives β”œβ”€β”€ sitemap.xml # XML sitemap for SEO β”œβ”€β”€ assets/ β”‚ β”œβ”€β”€ css/ β”‚ β”‚ └── style.css # Styles with theme support β”‚ β”œβ”€β”€ js/ β”‚ β”‚ └── main.js # Dynamic functionality β”‚ └── img/ # Project thumbnails β”œβ”€β”€ build.js # Build script for static compilation β”œβ”€β”€ package.json # Project metadata and scripts β”œβ”€β”€ SEO-CHANGELOG.md # Documentation of SEO optimizations β”œβ”€β”€ SEO-DEPLOYMENT-CHECKLIST.md # Post-deployment SEO checklist └── .github/ └── workflows/ └── deploy-and-update.yml # Automated deployment 

Note:

  • build.js is the main build script that compiles project data and assets for deployment.
  • .github/workflows/deploy-and-update.yml is a GitHub Actions workflow that automates building and deploying the site, as well as updating project data on a schedule.

For more details on the build and deployment process, see CONTRIBUTING.md.

πŸ” SEO & Performance

This portfolio is optimized for search engines and performance:

  • Semantic HTML5 with proper heading hierarchy and ARIA labels
  • Structured Data using JSON-LD (Person, WebSite, ProfilePage schemas)
  • Open Graph & Twitter Cards for optimized social media sharing
  • robots.txt & sitemap.xml for proper search engine indexation
  • Lazy loading images and deferred JavaScript for fast page loads
  • WCAG 2.1 compliant with full keyboard navigation and screen reader support
  • Optimized meta tags with keyword-rich titles and descriptions

For detailed information about SEO optimizations, see SEO-CHANGELOG.md.
For post-deployment SEO tasks, see SEO-DEPLOYMENT-CHECKLIST.md.

πŸ“š Documentation

  • CONTRIBUTING.md - Development setup, architecture guide, and contribution guidelines
  • LICENSE - MIT License details and terms of use

πŸ‘€ Contact

Brian Walker


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Feel free to use this as a template for your own portfolio!

About

A dynamic portfolio hub that automatically detects, updates, and deploys featured GitHub projects using GitHub Actions, HTML, CSS themes, and vanilla JavaScript.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •