Knowledge, Beautifully Organized. β The AI-powered learning management system that feels less like a tool and more like a superpower.
ConnectX is a full-stack, production-ready LMS built with modern web technologies. It provides an intelligent, adaptive learning experience for students and a powerful course management platform for educators β all wrapped in a premium, Apple-inspired UI.
- Course Enrollment & Progress Tracking β Browse available courses, enroll, and track completion across chapters
- AI-Powered Smart Reflections β Adaptive quizzes generated from video transcripts that learn your strengths and weaknesses over time
- Personalized Learning Memory β The system remembers your learning pace, preferred style, confidence level, and topic mastery
- Assignment Submissions β Submit assignments with file attachments and receive teacher feedback
- Real-time Chat β Direct messaging with teachers and peers with online presence tracking
- Mentorship Program β Get paired with mentors for document reviews and academic guidance
- Course Builder β Create courses with chapters, video content, attachments, and transcript-based quizzes
- Drag & Drop Chapter Ordering β Reorder course content intuitively with DnD Kit
- Assignment & Grading Management β Create assignments with deadlines, review submissions, and provide feedback
- Announcements β Broadcast updates to enrolled students per course
- Mentorship Dashboard β Manage mentees, set document requirements, and review submissions
- Student Analytics β View enrollment data, submission rates, and course engagement
- Smart Reflection Engine β Generates context-aware quiz questions from video transcripts using AI
- Adaptive Difficulty β Questions adjust based on your
StudentReflectionMemoryprofile - Remediation Paths β AI suggests targeted review material when you struggle with a topic
- Topic-Level Mastery Tracking β Per-topic accuracy, streak tracking, and confidence scoring
- Role-Based Access Control (RBAC) β Distinct experiences for
STUDENT,TEACHER, andADMINroles - Supabase Authentication β Email/password auth with SSR cookie-based sessions
- Onboarding Flow β New users are guided through profile setup and learning preference configuration
- Global Command Menu β
βKquick-access navigation across the entire app - Dark/Light Mode β Full theme support via
next-themes - Vercel Analytics β Built-in production analytics
This project is a Turborepo monorepo with the following structure:
connectx-lms/
βββ apps/
β βββ web/ # Next.js 16 application (App Router)
β βββ app/
β β βββ api/ # 30+ API routes
β β βββ auth/ # Authentication pages
β β βββ dashboard/ # Protected dashboard (role-based)
β β β βββ account/
β β β βββ assignments/
β β β βββ community/
β β β βββ courses/
β β β βββ grades/
β β β βββ mentorship/
β β β βββ schedule/
β β βββ forgot-password/
β β βββ landing/
β β βββ onboarding/
β βββ components/ # React components
β βββ hooks/ # Custom hooks & React Query keys
β βββ lib/ # Utilities (Supabase client, auth helpers)
β βββ providers/ # Context providers (User store, React Query)
β
βββ packages/
β βββ database/ # Prisma schema + client
β β βββ prisma/
β β βββ schema.prisma # 18 models, PostgreSQL
β βββ ui/ # Shared component library (55+ components)
β β βββ src/components/ # shadcn/ui + custom components
β βββ eslint-config/ # Shared ESLint configuration
β βββ typescript-config/ # Shared TypeScript configuration
β
βββ turbo.json # Turborepo pipeline configuration
βββ package.json # Root workspace configuration
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| Language | TypeScript 5.7 |
| UI Library | React 19 |
| Styling | Tailwind CSS 4 |
| Component Library | shadcn/ui (55+ components) |
| Animations | Framer Motion 12 |
| State Management | Zustand 5 + React Query 5 |
| Forms | React Hook Form 7 + Zod 4 |
| Database | PostgreSQL (via Supabase) |
| ORM | Prisma 6 |
| Authentication | Supabase Auth (SSR) |
| Drag & Drop | dnd-kit |
| Icons | Lucide React |
| Monorepo | Turborepo 2 |
| Package Manager | Bun 1.2 |
| Analytics | Vercel Analytics |
| Deployment | Vercel |
git clone https://github.com/your-username/connectx-lms.git
cd connectx-lmsbun installCreate a .env file inside packages/database/:
DATABASE_URL="postgresql://..."
DIRECT_URL="postgresql://..."Create a .env.local file inside apps/web/:
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-anon-key"# Generate the Prisma client
bun run --filter @workspace/database db:generate
# Push schema to your database (first time only)
bun run --filter @workspace/database db:pushbun run devThe app will be running at http://localhost:3000.
The application exposes 30+ API routes under apps/web/app/api/:
| Category | Endpoint | Description |
|---|---|---|
| Courses | GET /api/courses |
List all courses |
GET /api/courses/available |
Browse enrollable courses | |
GET /api/courses/my |
Get user's enrolled/taught courses | |
POST /api/courses/enroll |
Enroll in a course | |
PATCH /api/courses/[courseId] |
Update course details | |
| Assignments | GET /api/assignments |
List assignments |
POST /api/assignments/submit |
Submit an assignment | |
PATCH /api/assignments/update |
Update assignment status | |
| Announcements | GET /api/announcements |
List announcements |
| Chat | GET/POST /api/chat |
Direct messaging |
| Reflection (AI) | POST /api/reflection/generate |
Generate quiz from transcript |
POST /api/reflection/evaluate |
Evaluate student answers | |
POST /api/reflection/remediate |
Get remediation suggestions | |
POST /api/reflection/chat |
AI-powered reflection chat | |
POST /api/smart-reflection |
Smart adaptive quiz | |
| Mentorship | GET/POST /api/mentorship |
Manage mentorships |
GET /api/mentorship/available-students |
Find unassigned students | |
| Documents | GET/POST /api/documents/requirements |
Document requirements |
GET/POST /api/documents/submissions |
Document submissions | |
| User | GET/PATCH /api/user/profile |
User profile |
POST /api/user/complete-onboarding |
Complete onboarding | |
GET /api/user/learning-memory |
Get learning memory |
The PostgreSQL database consists of 18 models managed by Prisma:
User ββββββββββββββ¬βββββ Course ββββββ Chapter ββββββ UserProgress
β β β β
β β β βββ ReflectionPoint
β β β
β β βββ Attachment
β β βββ Announcement
β β βββ Assignment ββββ AssignmentSubmission
β β βββ Enrollment
β β
βββ Chat βββββββββ΄ββ Message
βββ UserPresence
βββ StudentReflectionMemory
βββ Mentorship
βββ DocumentRequirement ββββ DocumentSubmission
βββ (Roles: STUDENT | TEACHER | ADMIN)
- UserRole:
STUDENTΒ·TEACHERΒ·ADMIN - AssignmentStatus:
ACTIVEΒ·REVIEWΒ·STOPPED - SubmissionStatus:
PENDINGΒ·APPROVEDΒ·REJECTED - MentorshipStatus:
ACTIVEΒ·INACTIVEΒ·COMPLETED - DocumentStatus:
PENDINGΒ·APPROVEDΒ·REJECTEDΒ·REVISION_REQUESTED
Shared component library with 55+ components built on shadcn/ui:
accordion Β· alert-dialog Β· avatar Β· badge Β· breadcrumb Β· button
calendar Β· card Β· carousel Β· chart Β· checkbox Β· collapsible
command Β· context-menu Β· dialog Β· drawer Β· dropdown-menu Β· empty
field Β· form Β· hover-card Β· input Β· input-group Β· input-otp
item Β· kbd Β· label Β· menubar Β· navigation-menu Β· pagination
popover Β· progress Β· radio-group Β· resizable Β· scroll-area
select Β· separator Β· sheet Β· sidebar Β· skeleton Β· slider
sonner Β· spinner Β· switch Β· table Β· tabs Β· textarea
toggle Β· toggle-group Β· tooltip ... and more
Usage:
import { Button } from "@workspace/ui/components/button"
import { Card } from "@workspace/ui/components/card"Prisma client and schema package:
import { prisma } from "@workspace/database"
const users = await prisma.user.findMany()| Command | Description |
|---|---|
bun run dev |
Start all apps in development mode (Turbopack) |
bun run build |
Build all apps and packages |
bun run lint |
Lint all apps and packages |
bun run format |
Format all files with Prettier |
bun run --filter web dev |
Start only the web app |
bun run --filter @workspace/database db:generate |
Generate Prisma client |
bun run --filter @workspace/database db:push |
Push schema to database |
bun run --filter @workspace/database db:studio |
Open Prisma Studio |
The app is designed for deployment on Vercel:
- Connect your GitHub repository to Vercel
- Set the root directory to
apps/web - Add environment variables (
DATABASE_URL,DIRECT_URL, Supabase keys) - Vercel will automatically detect the Turborepo setup
Production URL: https://lms.harshjdhv.com
To add new shadcn/ui components:
bunx shadcn@latest add <component-name> -c apps/webComponents are automatically placed in packages/ui/src/components/.
This project is private and proprietary.
Built with β€οΈ by the ConnectX team Β· UI components from componentry.fun