A modern, interactive, and scalable Robotics & STEM Education ecosystem for schools, students, and teachers β combining lab setup, curriculum, an AI consultant, dashboards, competitions, and certificate verification into one connected platform.
- Overview
- Live Demo
- Core Features
- System Design
- Tech Stack
- Folder Structure
- Roles & Access
- Getting Started
- Environment Variables
- Roadmap
- Author
RoboLearn turns traditional classrooms into future-ready STEM labs. It bundles together everything a school needs to run a Robotics/AI/IoT program β from an AI-powered consultant that answers curriculum and lab-setup questions, to role-based dashboards for Admins, Schools, Teachers, and Students, to a certificate verification system, support ticketing, and a student innovation showcase.
It's built as a single full-stack MERN application with a clean, futuristic dark navy / electric blue / cyan design language.
π robo-learn-ten.vercel.app
| Module | What it does |
|---|---|
| π Interactive Homepage | Hero section, why-robotics, services overview, lab setup process, trust stats, consultation CTA |
| π§ AI Robotics Consultant | Chat-style assistant that answers lab, curriculum, and kit-recommendation questions |
| ποΈ Smart Lab Planner | Takes student count, grade level, budget & goals β suggests a lab configuration |
| π Curriculum Explorer | Grade β Subject β Level β Module β Project β Skills learning flow (Grade 3β12) |
| π Student & Teacher Training | Structured, project-based training tracks (Arduino, IoT, AI, PCB, embedded systems) |
| π€ Products Catalog | Robotics kits, sensors, controllers, dev boards, electronics components |
| π Student Innovation Showcase | Students publish projects with problem statement, components, demo video |
| π Competition Hub | Monthly challenges, submissions, leaderboards, winner showcase |
| π« School Dashboard | Training progress, curriculum progress, certificates, support tickets, analytics |
| π Digital Certificates | Unique ID + QR-code based public certificate verification |
| π« Support Portal | Ticketing system with priority, categories, file uploads, status tracking |
| π Role-Based Auth | JWT-secured Admin / School / Teacher / Student roles with protected routes |
Some modules above represent the platform's full product vision β see Roadmap for what's shipped vs. planned.
flowchart TD
A["Client - React + Vite<br/>Tailwind CSS UI"] -->|HTTPS / REST API| B["Express.js Server"]
B --> C["JWT Auth Middleware"]
C --> D["Route Controllers"]
D --> E[("MongoDB Atlas")]
D --> F["AI Consultant Service<br/>(LLM API)"]
D --> G["Certificate / QR Service"]
B --> H["Cloud Storage<br/>(images, uploads)"]
A -->|Deployed on| I["Vercel"]
B -->|Deployed on| J["Render / Railway"]
sequenceDiagram
participant U as User (Browser)
participant F as React Frontend
participant API as Express API
participant Auth as JWT Middleware
participant DB as MongoDB
U->>F: Interacts (login, form, dashboard)
F->>API: REST request + JWT token
API->>Auth: Verify token & role
Auth-->>API: Authorized
API->>DB: Query / Mutate data
DB-->>API: Result
API-->>F: JSON response
F-->>U: Render updated UI
flowchart LR
Admin["π Admin"] --> M1["Manage Schools, Users, Curriculum,<br/>Certificates, Competitions, Content"]
School["π« School"] --> M2["Dashboard, Training Progress,<br/>Certificates, Support Tickets"]
Teacher["π¨βπ« Teacher"] --> M3["Training Resources,<br/>Student Progress"]
Student["π Student"] --> M4["Curriculum, Challenges,<br/>Project Submission, Certificates"]
Design principles:
- Separation of concerns β frontend (React/Vite) is fully decoupled from the backend (Express REST API).
- Stateless auth β JWT tokens carry role claims; every protected route is guarded by middleware, not client-side checks alone.
- Single source of truth β MongoDB stores users, schools, curriculum, certificates, and tickets as normalized collections.
- Extensibility β the AI consultant and certificate/QR system are built as independent services so they can be swapped or scaled separately from the core API.
| Layer | Technology |
|---|---|
| Frontend | React, Vite, Tailwind CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB (Mongoose) |
| Auth | JWT, bcrypt password hashing |
| AI Layer | LLM-based consultant integration |
| Deployment | Vercel (frontend), Render/Railway (backend) |
| Design Theme | Dark Navy Β· Electric Blue Β· Cyan Accents |
robolearn/
βββ client/ # React + Vite frontend
β βββ src/
β β βββ components/ # Navbar, Sidebar, Cards, Widgets
β β βββ pages/ # Home, Dashboard, Curriculum, Products, etc.
β β βββ context/ # Auth & global state
β β βββ services/ # API calls (axios)
β β βββ assets/
β βββ vite.config.js
β
βββ server/ # Node + Express backend
β βββ models/ # User, School, Curriculum, Certificate, Ticket
β βββ routes/ # REST endpoints per module
β βββ controllers/ # Business logic
β βββ middleware/ # JWT auth, role guard, error handler
β βββ server.js
β
βββ README.md
| Role | Access |
|---|---|
| π Admin | Full control β schools, users, products, curriculum, competitions, certificates, tickets, analytics |
| π« School | School dashboard, training & curriculum progress, certificates, support tickets |
| π¨βπ« Teacher | Training resources, curriculum tracking, student activity |
| π Student | Curriculum access, competitions, project submission, certificates |
# Clone the repository
git clone https://github.com/Akshatsrii/robolearn.git
cd robolearn
# Install frontend
cd client
npm install
npm run dev
# Install backend (in a new terminal)
cd ../server
npm install
npm run devCreate a .env file inside server/:
PORT=5000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
AI_API_KEY=your_ai_provider_key- Real-time notifications (Socket.IO)
- Mobile application
- AI-based personalized learning recommendations
- Gamification & achievement badges
- National robotics leaderboard
- Parent dashboard
- Multilingual support
To make Robotics, AI, IoT, Coding, and Electronics accessible to students through practical, project-based education β and give schools the tools to run a modern STEM program end-to-end.
Akshat Srivastava

