Personalized, AI-driven learning paths — built in support of UN Sustainable Development Goal 4: Quality Education.
Access to good mentorship and a clear learning path is still a privilege, not a default. SkillPath AI addresses that gap: it generates a personalized learning roadmap based on a user's goal, current skill level, and available time, then supports them through it with an AI chat assistant for doubts, curated resources, and project recommendations matched to their progress.
Most self-learners face the same three obstacles:
- Decision fatigue — too many scattered tutorials, no clear sequence to follow.
- No one to ask — questions come up at odd hours with no mentor available.
- Theory without practice — courses teach concepts but rarely suggest what to actually build.
SkillPath AI targets each of these directly with a roadmap generator, a 24/7 AI assistant, and project recommendations calibrated to skill level.
- AI-generated learning roadmaps — personalized to goal, skill level, and weekly time commitment
- Progress tracking dashboard — visual progress bars and step completion
- AI chat assistant — answers learning-related questions anytime, with markdown-rendered responses
- Project recommendations — AI-suggested projects matched to current skill level
- Curated resource library — searchable learning resources
- Admin panel — manage users and resources
- Light/dark mode — full theme support across the app
- Secure authentication — JWT stored in HttpOnly cookies, bcrypt password hashing, role-based route guards
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, React Router, Axios, React Markdown |
| Backend | Node.js, Express, MongoDB (Mongoose) |
| Auth | JWT (HttpOnly cookies), bcrypt |
| AI | Groq (LLM inference), with an offline fallback service |
| Deployment | Vercel (frontend), Render (backend), MongoDB Atlas |
frontend/ React + Vite SPA — pages, protected/admin routes, theme + auth context
backend/ Express REST API
├── models/ Mongoose schemas (User, Profile, Roadmap, Progress, ChatHistory, SavedProject, Resource)
├── controllers/ Business logic per resource
├── routes/ Express route definitions
├── middleware/ JWT auth, error handling, rate limiting
└── services/ Groq AI integration + offline fallback
- Node.js 18+
- A MongoDB Atlas cluster (free tier is enough)
- A Groq API key (optional — the app falls back to offline responses without one)
cd backend
cp .env.example .env
# Set MONGO_URI, JWT_SECRET, CLIENT_URL=http://localhost:5173
npm install
npm run devRuns on http://localhost:5000 · Health check: GET /health
Optional — seed sample resources:
npm run seed:resourcescd frontend
cp .env.example .env
# VITE_API_URL=http://localhost:5000
npm install
npm run devRuns on http://localhost:5173
-
New Web Service, root directory
backend. -
Build command
npm install, start commandnpm start, health check path/health(or use the includedrender.yaml). -
Environment variables:
Variable Notes NODE_ENVproductionMONGO_URIAtlas connection string JWT_SECRETLong random string GROQ_API_KEYGroq inference key CLIENT_URLYour deployed frontend URL -
In Atlas → Network Access, allow Render's egress IPs (or
0.0.0.0/0for development).
- Import the repo, root directory
frontend. - Build command
npm run build, output directorydist. - Environment variable:
VITE_API_URL→ your Render backend URL. vercel.jsonis already configured for SPA client-side routing.
-
GET <backend-url>/healthreturns"db": "connected" - Register and log in from the deployed frontend (verifies CORS + cross-domain cookies)
- Onboarding successfully generates a roadmap
- Promote an admin: set
isAdmin: trueon a user document in MongoDB
- JWT stored in HttpOnly cookies (
secure+SameSite=Nonein production) - Passwords hashed with bcrypt
helmetsecurity headers and API rate limiting- Role-based route guards for admin-only endpoints
.envfiles are gitignored and must never be committed
This project directly supports UN Sustainable Development Goal 4: Quality Education, aiming to make structured, personalized, and continuously available learning support accessible regardless of a learner's access to formal mentorship.
Divya Tiwari — LinkedIn · GitHub
ISC