An AI-powered learning platform featuring interactive roadmap creation, semantic content search, and personalized course recommendations.
π Live Demo: https://learn-v1-w9oe.vercel.app/
- Overview
- Features
- Tech Stack
- System Architecture
- Getting Started
- Environment Variables
- Project Structure
- API Overview
- Contributors
Learn addresses the growing need for personalized, intelligent learning experiences. Traditional learning platforms offer static, one-size-fits-all content β Learn solves this by combining interactive visual roadmaps with AI-powered semantic recommendations.
Users can create drag-and-drop learning roadmaps, discover contextually relevant courses and videos through vector search, and get real-time assistance from an integrated AI tutor β all in one unified platform.
- πΊοΈ Interactive Roadmap Builder β Create and follow drag-and-drop learning paths using React Flow
- π€ AI-Generated Roadmaps β Auto-generate structured learning paths based on your topic of interest
- π Semantic Search β Find relevant courses and videos through semantic search, not just keywords
- π Progress Tracking β Track learning streaks, completion rates, and skill mastery
- π― Personalized Recommendations β Get course and video suggestions based on your current roadmap context
- πΉ Course Creation β Multi-step course builder with video upload and curriculum design
- π Performance Analytics β Monitor student enrollment, ratings, and engagement
- π·οΈ Content Management β Manage course listings, pricing, and publishing status
- π Role-Based Authentication β Secure login via GitHub/Google OAuth or credentials (NextAuth.js)
- βοΈ Cloud Video Streaming β Optimized video delivery via Cloudinary CDN
- π± Responsive Design β Fully functional across desktop and mobile devices
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS |
| UI Components | shadcn/ui, Radix UI, Lucide React |
| Roadmap Visualization | React Flow |
| Backend | Next.js API Routes, Mongoose ODM |
| Database | MongoDB Atlas |
| Authentication | NextAuth.js v5 (GitHub, Google OAuth, Credentials) |
| AI Embeddings | Cohere embed-v4.0 (1536-dimensional vectors) |
| Vector Database | Pinecone |
| AI Tutor | Groq SDK (qwen3-32b) |
| Media Storage | Cloudinary |
| Deployment | Vercel |
βββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend Layer β
β Next.js Pages + React Components β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββββββββββ
β API Layer β
β Next.js API Routes (REST) β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββββββββββ
β Service Layer β
β Business Logic + External Services β
ββββββ¬βββββββββββββββ¬βββββββββββββββ¬βββββββββββ
β β β
ββββββΌβββββ ββββββββΌβββββββ βββββΌβββββββββ
β MongoDB β β Pinecone β β Cloudinaryβ
β Atlas β β Vector DB β β CDN β
βββββββββββ βββββββββββββββ ββββββββββββββ
β
ββββββββββββΌβββββββββββ
β AI/ML Services β
β Cohere + Groq API β
βββββββββββββββββββββββ
- User creates/updates a course, video, or roadmap
- Content text is extracted and preprocessed
- Cohere
embed-v4.0generates a 1536-dimensional vector asynchronously - Vector is stored in Pinecone under the relevant namespace (
course-embeddings,video-embeddings,roadmap-embeddings) - Embedding status is updated in MongoDB
- User context (current roadmap node) is embedded via Cohere
- Pinecone similarity search runs against stored content vectors
- Results are filtered by cosine similarity threshold (β₯ 45%)
- Top matches are returned as personalized course/video suggestions
- Node.js 18+
- npm or yarn
- MongoDB Atlas account
- Pinecone account
- Cohere API key
- Groq API key
- Cloudinary account
- GitHub/Google OAuth app credentials
# Clone the repository
git clone https://github.com/NotSOgenius69/Learn.git
cd Learn
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Fill in your keys (see Environment Variables section)
# Run the development server
npm run devOpen http://localhost:3000 in your browser.
Create a .env.local file in the root directory with the following:
# Database
MONGODB_URI=your_mongodb_atlas_connection_string
# Authentication
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=http://localhost:3000
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# AI Services
COHERE_API_KEY=your_cohere_api_key
PINECONE_API_KEY=your_pinecone_api_key
PINECONE_INDEX_NAME=your_pinecone_index_name
GROQ_API_KEY=your_groq_api_key
# Media
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretLearn/
βββ app/ # Next.js App Router
β βββ (auth)/ # Authentication pages
β βββ (dashboard)/ # Student dashboard
β βββ (tutor)/ # Tutor dashboard
β βββ api/ # API route handlers
β βββ layout.tsx # Root layout
βββ components/ # Reusable React components
βββ lib/ # Helper functions & third-party services
βββ models/ # Mongoose schemas
β βββ User.ts
β βββ Course.ts
β βββ Video.ts
β βββ Roadmap.ts
β βββ UserProgress.ts
βββ hooks/ # Custom React hooks
βββ public/ # Static assets
βββ .env.local # Environment variables
| Category | Endpoints |
|---|---|
| Auth | GET/POST /auth/[...nextauth] |
| Courses | GET/POST/PUT/DELETE /courses |
| Videos | GET/POST/PUT/DELETE /videos |
| Roadmaps | POST /roadmap/generate, GET/POST /roadmap/saved |
| AI Suggestions | POST /roadmap/suggestions/courses, /videos |
| Search | GET /explore/popular-courses, /popular-videos |
| Embeddings | GET /roadmap/health, /videos/embedding-health |
| Upload | POST /upload |
For full API documentation see API Docs.
| Name | Role |
|---|---|
| Md. Tanjimul Hasan | Frontend, UI/UX, Authentication |
| Md. Mofazzal Hosen | Backend, AI/ML Integration, Deployment |
β If you found this project interesting, please consider giving it a star!




