A next-generation interactive learning platform for embedded programming with ESP32, Arduino, and hardware modules.
🚀 Live Demo • 📖 Documentation • 🎥 Video Demo • 💬 Discord
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.
HardwareHub is a comprehensive embedded learning platform that takes you from complete beginner to building real IoT projects:
- 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
- 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
- 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
- Lesson Completion - Track your journey through each learning path
- Achievements & Streaks - Stay motivated with gamification
- Portfolio Builder - Showcase your projects
|
|
|
|
⚛️ 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
🔥 Hono - Ultra-fast web framework
🗄️ Supabase - PostgreSQL database + auth
🦄 TypeScript - Type-safe development
🚀 Bun - Runtime & package manager
☁️ Vercel/Cloudflare - Deployment platforms
🤖 Anthropic API - Claude AI for quiz generation
🔐 Auth0 - User authentication
📝 Opennote - Note-taking & AI features
🗄️ Supabase - Database, storage, realtime
git clone https://github.com/yourusername/hardwarehub.git
cd hardwarehub
chmod +x setup.sh && ./setup.shThe setup script will:
- ✅ Install all dependencies (frontend + backend)
- ✅ Guide you through Supabase setup
- ✅ Create environment files
- ✅ Initialize the database schema
- ✅ Start both dev servers
Click to expand detailed setup instructions
git clone https://github.com/yourusername/hardwarehub.git
cd hardwarehub
# Backend
cd backend
bun install
# Frontend
cd ../frontend/HardwareHub
bun install- Create project at supabase.com
- Go to SQL Editor
- Copy & paste
backend/supabase-schema.sql - Click Run to create all tables
- Get your keys from Project Settings → API
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:5173Frontend (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_idTerminal 1 - Backend:
cd backend
bun run dev
# 🚀 Server running at http://localhost:3000Terminal 2 - Frontend:
cd frontend/HardwareHub
bun run dev
# 🎨 Frontend running at http://localhost:5173- Navigate to http://localhost:5173
- Click Sign Up
- Create account (stored in Supabase)
- Start learning! 🎉
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
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
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)GET /api/progress/user/:userId // Get user's progress
POST /api/progress/complete // Mark lesson complete
GET /api/progress/stats/:userId // Get learning statsGET /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 notesGET /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 projectGET /api/users/:userId // Get user profile
POST /api/users // Create user
PUT /api/users/:userId // Update profile
GET /api/users/:userId/achievements // Get achievementsFull API docs: Backend README
/* 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);- Primary Font: JetBrains Mono (monospace)
- Fallback: 'Courier New', monospace
- ⚡ Scanning grid background
- ✨ Pulsing circuit traces
- 🌊 Flowing electricity effect
- 🎯 Smooth hover transitions
- Learning path system with 5 paths
- 27+ comprehensive lessons
- Progress tracking & completion
- Note-taking functionality
- Visual project editor
- Hacker-themed UI
- Supabase backend integration
- Auth0 authentication
- Opennote AI quiz generation
- "How to Use HardwareHub" learning path
- Video tutorials for each lesson
- Code playground (live embedded simulator)
- Project sharing & gallery
- User comments & discussions
- Leaderboards & competitions
- Mentor matching system
- Live coding sessions
- Hardware kit marketplace integration
- Real hardware debugging tools
- Team projects & collaboration
- Certificate of completion (NFTs on Solana)
- Mobile app (React Native)
We love contributions! Here's how you can help:
- Check Issues to see if it's reported
- If not, create a new issue
- Include: steps to reproduce, expected vs actual behavior, screenshots
- Open a discussion first
- Fork the repo
- Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test thoroughly
- Submit a PR with clear description
- Fix typos, clarify instructions, add examples
- Documentation PRs are always welcome!
Start a discussion - we'd love to hear it!
UC Santa Cruz | January 2026
Built by passionate developers who believe embedded systems education should be accessible to everyone.
Your Name • Team Member 2 • Team Member 3 • Team Member 4
- 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
MIT License - see LICENSE for details
If HardwareHub helped you learn embedded systems, give us a star! ⭐
It helps others discover the project and motivates us to keep improving.
Made with ⚡ and lots of ☕ at CruzHacks 2026