Agentic Personalized Course Pathways — Powered by IBM Granite & watsonx.ai
Built for IBM SkillsBuild AICTE 2026 Internship Program
PathForge AI is a production-ready AI SaaS platform that generates personalized learning roadmaps based on a user's skills, career goals, interests, and available study time. It uses IBM Granite foundation models via watsonx.ai or watsonx Orchestrate to deliver intelligent, role-specific guidance.
┌─────────────────────────────────────────────────────────────────┐
│ PathForge AI │
├──────────────────────┬──────────────────────────────────────────┤
│ Frontend │ Backend │
│ React 18 + Vite │ FastAPI + Python 3.12 │
│ Tailwind CSS │ IBM Granite / watsonx Orchestrate │
│ Framer Motion │ TF-IDF RAG Pipeline (no C++ needed) │
│ Recharts │ ReportLab PDF Export │
│ Dark/Light Mode │ Role-specific Smart Fallbacks │
└──────────────────────┴──────────────────────────────────────────┘
| Feature | Description |
|---|---|
| 🎯 Skill Gap Analysis | IBM Granite identifies missing skills for your exact role |
| 🗺️ Personalized Roadmap | 3-phase learning path tailored to your level & timeline |
| 📅 Weekly Study Plan | Hour-by-hour schedule based on your available time |
| 📚 Course Recommendations | RAG-powered search over IBM SkillsBuild + Coursera content |
| 🚀 Project Suggestions | Role-specific portfolio project ideas |
| 🎓 Certification Guidance | IBM & industry certs matched to your career goal |
| 📊 Progress Tracker | Badges, streaks, study tips, next milestone indicators |
| 📄 PDF Export | Branded roadmap PDF via ReportLab |
| 🌙 Dark / Light Mode | System-aware theme toggle |
| 🤖 watsonx Orchestrate | Route AI requests to your deployed Orchestrate agent |
pathforge-ai/
├── frontend/ # React + Vite + Tailwind
│ └── src/
│ ├── api/ # Axios client
│ ├── components/ # Layout, Sidebar
│ ├── context/ # Global AppContext
│ └── pages/ # Dashboard, Profile, Roadmap, Resources, Progress
├── backend/ # FastAPI
│ ├── routers/ # profile, roadmap, resources, progress, export, rag
│ ├── services/
│ │ ├── granite_service.py # IBM Granite + Orchestrate routing
│ │ ├── rag_service.py # TF-IDF RAG pipeline (35 docs)
│ │ └── pdf_service.py # ReportLab PDF
│ ├── main.py
│ ├── config.py
│ └── requirements.txt
├── .gitignore
└── README.md
Frontend: React 18, Vite, Tailwind CSS, Framer Motion, Recharts, Lucide Icons, React Router v6
Backend: Python 3.12, FastAPI, LangChain, ReportLab, httpx
AI: IBM watsonx.ai, IBM Granite 13B Instruct, watsonx Orchestrate
RAG: Custom TF-IDF cosine similarity engine (zero native dependencies)
# Frontend
cd frontend
npm install
# Backend
cd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txtcp backend/.env.example backend/.envEdit backend/.env:
# ── Option A: watsonx Orchestrate (takes priority) ──────────────
WATSONX_ORCHESTRATE_API_KEY=your_orchestrate_api_key
WATSONX_ORCHESTRATE_URL=https://api.us-south.watson-orchestrate.cloud.ibm.com/instances/<id>
# ── Option B: IBM Granite / watsonx.ai (fallback) ───────────────
IBM_WATSONX_API_KEY=your_ibm_cloud_api_key
IBM_WATSONX_PROJECT_ID=your_watsonx_project_id
IBM_WATSONX_URL=https://us-south.ml.cloud.ibm.com
GRANITE_MODEL_ID=ibm/granite-13b-instruct-v2
# ── App ──────────────────────────────────────────────────────────
CORS_ORIGINS=http://localhost:5173If Option A credentials are set, all AI calls route to Orchestrate.
If only Option B is set, calls go directly to IBM Granite.
If neither is set, smart role-based fallbacks are used (no API needed).
# Terminal 1 — Backend
& ".venv\Scripts\uvicorn.exe" main:app --port 8000 --app-dir backend
# Terminal 2 — Frontend
cd frontend && npm run dev| Service | URL |
|---|---|
| App | http://localhost:5173/ |
| API Docs | http://localhost:8000/docs |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/profile/analyze |
Skill gap analysis via IBM Granite |
| POST | /api/roadmap/generate |
3-phase roadmap generation (RAG + Granite) |
| POST | /api/resources/search |
Topic-specific course & resource search |
| GET | /api/progress/{user_id} |
Progress, badges, tips, next milestone |
| POST | /api/progress/update |
Mark course complete, update streak |
| POST | /api/export/pdf |
Stream branded PDF |
| POST | /api/rag/search |
Search knowledge base |
| POST | /api/rag/upload/text |
Add text to knowledge base |
| POST | /api/rag/upload/file |
Upload .txt file to knowledge base |
| GET | /api/rag/documents |
List all knowledge base documents |
| GET | /api/rag/stats |
RAG pipeline statistics |
| Model ID | Best For |
|---|---|
ibm/granite-13b-instruct-v2 |
General instruction following |
ibm/granite-13b-chat-v2 |
Conversational responses |
ibm/granite-8b-code-instruct |
Code generation |
PathForge uses a custom TF-IDF cosine similarity engine — no ChromaDB or C++ compiler required:
- 35 curated documents — IBM SkillsBuild, Coursera certs, career roadmaps, study tips
- Context injection — relevant docs injected into every Granite/Orchestrate prompt
- Document upload — add custom knowledge via API or
.txtfile upload - Zero extra dependencies — pure Python
math+re+collections
- 6 course badges: First Step → Bookworm → Fast Learner → Focused → On Fire → Roadmap Complete
- 4 streak badges: 3-Day Streak → Week Warrior → Fortnight Focus → Monthly Master
- Dynamic tips: Phase-specific study advice that cycles as you progress
- Next milestone: Always shows exactly what's needed for the next badge
MIT © 2026 — Built with ❤️ for IBM SkillsBuild AICTE Internship Program
Powered by IBM Granite & watsonx.ai · PathForge AI