An intelligent multi-service learning roadmap generator that creates personalized study plans using semantic search, vector embeddings, ChromaDB, and AI-powered topic matching.
The system recommends structured weekly learning roadmaps based on a user's:
- Topic / Subject
- Skill Level
- Weekly Study Hours
- Learning Duration
Instead of returning random courses, the system uses semantic similarity search and strict topic validation to generate more reliable and professional learning paths.
This project follows a 3-tier architecture:
Frontend (React + Vite)
↓
ASP.NET Core Web API
↓
Python ML Service (FastAPI + ChromaDB)
- React.js
- Vite
- Axios
- CSS
- ASP.NET Core Web API (.NET)
- Python
- FastAPI
- SentenceTransformers
- ChromaDB
- Pandas
- NumPy
- Scikit-learn
- Semantic Search
- Vector Embeddings
- Topic Resolution
- AI-assisted Subject Classification
Generates weekly learning plans based on:
- User topic
- Skill level
- Weekly study hours
- Duration
Uses SentenceTransformer embeddings to:
- Understand meaning instead of exact keywords
- Find relevant learning resources semantically
Stores vector embeddings of courses for:
- Fast retrieval
- Semantic similarity search
- Intelligent recommendations
Professional fallback handling:
- Unsupported topics are blocked
- No fake/random roadmap generation
- Users receive supported topic suggestions
Example:
{
"status": "unsupported_topic",
"message": "We do not have enough courses for this topic.",
"available_topics": [
"Machine Learning",
"Web Development",
"Data Science"
]
}Frontend automatically loads supported roadmap topics from backend and displays them as clickable chips/tabs.
The application demonstrates real-world microservice communication:
- React → .NET API
- .NET API → Python ML Service
ai_assistant/
│
├── frontend/ # React + Vite Frontend
│
├── web_api/ # ASP.NET Core API
│
├── ml_service/ # Python ML Service
│ ├── data/
│ ├── src/
│ ├── chroma_db/
│ └── requirements.txt
│
└── README.md
User enters:
- Topic
- Skill level
- Weekly hours
- Duration
Example:
Topic: Machine Learning
Level: Beginner
Hours/Week: 10
Duration: 6 Weeks
React frontend sends request to ASP.NET Core API.
The API:
- Validates request
- Forwards request to Python ML service
Python service:
- Resolves topic aliases
- Searches ChromaDB
- Retrieves semantically similar courses
- Builds structured roadmap
Frontend visualizes:
- Weekly roadmap
- Course sequence
- Estimated study hours
- Progress status
User Query
↓
SentenceTransformer Embedding
↓
ChromaDB Similarity Search
↓
Relevant Courses Retrieved
↓
Roadmap Generation
Courses and user queries are converted into vectors using:
SentenceTransformerThis allows:
- Meaning-based retrieval
- Better recommendations
- NLP-powered matching
ChromaDB compares vector similarity to find the most relevant courses.
The system maps:
AI → Artificial Intelligence
ML → Machine Learning
and validates supported topics before generating a roadmap.
GET /healthGET /topicsPOST /generate-roadmapGET /healthGET /api/learning-path/topicsPOST /api/learning-path/generategit clone https://github.com/your-username/ai-learning-path-recommender.git
cd ai-learning-path-recommendercd ml_servicepython -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtuvicorn src.api.main:app --reloadRuns on:
http://127.0.0.1:8000
cd web_apidotnet restoredotnet run --urls http://localhost:5000Runs on:
http://localhost:5000
cd frontendnpm installnpm run devOR
npm run build
npm run previewFrontend URL:
http://127.0.0.1:5173
Start services in this order:
cd ml_service
uvicorn src.api.main:app --reloadcd web_api
dotnet run --urls http://localhost:5000cd frontend
npm run build
npm run previewUser selects "Machine Learning"
↓
Frontend sends request
↓
.NET API receives request
↓
Python ML service processes query
↓
ChromaDB finds relevant courses
↓
Roadmap generated
↓
Frontend visualizes roadmap
The system does NOT generate fake/random roadmaps.
If insufficient topic data exists:
- Roadmap generation stops
- User receives supported topic suggestions
This prevents low-quality recommendations.
Instead of keyword matching:
- Uses embeddings
- Understands context and meaning
- Produces more relevant recommendations
Separation of concerns:
- Frontend handles UI
- .NET handles API orchestration
- Python handles ML logic
This architecture is scalable and production-oriented.
- Roadmap quality depends on dataset quality
- Some topics may have limited course coverage
- ChromaDB is currently local storage
- No authentication system yet
- User authentication
- Progress tracking
- Roadmap export (PDF)
- AI chatbot mentor
- Course difficulty prediction
- Recommendation feedback loop
- Docker support
- Real-time analytics
fastapi
uvicorn
pandas
numpy
scikit-learn
sentence-transformers
chromadb
pydantic
python-dotenv
anthropic
requestsnpm install react react-dom axios
npm install -D viteThis project demonstrates:
- NLP applications
- Semantic search systems
- Vector databases
- Recommendation systems
- Microservice communication
- API integration
- React frontend development
- ML service architecture
Developed as an AI-powered educational roadmap generation system using:
- React
- ASP.NET Core
- FastAPI
- ChromaDB
- SentenceTransformers