A full-stack AI-powered coding education platform where students learn through structured lessons, build real projects, and get instant AI code evaluation with detailed feedback.
- Frontend: https://dev-learn-nine.vercel.app (Vercel)
- Backend: https://devlearn-production.up.railway.app (Railway)
- GitHub: https://github.com/ManojThamke/DevLearn
| Landing Page | Course Detail | Lesson Page |
|---|---|---|
| Dark hero with animations | Module accordion with progress | Dark mode with sidebar |
| Dashboard | Profile Page | Submit Project |
|---|---|---|
| Progress rings and stats | Avatar upload, edit profile | GitHub URL and ZIP upload |
- 5 Complete Courses: React, JavaScript Advanced, Node.js, TypeScript, Next.js
- 23 Modules with structured learning paths
- 88 Detailed Lessons with code examples and best practices
- 28 Real-World Projects for hands-on practice
- Markdown lesson content with syntax highlighted code blocks
- Structured courses with modules and lessons
- Reading progress bar as you scroll
- Mark lessons as complete and track progress
- Dark mode lesson viewer
- Previous / Next lesson navigation
- Mobile responsive sidebar
- Submit projects via GitHub URL
- Submit projects via ZIP file upload (up to 100MB)
- AI evaluation of submitted code (Gemini powered)
- Track all submissions with attempt history
- Badge System - Earn badges for completing courses and milestones
- Certificates - Generate certificates upon course completion
- XP Points - Gain experience points for completed lessons and projects
- AI assistant powered by Google Gemini API
- Ask questions about React, JavaScript, Node.js, TypeScript, Next.js
- Get code reviews and interview prep help
- Quick prompt suggestions for common questions
- Register and login with JWT authentication
- Edit profile name and email
- Choose from 8 default emoji avatars
- Upload custom avatar image
- Set avatar via image URL
- Change password with strength meter
- View learning stats and XP points
- Enrolled courses with progress bars
- Lessons completed counter
- Animated progress rings per course
- Quick action buttons
- Achievement badges and certificates
| Technology | Purpose |
|---|---|
| React.js + Vite | UI framework |
| TailwindCSS | Styling |
| Framer Motion | Animations |
| React Router v6 | Navigation |
| Axios | HTTP requests |
| Technology | Purpose |
|---|---|
| Node.js + Express | Server framework |
| MongoDB Atlas | Database |
| Mongoose | ODM |
| JWT | Authentication |
| bcryptjs | Password hashing |
| Multer | File uploads |
| Bull | Job queue |
| Redis | Caching & queue |
| Technology | Purpose |
|---|---|
| Google Gemini API | AI assistant + code evaluation |
| Docker | Container support for code evaluation |
| GitHub API | Repository access for submissions |
| MongoDB Atlas | Cloud database |
| Technology | Purpose |
|---|---|
| dotenv | Environment variables |
| CORS | Cross-origin requests |
| Morgan | Request logging |
DevLearn/
βββ client/ # React frontend
β βββ src/
β βββ components/
β β βββ common/
β β β βββ AIAssistant.jsx
β β β βββ Spinner.jsx
β β βββ layout/
β β βββ Navbar.jsx
β β βββ Footer.jsx
β βββ context/
β β βββ AuthContext.jsx
β βββ pages/
β β βββ LandingPage.jsx
β β βββ LoginPage.jsx
β β βββ RegisterPage.jsx
β β βββ CourseCatalog.jsx
β β βββ CourseDetail.jsx
β β βββ LessonPage.jsx
β β βββ Dashboard.jsx
β β βββ ProfilePage.jsx
β β βββ ProjectSubmitPage.jsx
β β βββ NotFound.jsx
β βββ services/
β βββ api.js
β
βββ server/ # Node.js backend
βββ controllers/
β βββ auth.controller.js
β βββ course.controller.js
β βββ lesson.controller.js
β βββ progress.controller.js
β βββ profile.controller.js
β βββ submission.controller.js
β βββ project.controller.js
β βββ badge.controller.js
β βββ certificate.controller.js
β βββ ai.controller.js
βββ models/
β βββ User.model.js
β βββ Course.model.js
β βββ Module.model.js
β βββ Lesson.model.js
β βββ Project.model.js
β βββ Submission.model.js
β βββ Score.model.js
β βββ Progress.model.js
β βββ Enrollment.model.js
β βββ Badge.model.js
β βββ UserBadge.model.js
β βββ Certificate.model.js
βββ routes/
β βββ auth.routes.js
β βββ course.routes.js
β βββ lesson.routes.js
β βββ progress.routes.js
β βββ profile.routes.js
β βββ submission.routes.js
β βββ project.routes.js
β βββ badge.routes.js
β βββ certificate.routes.js
β βββ ai.routes.js
βββ middleware/
β βββ auth.middleware.js
β βββ upload.middleware.js
βββ services/
β βββ ai.service.js
β βββ evaluation.service.js
β βββ github.service.js
β βββ docker.service.js
βββ data/
β βββ module1-8.lessons.js (React course)
β βββ nodejs-module1-3.lessons.js
β βββ js-adv-module1-4.lessons.js
β βββ ts-modules.lessons.js
β βββ nextjs-modules.lessons.js
β βββ badgeDefinitions.js
βββ seed.js
βββ seed-*.js (individual course seeders)
βββ index.js
- Node.js v18+
- MongoDB Atlas account
- Google Gemini API key (free at aistudio.google.com)
git clone https://github.com/ManojThamke/DevLearn.git
cd DevLearncd server
npm installCreate server/.env:
PORT=5000
MONGO_URI=your_mongodb_atlas_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_REFRESH_SECRET=your_jwt_refresh_secret
CLIENT_URL=http://localhost:5173
GEMINI_API_KEY=your_gemini_api_key
NODE_ENV=developmentSeed the database:
node seed.jsStart the server:
node --watch index.jscd client
npm install
npm run devhttp://localhost:5173
DevLearn is deployed using free-tier services:
- Frontend: Vercel (https://dev-learn-nine.vercel.app)
- Backend: Railway (https://devlearn-production.up.railway.app)
- Database: MongoDB Atlas Free Tier (5GB shared cluster)
- Cache: Railway Redis Add-on
vercel.json- Vercel build configurationserver/Procfile- Railway start commandserver/.env.example- Environment variables template
MongoDB Atlas:
- Create free cluster on https://www.mongodb.com/cloud/atlas
- Get connection string:
MONGO_URI=mongodb+srv://user:password@cluster.mongodb.net/devlearn
Railway:
- Create account at https://railway.app
- Connect GitHub repository
- Set
CLIENT_URL=https://dev-learn-nine.vercel.app(your Vercel URL) - Redis automatically added as add-on
Vercel:
- Create account at https://vercel.com
- Connect GitHub repository
- Set
VITE_API_URL=https://devlearn-production.up.railway.app/api
POST /api/auth/register
POST /api/auth/login
POST /api/auth/logout
GET /api/auth/me
GET /api/courses
GET /api/courses/:slug
GET /api/courses/id/:id
POST /api/courses/:id/enroll
GET /api/lessons/:id
POST /api/lessons/:id/complete
GET /api/progress
GET /api/progress/:courseId
GET /api/profile
PUT /api/profile/update
PUT /api/profile/change-password
PUT /api/profile/avatar
POST /api/submissions
POST /api/submissions/upload-zip
GET /api/submissions/my
GET /api/submissions/project/:projectId
GET /api/submissions/:id
GET /api/projects/:id
GET /api/projects/module/:moduleId
GET /api/badges
GET /api/user/badges
POST /api/badges/:id/award
GET /api/certificates
GET /api/certificates/:id
POST /api/certificates/generate/:courseId
POST /api/ai/chat
POST /api/ai/evaluate
| Metric | Count |
|---|---|
| Courses | 5 |
| Modules | 23 |
| Lessons | 88 |
| Projects | 28 |
| Badges | 8+ |
| Total Learning Hours | 100+ |
- React Developer Complete Course - 8 modules, 32 lessons, 10 projects
- JavaScript Advanced Concepts - 4 modules, 16 lessons, 4 projects
- Node.js Backend Developer Complete Course - 3 modules, 12 lessons, 3 projects
- TypeScript Mastery - 3 modules, 12 lessons, 3 projects
- Next.js Full Stack Development - 3 modules, 16 lessons, 8 projects
- User authentication (register, login, JWT)
- Course catalog with search and filter
- Course detail with module accordion
- Lesson page with dark mode and progress tracking
- Student dashboard with progress rings
- AI assistant (Gemini powered)
- Profile page with avatar upload
- Project submission (GitHub URL + ZIP)
- 5 Complete courses with detailed lessons (React, JavaScript Advanced, Node.js, TypeScript, Next.js)
- Badge & Certificate system with database models
- Course thumbnails with error handling
- AI code evaluation system (Gemini API integrated)
- Submission score dashboard
- Production deployment (Vercel + Railway + MongoDB Atlas)
Manoj Thamke
- GitHub: @ManojThamke
MIT License β feel free to use this project for learning and personal projects.