An interactive workshop catalog built with Astro and React, designed for software development training organizations to help developers at all career stages identify and pursue relevant professional development opportunities.
- Interactive Filtering: Filter workshops by career track (AI Engineering, Full-Stack Development, DevOps, Technical Leadership)
- Individual Workshop Pages: Each workshop has its own detailed page with comprehensive information
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Modern Styling: Built with Radix CSS for clean, accessible design
- Static Site Generation: Fast loading times with Astro's static site generation
- GitHub Pages Deployment: Automated deployment via GitHub Actions
- Framework: Astro with React islands
- Styling: Radix CSS with custom CSS
- Icons: Lucide React
- Deployment: GitHub Pages via GitHub Actions
- Language: TypeScript
- Node.js 18+
- npm or yarn
- Git
-
Clone the repository
git clone <your-repo-url> cd catalog
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:4321
/
├── public/ # Static assets
├── src/
│ ├── components/ # React components
│ │ └── WorkshopCatalog.tsx
│ ├── data/ # Workshop data and types
│ │ └── workshops.ts
│ ├── layouts/ # Astro layouts
│ │ └── Layout.astro
│ ├── pages/ # Astro pages (file-based routing)
│ │ ├── index.astro # Homepage with catalog
│ │ └── workshops/
│ │ └── [slug].astro # Dynamic workshop detail pages
│ └── styles/ # Global styles
│ └── global.css
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions deployment
├── astro.config.mjs # Astro configuration
├── package.json
└── tsconfig.json
- Open
src/data/workshops.ts - Add your workshop to the appropriate category in the
workshopsarray - Ensure you include all required fields:
title: Workshop nameduration: Time commitment (e.g., "2 days")level: "Beginner", "Intermediate", or "Advanced"tracks: Array of track keys (e.g., ["ai", "fullstack"])description: Brief descriptionoutcomes: Array of learning outcomesprerequisites: Required experienceslug: URL-friendly identifier
The project uses Radix CSS with custom CSS variables. Main styles are in:
src/styles/global.css- Global styles and utilities- Individual components use inline styles with CSS custom properties
- Update the
tracksobject insrc/data/workshops.ts - Add corresponding CSS classes in
src/styles/global.css - Update the color scheme as needed
-
Enable GitHub Pages
- Go to your repository settings
- Navigate to "Pages" section
- Set source to "GitHub Actions"
-
Update Configuration
- Edit
astro.config.mjs - Update
siteto your GitHub Pages URL - Update
baseto your repository name (if not using a custom domain)
- Edit
-
Push to Main Branch
git add . git commit -m "Initial commit" git push origin main
The GitHub Action will automatically build and deploy your site.
# Build the site
npm run build
# Preview the build locally
npm run preview
# Deploy the dist/ folder to your hosting provider| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
The catalog includes five specialized career tracks:
- Career Starter - Foundation skills for new developers
- AI Engineering - Building intelligent applications with AI/ML
- Full-Stack Development - Complete web application development
- DevOps & Infrastructure - Deployment and system operations
- Technical Leadership - Leading teams and technical initiatives
Each workshop follows a consistent format:
- Duration: 1-3 days to maintain focus
- Level: Clearly marked difficulty
- Prerequisites: Explicit requirements
- Learning Outcomes: 3-5 specific skills gained
- Hands-On Projects: Real-world applications
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions about implementing this workshop catalog structure or developing specific workshop curriculum, please open an issue or reach out to the development team.
Last Updated: October 2025 Version: 1.0 Maintained By: Curriculum Development Team