Part of IB's Dev World Project Series
An AI-powered learning companion that delivers personalized tutoring for any subject in 2-60 minute focused sessions. Perfect for students cramming before exams, professionals preparing for interviews, or anyone needing instant knowledge access.
- π€ Custom AI Companions - Create personalized tutors in 60 seconds
- ποΈ Voice-Powered Learning - Natural conversations with AI tutors using Vapi
- β‘ Instant Access - From 2-minute quick reviews to 60-minute deep dives
- π 7 Core Subjects - Interview, Coding, CS Fundamentals, Math, Science, Communication, ML
- π Progress Tracking - Gamified learning journey with detailed analytics
- πΎ Personal Library - Your custom tutors available 24/7
- Students preparing for exams with limited time
- Job seekers needing quick interview preparation
- Professionals requiring focused skill refreshers
- Anyone wanting personalized learning on-demand
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Authentication: Clerk
- Database: Supabase
- Voice AI: Vapi
- Payments: Stripe
- Deployment: Vercel
- Node.js 18+ installed
- npm/yarn/pnpm/bun package manager
-
Clone the repository
git clone https://github.com/yourusername/cogniva.git cd cogniva -
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Environment Setup Create a
.env.localfile in the root directory:# Clerk Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key # Supabase NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key # Vapi Voice AI VAPI_API_KEY=your_vapi_api_key # Stripe STRIPE_PUBLIC_KEY=your_stripe_public_key STRIPE_SECRET_KEY=your_stripe_secret_key
-
Run the development server
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open your browser Navigate to http://localhost:3000 to see the application.
- Sign up/Login using Clerk authentication
- Navigate to "Build & Personalize" section
- Choose your subject from 7 core categories
- Configure your tutor - name, description, voice, teaching style
- Set session duration (2-60 minutes)
- Click "Build Your Companion" - ready in seconds!
- Go to your Companion Library
- Select any companion
- Click "Launch Lesson"
- Start voice conversation with your AI tutor
- Learn naturally through conversation
cogniva/
βββ app/ # Next.js App Router
β βββ dashboard/ # Dashboard pages
β βββ companions/ # Companion management
β βββ api/ # API routes
β βββ globals.css # Global styles
βββ components/ # Reusable UI components
βββ lib/ # Utility functions
βββ public/ # Static assets
βββ types/ # TypeScript definitions
cogniva-saas/
βββ app/ # Next.js 14 App Router
β βββ api/ # API Routes
β β βββ sentry-example-api/
β β βββ route.ts # Example API endpoint
β βββ companions/ # AI Companion Management
β β βββ [id]/ # Dynamic companion routes
β β β βββ page.tsx # Individual companion page
β β βββ new/ # Create new companion
β β β βββ page.tsx
β β βββ page.tsx # Companions listing
β βββ my-journey/ # User progress tracking
β β βββ page.tsx
β βββ sign-in/ # Authentication
β β βββ [[...sign-in]]/
β β βββ page.tsx # Clerk auth integration
β βββ subscription/ # Subscription management
β β βββ page.tsx
β βββ sentry-example-page/ # Error monitoring
β β βββ page.tsx
β βββ favicon.ico
β βββ global-error.tsx # Global error boundary
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Landing page
βββ components/ # Reusable React Components
β βββ ui/ # Shadcn/ui Component Library
β β βββ accordion.tsx
β β βββ button.tsx
β β βββ form.tsx
β β βββ input.tsx
β β βββ label.tsx
β β βββ select.tsx
β β βββ table.tsx
β β βββ textarea.tsx
β βββ CTA.tsx # Call-to-action component
β βββ CompanionCard.tsx # AI companion card
β βββ CompanionComponent.tsx # Main companion interface
β βββ CompanionForm.tsx # Companion creation form
β βββ CompanionsList.tsx # List of companions
β βββ NavItems.tsx # Navigation items
β βββ Navbar.tsx # Main navigation
β βββ SearchInput.tsx # Search functionality
β βββ SubjectFilter.tsx # Subject filtering
βββ lib/ # Core Business Logic
β βββ actions/ # Server actions
β β βββ companion.actions.ts # Companion CRUD operations
β βββ supabase.ts # Supabase client configuration
β βββ utils.ts # Utility functions
β βββ vapi.sdk.ts # Vapi SDK integration
βββ types/ # TypeScript Definitions
β βββ index.d.ts # Global type definitions
β βββ vapi.d.ts # Vapi-specific types
βββ constants/ # Application Constants
β βββ index.ts # General constants
β βββ soundwaves.json # Audio visualization data
βββ public/ # Static Assets
β βββ icons/ # SVG icons
β β βββ bookmark-filled.svg
β β βββ bookmark.svg
β β βββ coding.svg
β β βββ maths.svg
β β βββ mic-off.svg
β β βββ mic-on.svg
β β βββ [other icons]
β βββ images/ # Static images
β β βββ cta.svg
β β βββ logo.svg
β β βββ limit.svg
β βββ readme/ # Documentation assets
βββ middleware.ts # Next.js middleware
βββ instrumentation.ts # Monitoring setup
βββ sentry.*.config.ts # Error monitoring config
βββ components.json # Shadcn/ui configuration
@@ -138,17 +202,16 @@
Push to GitHub repository Connect to Netlify - netlify.com/start Add environment variables in Netlify dashboard under Site settings > Environment variables Deploy - Automatic deployment on every push
- Push to GitHub repository
- Connect to Vercel/netlify - vercel.com/new
- Add environment variables in Vercel dashboard
- Deploy - Automatic deployment on every push Alternative Deployment Options
- Netlify: Connect your repo and deploy
- Railway: Simple deployment with database included
- Docker: Use provided Dockerfile for containerization Vercel: Connect your repo for seamless Next.js deployment Railway: Simple deployment with database included Docker: Use provided Dockerfile for containerization
@@ -159,11 +222,7 @@
3. Commit your changes (git commit -m 'Add amazing feature')
4. Push to the branch (git push origin feature/amazing-feature)
5. Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js team for the amazing framework @@ -174,10 +233,10 @@
- Developer: Ikram Banadar - Part of IB's Dev World
- Email: ikrambanadar04@gmail.com
- Twitter: [@YourTwitter]
- Developer: Ikram Banadar - IB's Dev World
- Email: ikrambanadar04@gmail.com
- LinkedIn: https://www.linkedin.com/in/ikrambanadarwebdev/