π Live Site: ctre-workshop-site.vercel.app
A responsive website built with Next.js and Tailwind CSS that converts the Gray Matter Coding Workshop Canva presentation into an accessible markdown-based learning platform.
This website transforms the FRC programming workshop content into an interactive web experience, covering:
- Introduction & Prerequisites - Getting started with FRC programming
- Hardware Setup - CTRE motors, CANivore, and device configuration
- Project Setup - Creating and organizing WPILib projects
- Command-Based Framework - Understanding triggers, subsystems, and commands
- Control Systems - PID and Feedforward control theory
- Tuning - Real-world mechanism tuning with Phoenix Tuner X
The workshop includes live code examples from the companion repository: Workshop-Code
The workshop follows a structured 5-step progression:
- Step 1: Creating a Subsystem - Basic motor control and sensor integration
- Step 2: Adding Commands - Command-based architecture and user input
- Step 3: PID Control - Precise position control with feedback loops
- Step 4: Using Motion Magic - Smooth profiled movements with acceleration control
- Step 5: Useful Subsystem Functions - Safety features, utilities, and diagnostics
Each step builds upon the previous implementation, showing real-world development practices.
- Node.js 20+
- Optional: Bun v1+ (
bun install
/bun dev
)
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
npm run dev
β start the local development servernpm test
β lint, type-check, and build the project
- Framework: Next.js 15.4.6 with App Router
- UI Library: React 19.1.0
- Styling: Tailwind CSS 4
- Language: TypeScript
- Deployment: Vercel
src/
βββ app/ # Next.js App Router pages
β βββ introduction/ # Workshop introduction
β βββ prerequisites/ # Required software & hardware
β βββ hardware/ # Hardware setup guide
β βββ project-setup/ # Project creation & organization
β βββ command-framework/ # Command-based programming
β βββ control-systems/ # PID & Feedforward theory
β βββ tuning/ # Mechanism tuning guide
βββ components/ # Reusable React components
βββ Sidebar.tsx # Collapsible navigation sidebar
βββ PageTemplate.tsx # Shared page layout
βββ CodeBlock.tsx # IDE-style syntax highlighted code
βββ GitHubPR.tsx # Live GitHub pull request display
βββ GitHubPage.tsx # Live GitHub file display
βββ GithubPageWithPR.tsx # Tabbed GitHub file and PR diff view
βββ ImageBlock.tsx # Optimized image display
This project includes automated workflows for quality assurance and deployment:
The GitHub Actions workflow (.github/workflows/ci.yml
) automatically:
- β Lints code with ESLint for style consistency
- π Type checks with TypeScript for type safety
- ποΈ Builds project to ensure compilation success
- π¦ Uploads artifacts for deployment verification
- Push to main/master - Full CI pipeline + deployment readiness check
- Pull Requests - CI pipeline for code quality verification
- Manual trigger - Can be run manually from GitHub Actions tab
π Live Site: ctre-workshop-site.vercel.app
This project is automatically deployed to Vercel:
- Repository: https://github.com/Hemlock5712/Workshop-Site
- Production Branch:
master
- Auto-deploy: Every push to
master
triggers a new deployment - Preview Deployments: Pull requests create preview deployments
- Quality Gates: GitHub Actions ensure code quality before deployment
- Fork this repository to your GitHub account
- Connect to Vercel:
- Visit vercel.com
- Sign in with GitHub
- Import your forked repository
- Deploy automatically
- Install Vercel CLI:
npm i -g vercel
- Run
vercel
in the project directory - Follow the prompts to deploy
No environment variables required for basic deployment.
The workshop content is organized into themed pages that can be easily extended:
- Each section has its own route under
/src/app/
- Content is written in JSX with Tailwind styling
- Navigation is automatically generated from the route structure
- Links between sections provide a guided learning experience
- Responsive Design - Works on desktop, tablet, and mobile
- Clean Typography - Easy-to-read content with proper hierarchy
- Interactive Navigation - Smooth transitions between sections
- Progress Tracking - Clear next/previous navigation
- Code-Friendly - Optimized for technical content display
- Live Code Integration - Real GitHub repository embedding with PR progression
- Video Tutorials - YouTube integration for visual learning
- Interactive Components - Tabbed interfaces combining code views and PR diffs
To add new sections:
- Create a new directory in
src/app/
- Add a
page.tsx
file with your content - Update the navigation in
src/components/Sidebar.tsx
- Link from previous/next pages as needed
The site includes:
- Responsive navigation menu
- Touch-friendly buttons and links
- Optimized font sizes for mobile reading
- Fast loading times
This project transforms FRC programming workshop content into an interactive learning platform. To contribute:
- Fork the repository: https://github.com/Hemlock5712/Workshop-Site
- Create a feature branch
- Make your changes
- Run tests and spell check:
npm test && npm run spell
- Submit a pull request
All contributions help improve the FRC programming education experience!
Educational content based on Gray Matter Coding Workshop materials.