Skip to content

michaelnkr808/cruzhacks-26

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

63 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โšก HardwareHub

Learn Embedded Systems. Build Real Projects. No Barriers.

A next-generation interactive learning platform for embedded programming with ESP32, Arduino, and hardware modules.

Built at CruzHacks 2026 React TypeScript Bun

๐Ÿš€ Live Demo โ€ข ๐Ÿ“– Documentation โ€ข ๐ŸŽฅ Video Demo โ€ข ๐Ÿ’ฌ Discord


๐ŸŽฏ The Problem

Learning embedded systems is hard. Beginners face:

  • ๐Ÿšง Fragmented resources scattered across forums and docs
  • ๐Ÿ“š Overwhelming complexity with no clear learning path
  • ๐Ÿ”Œ Hardware barriers - you need expensive equipment to even start
  • ๐Ÿ˜ฐ No feedback loop - code either works or silently fails

HardwareHub solves this.


โœจ Our Solution

HardwareHub is a comprehensive embedded learning platform that takes you from complete beginner to building real IoT projects:

๐ŸŽ“ Structured Learning Paths

  • Getting Started - Understand embedded systems fundamentals (no hardware needed!)
  • ESP32 - WiFi & Bluetooth IoT projects
  • Arduino - Classic microcontroller programming
  • IF MAGIC - Modular plug-and-play hardware system
  • Advanced - Custom protocols, optimization, production-ready code

๐Ÿง  AI-Powered Learning

  • Smart Notes with Opennote - Take notes during lessons, get AI-generated quizzes
  • Adaptive Content - Unlock intermediate/advanced lessons as you progress
  • Personalized Recommendations - AI suggests next steps based on your interests

๐ŸŽจ Visual Project Editor

  • Drag-and-Drop Canvas - Design hardware projects visually
  • Real-time Connections - See how modules connect with animated circuit traces
  • Export to Code - Generate starter code from your visual design

๐Ÿ“Š Progress Tracking

  • Lesson Completion - Track your journey through each learning path
  • Achievements & Streaks - Stay motivated with gamification
  • Portfolio Builder - Showcase your projects

๐Ÿš€ Features

๐ŸŽฏ Smart Learning System

  • โœ… Role-based access control (beginner/intermediate/advanced)
  • โœ… Unlock lessons as you progress
  • โœ… Completion tracking & achievements
  • โœ… AI quiz generation from your notes

๐Ÿ› ๏ธ Developer Experience

  • โœ… Hacker-themed UI with animated backgrounds
  • โœ… Real-time note saving (localStorage + backend sync)
  • โœ… Responsive design - works on mobile & desktop
  • โœ… Auth0 authentication (SSO ready)

๐Ÿ“ Content Library

  • โœ… 27+ comprehensive lessons
  • โœ… Code examples for every module
  • โœ… Video tutorials (coming soon)
  • โœ… Interactive challenges

๐ŸŽจ Visual Tools

  • โœ… Drag-and-drop project designer
  • โœ… Module connection visualization
  • โœ… Circuit trace animations
  • โœ… Export project diagrams

๐Ÿ—๏ธ Tech Stack

Frontend

โš›๏ธ  React 19           - UI framework with latest features
โšก  Vite               - Lightning-fast build tool  
๐ŸŽจ  Tailwind CSS       - Utility-first styling
๐Ÿงญ  React Router       - Client-side routing
๐Ÿ”  Auth0              - Authentication & authorization
๐Ÿ“  Opennote SDK       - AI-powered note-taking
๐Ÿš€  Bun                - Fast JavaScript runtime

Backend

๐Ÿ”ฅ  Hono               - Ultra-fast web framework
๐Ÿ—„๏ธ  Supabase           - PostgreSQL database + auth
๐Ÿฆ„  TypeScript         - Type-safe development
๐Ÿš€  Bun                - Runtime & package manager
โ˜๏ธ  Vercel/Cloudflare  - Deployment platforms

APIs & Services

๐Ÿค–  Anthropic API      - Claude AI for quiz generation
๐Ÿ”  Auth0              - User authentication
๐Ÿ“  Opennote           - Note-taking & AI features
๐Ÿ—„๏ธ  Supabase           - Database, storage, realtime

๐Ÿ“ฆ Quick Start

Prerequisites

  • Bun v1.0+ installed
  • Supabase account (free tier works!)
  • Auth0 account (optional, for auth)

๐Ÿš€ One-Line Install

git clone https://github.com/yourusername/hardwarehub.git
cd hardwarehub
chmod +x setup.sh && ./setup.sh

The setup script will:

  • โœ… Install all dependencies (frontend + backend)
  • โœ… Guide you through Supabase setup
  • โœ… Create environment files
  • โœ… Initialize the database schema
  • โœ… Start both dev servers

๐Ÿ”ง Manual Setup

Click to expand detailed setup instructions

1๏ธโƒฃ Clone & Install

git clone https://github.com/yourusername/hardwarehub.git
cd hardwarehub

# Backend
cd backend
bun install

# Frontend  
cd ../frontend/HardwareHub
bun install

2๏ธโƒฃ Setup Supabase

  1. Create project at supabase.com
  2. Go to SQL Editor
  3. Copy & paste backend/supabase-schema.sql
  4. Click Run to create all tables
  5. Get your keys from Project Settings โ†’ API

3๏ธโƒฃ Environment Variables

Backend (backend/.env):

SUPABASE_URL=https://xxxxx.supabase.co
SUPABASE_ANON_KEY=your_anon_key_here
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key_here
AUTH0_DOMAIN=your-tenant.auth0.com
AUTH0_CLIENT_ID=your_auth0_client_id
AUTH0_CLIENT_SECRET=your_auth0_client_secret
ANTHROPIC_API_KEY=your_anthropic_key_here
PORT=3000
FRONTEND_URL=http://localhost:5173

Frontend (frontend/HardwareHub/.env):

VITE_SUPABASE_URL=https://xxxxx.supabase.co
VITE_SUPABASE_ANON_KEY=your_anon_key_here
VITE_API_URL=http://localhost:3000
VITE_AUTH0_DOMAIN=your-tenant.auth0.com
VITE_AUTH0_CLIENT_ID=your_auth0_client_id

4๏ธโƒฃ Run Development Servers

Terminal 1 - Backend:

cd backend
bun run dev
# ๐Ÿš€ Server running at http://localhost:3000

Terminal 2 - Frontend:

cd frontend/HardwareHub  
bun run dev
# ๐ŸŽจ Frontend running at http://localhost:5173

5๏ธโƒฃ Create Your First User

  1. Navigate to http://localhost:5173
  2. Click Sign Up
  3. Create account (stored in Supabase)
  4. Start learning! ๐ŸŽ‰

๐Ÿ—บ๏ธ Architecture

graph TB
    subgraph "Frontend - React + Vite"
        A[User Interface] --> B[React Router]
        B --> C[Learning Paths]
        B --> D[Lesson Pages]
        B --> E[Project Editor]
        B --> F[Profile & Notes]
        
        C --> G[API Client]
        D --> G
        E --> G
        F --> G
    end
    
    subgraph "Backend - Hono API"
        G --> H[Hono Server]
        H --> I[Auth Middleware]
        I --> J[Lessons Routes]
        I --> K[Progress Routes]
        I --> L[Notes Routes]
        I --> M[Projects Routes]
    end
    
    subgraph "Data Layer"
        J --> N[(Supabase PostgreSQL)]
        K --> N
        L --> N
        M --> N
        
        L --> O[Opennote SDK]
        O --> P[Anthropic Claude API]
    end
    
    subgraph "Auth"
        A --> Q[Auth0]
        Q --> H
    end
    
    style A fill:#61dafb
    style H fill:#ff6b6b
    style N fill:#3ecf8e
    style Q fill:#eb5424
Loading

๐Ÿ“‚ Project Structure

hardwarehub/
โ”œโ”€โ”€ ๐Ÿ“ฑ frontend/HardwareHub/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐ŸŽจ components/          # Reusable UI components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Layout.tsx         # Main app layout with nav
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ModuleIcons.tsx    # Hardware module icons
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ pages/               # Route components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Home.tsx           # Landing with animated circuits
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ LearningPaths.tsx  # Choose your path
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Learning.tsx       # Lesson track view
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Lesson.tsx         # Individual lesson page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Notes.tsx          # Notes review page
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ProjectEditor.tsx  # Visual design canvas
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ Projects.tsx       # Project gallery
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ Profile.tsx        # User profile & settings
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ—‚๏ธ data/                # Static content
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ lessonData.ts      # All lesson content & logic
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ”ง lib/                 # Utilities
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ api.ts             # Backend API client
โ”‚   โ”‚   โ””โ”€โ”€ ๐ŸŽญ contexts/            # React contexts (Auth, etc.)
โ”‚   โ”œโ”€โ”€ public/                    # Static assets
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ backend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ›ฃ๏ธ routes/              # API endpoints
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ lessons.ts         # Lesson CRUD
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ progress.ts        # Track completions
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ notes.ts           # Note saving & AI quiz
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ projects.ts        # Project management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ users.ts           # User profiles
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“š lib/                 # Shared code
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ supabase.ts        # DB client setup
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿท๏ธ types/               # TypeScript types
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ database.types.ts  # Supabase generated types
โ”‚   โ”‚   โ””โ”€โ”€ index.ts               # Server entry point
โ”‚   โ”œโ”€โ”€ supabase-schema.sql        # Database schema
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ Documentation/
โ”‚   โ”œโ”€โ”€ README.md                  # This file!
โ”‚   โ”œโ”€โ”€ SETUP.md                   # Detailed setup guide
โ”‚   โ””โ”€โ”€ IMPLEMENTATION_SUMMARY.md  # Tech decisions & architecture
โ”‚
โ””โ”€โ”€ ๐Ÿ› ๏ธ Scripts/
    โ”œโ”€โ”€ setup.sh                   # Automated setup script
    โ””โ”€โ”€ *.sql                      # Database helper queries

๐Ÿ”Œ API Reference

๐ŸŽ“ Lessons

GET    /api/lessons              // Get all lessons
GET    /api/lessons/:id          // Get specific lesson
POST   /api/lessons              // Create lesson (admin)
PUT    /api/lessons/:id          // Update lesson (admin)
DELETE /api/lessons/:id          // Delete lesson (admin)

๐Ÿ“Š Progress

GET    /api/progress/user/:userId           // Get user's progress
POST   /api/progress/complete               // Mark lesson complete
GET    /api/progress/stats/:userId          // Get learning stats

๐Ÿ“ Notes

GET    /api/notes/user/:userId              // Get all notes
GET    /api/notes/lesson/:lessonId/:userId  // Get notes for lesson
POST   /api/notes/save                      // Save/update note
DELETE /api/notes/:noteId                   // Delete note
POST   /api/notes/generate-quiz/:noteId     // AI quiz from notes

๐ŸŽจ Projects

GET    /api/projects/user/:userId           // Get user's projects
GET    /api/projects/:projectId             // Get project details
POST   /api/projects                        // Create project
PUT    /api/projects/:projectId             // Update project
DELETE /api/projects/:projectId             // Delete project

๐Ÿ‘ค Users

GET    /api/users/:userId                   // Get user profile
POST   /api/users                           // Create user
PUT    /api/users/:userId                   // Update profile
GET    /api/users/:userId/achievements      // Get achievements

Full API docs: Backend README


๐ŸŽจ Design System

Color Palette (Hacker Theme)

/* Primary Colors */
--bg-primary: #0a0e27;           /* Deep space blue */
--accent-green: #00ff87;          /* Matrix green */
--accent-cyan: #64ffda;           /* Cyber cyan */
--accent-blue: #00d9ff;           /* Neon blue */

/* Text Colors */
--text-primary: #e6f1ff;          /* Bright white */
--text-secondary: #8892b0;        /* Muted gray */

/* Interactive */
--card-border: rgba(0, 255, 135, 0.3);
--card-shadow: 0 0 20px rgba(0, 255, 135, 0.2);

Typography

  • Primary Font: JetBrains Mono (monospace)
  • Fallback: 'Courier New', monospace

Animations

  • โšก Scanning grid background
  • โœจ Pulsing circuit traces
  • ๐ŸŒŠ Flowing electricity effect
  • ๐ŸŽฏ Smooth hover transitions

๐Ÿ—บ๏ธ Roadmap

โœ… Phase 1: MVP (Completed)

  • Learning path system with 5 paths
  • 27+ comprehensive lessons
  • Progress tracking & completion
  • Note-taking functionality
  • Visual project editor
  • Hacker-themed UI
  • Supabase backend integration

๐Ÿšง Phase 2: AI & Enhanced Learning (In Progress)

  • Auth0 authentication
  • Opennote AI quiz generation
  • "How to Use HardwareHub" learning path
  • Video tutorials for each lesson
  • Code playground (live embedded simulator)

๐Ÿ”ฎ Phase 3: Community (Planned)

  • Project sharing & gallery
  • User comments & discussions
  • Leaderboards & competitions
  • Mentor matching system
  • Live coding sessions

๐Ÿš€ Phase 4: Advanced Features (Future)

  • Hardware kit marketplace integration
  • Real hardware debugging tools
  • Team projects & collaboration
  • Certificate of completion (NFTs on Solana)
  • Mobile app (React Native)

๐Ÿค Contributing

We love contributions! Here's how you can help:

๐Ÿ› Found a Bug?

  1. Check Issues to see if it's reported
  2. If not, create a new issue
  3. Include: steps to reproduce, expected vs actual behavior, screenshots

โœจ Want to Add a Feature?

  1. Open a discussion first
  2. Fork the repo
  3. Create a branch: git checkout -b feature/your-feature-name
  4. Make your changes
  5. Test thoroughly
  6. Submit a PR with clear description

๐Ÿ“š Improve Documentation?

  • Fix typos, clarify instructions, add examples
  • Documentation PRs are always welcome!

๐Ÿ’ก Have an Idea?

Start a discussion - we'd love to hear it!


๐Ÿ† Built With Love At

CruzHacks 2026 ๐Ÿฆฅ

UC Santa Cruz | January 2026

Built by passionate developers who believe embedded systems education should be accessible to everyone.


๐Ÿ‘จโ€๐Ÿ’ป Team

Your Name โ€ข Team Member 2 โ€ข Team Member 3 โ€ข Team Member 4


๐Ÿ™ Acknowledgments

  • IF MAGIC - Hardware documentation and inspiration
  • Anthropic - Claude AI for quiz generation
  • Supabase - Database infrastructure
  • Auth0 - Authentication services
  • Opennote - AI-powered note-taking
  • CruzHacks - For hosting an amazing hackathon

๐Ÿ“œ License

MIT License - see LICENSE for details


โญ Show Your Support

If HardwareHub helped you learn embedded systems, give us a star! โญ

It helps others discover the project and motivates us to keep improving.

Star on GitHub


Made with โšก and lots of โ˜• at CruzHacks 2026

About

cruzhacks 26 repo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors