Skip to content
This repository was archived by the owner on Mar 11, 2026. It is now read-only.

Mikecranesync/IndustrialSkillsHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Industrial Skills Hub 🔧⚡

Duolingo-style gamified training for industrial maintenance technicians

A bilingual (Spanish/English) learning platform for Venezuelan industrial maintenance technicians. Learn electrical fundamentals, PLC programming, mechanical systems, and safety practices through gamified lessons.

Industrial Skills Hub

Features

  • 🎯 Role-based learning paths: Mechanic, Electrician, PLC Technician, PLC Specialist
  • 🌐 Bilingual support: Spanish (primary) + English toggle
  • 🎮 Gamification: XP, hearts, streaks, leaderboards, badges
  • 📚 Technical content: Industry-relevant curriculum from L1 to advanced
  • 📱 Mobile responsive: Learn anywhere on any device

Tech Stack

Layer Technology
Framework Next.js 14+ / React 18 / TypeScript
UI Shadcn UI + TailwindCSS
State Zustand
Database PostgreSQL (Neon)
ORM Drizzle ORM
Auth Clerk
Payments Stripe (optional)
Hosting Vercel

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • PostgreSQL database (Neon recommended)
  • Clerk account for authentication

Installation

  1. Clone the repository:
git clone https://github.com/Mikecranesync/IndustrialSkillsHub.git
cd IndustrialSkillsHub
  1. Install dependencies:
npm install --legacy-peer-deps
  1. Set up environment variables:
cp .env.example .env.local

Edit .env.local with your credentials:

# Clerk Auth
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx
CLERK_SECRET_KEY=sk_test_xxx

# Clerk redirect URLs
NEXT_PUBLIC_CLERK_SIGN_IN_URL="/sign-in"
NEXT_PUBLIC_CLERK_SIGN_UP_URL="/sign-up"
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL="/"
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL="/"

# Database
DATABASE_URL=postgresql://user:pass@host/db?sslmode=require

# Stripe (optional)
STRIPE_API_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
CLERK_ADMIN_IDS="user_xxx"
  1. Push database schema:
npm run db:push
  1. Seed industrial content:
npm run db:seed-industrial
  1. Start development server:
npm run dev

Visit http://localhost:3000

Project Structure

IndustrialSkillsHub/
├── app/                    # Next.js app router pages
│   ├── (auth)/            # Auth pages (sign-in, sign-up)
│   ├── (main)/            # Main app (learn, courses, leaderboard)
│   ├── (marketing)/       # Landing page
│   ├── admin/             # Admin dashboard
│   ├── lesson/            # Lesson/challenge pages
│   └── onboarding/        # Role selection
├── actions/               # Server actions
├── components/            # React components
│   ├── ui/               # Shadcn UI components
│   └── *.tsx             # App-specific components
├── data/                  # Static data files
│   └── glossary.json     # Technical terms dictionary
├── db/                    # Database
│   ├── drizzle.ts        # DB connection
│   ├── queries.ts        # Data queries
│   └── schema.ts         # Drizzle schema
├── lib/                   # Utilities
├── scripts/              # Database scripts
│   ├── prod.ts           # Original seed script
│   └── seed-industrial.ts # Industrial content seed
└── store/                # Zustand stores
    ├── use-language.ts   # Language toggle state
    └── use-*.ts          # Modal states

Learning Tracks

1. Electrician Track

  • L1: Voltage, Current, Resistance, Power, AC/DC, Safety, Tools
  • L2: Circuits, Transformers, Motors, Troubleshooting (coming soon)

2. Mechanic Track

  • L1: Bearings, Pumps, Motors, Lubrication, Alignment (coming soon)

3. PLC Technician Track

  • L1: PLC Basics, Ladder Logic, I/O, Troubleshooting (coming soon)

4. PLC Specialist Track

  • L2: Advanced Programming, HMI, SCADA (coming soon)

Scripts

Command Description
npm run dev Start development server
npm run build Build for production
npm run db:push Push schema to database
npm run db:seed-industrial Seed industrial content
npm run db:studio Open Drizzle Studio
npm run db:prod Seed original language content

Bilingual Support

The app supports Spanish (ES) and English (EN):

  • Default language: Spanish (for Venezuelan technicians)
  • Toggle: Instant language switch without page reload
  • Persistence: Preference saved to localStorage
  • Database: All content stored in both languages
// Using the language toggle
import { LanguageToggle } from "@/components/language-toggle";

// Using translations
import { useTranslation } from "@/store/use-language";

const { t, tField, language } = useTranslation();

// For static translations
t({ en: "Hello", es: "Hola" });

// For database fields
tField(lesson, "title"); // reads titleEn or titleEs based on language

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

License

MIT License - see LICENSE for details.

Acknowledgments


¡Aprende mantenimiento industrial de forma divertida! 🇻🇪

Learn industrial maintenance the fun way! 🔧