Open source learning platform for industrial automation and programmable logic controllers (PLC).
Open source project: This project welcomes contributions! Whether you're a developer, automation instructor, or industry professional, your contributions are welcome to enrich the educational content and improve the platform.
Languages: English | Français | Español
EasyPLC School offers four specialization paths:
| Path | Modules | Description |
|---|---|---|
| 🏭 Industrial Automation | 5 | PLC basics, LADDER, GRAFCET |
| 🔧 CNC Machining | 6 | G-Code programming, axis systems |
| 🔷 Siemens Automation | 6 | S7-1500, TIA Portal, data blocks |
| ⚡ VFD & Positioning | 9 | Variable frequency drives, motion control |
- PLC / LADDER Simulator: Real-time LADDER visualization with I/O panel
- GRAFCET Editor: Visual creation and simulation of sequential diagrams
- G-Code / CNC Simulator: 2D/3D visualization of tool paths
- XP points and leveling system
- Badges and trophies
- Global leaderboard
- Daily streak tracking
- Node.js 18+
- npm or yarn
# Clone the project
git clone https://github.com/orelmi/easyplc-school.git
cd easyplc-school
# Install dependencies
npm install
# Configure the database
npx prisma generate
npx prisma db push
# Seed the database (optional)
npm run db:seed
# Start the application
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
| Document | Description |
|---|---|
| 📚 Pedagogy | Learning paths, modules, exercises, gamification |
| 🏗️ Architecture | Tech stack, project structure, database, API |
| 🚀 Installation | Complete setup, configuration, deployment |
A demo account is automatically created during seeding:
| Field | Value |
|---|---|
demo@easyplc.fr |
|
| Password | demo123 |
This account has:
- 255 XP and level 2
- 3 completed lessons
- 3 unlocked rewards
- A 3-day streak
- React 18 + TypeScript
- Vite, Tailwind CSS, React Router v6
- Zustand (state management)
- Three.js (3D visualization)
- Node.js + Express + TypeScript
- Prisma ORM + SQLite
- JWT authentication + bcrypt
- Passport (OAuth strategies)
| Command | Description |
|---|---|
npm run dev |
Start frontend and backend in development mode |
npm run dev:client |
Start frontend only |
npm run dev:server |
Start backend only |
npm run build |
Production build |
npm run db:seed |
Seed DB with initial data |
npm run db:studio |
Open Prisma Studio (DB GUI) |
This project is open source and welcomes community contributions!
- Fork the project
- Create a branch for your feature (
git checkout -b feature/new-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Open a Pull Request
- Educational content: New modules, lessons, exercises
- Features: Exam mode, offline mode
- UI/UX improvements: Accessibility, responsive design, animations
- Documentation: Tutorials, user guides, translations
- Tests: Unit tests, integration tests
- Fixes: Bugs, typos, optimizations
Educational content is organized in modular files under prisma/modules/. See the Pedagogy documentation for details on the module structure and how to add content.
MIT - See the LICENSE file for details.
Developed with passion for industrial automation training.




