StudyPal โ Your AI-Powered Study Companion
The study pal every student always needed. AI-powered study accountability for African students who work while they study. Study smarter, even offline.
Live Demo: studypal-your-ai-study-companion.vercel.app
๐ Overview
StudyPal is a full-stack AI-powered study application designed specifically for students in Africa who balance work, school, and life. Built for the YPIT Hackathon 2026 โ Education Track, StudyPal transforms the study experience by:
- ๐ Structuring your notes into bite-size lessons using AI
- ๐ง Reading content aloud for hands-free learning while you commute, work, or cook
- โ Quizzing you instantly with voice-based comprehension checks
- ๐ Tracking real progress with Daily Pulse โ actual coverage data, no motivation quotes
- ๐ Working offline after the first load โ no internet required
- ๐ฏ Adapting to your reality with "Life Happened Mode" that replans when you miss days
Beta tested by 200+ students from UNILAG, LASU, UI, Covenant, and ABU with a 4.9/5 rating.
๐ฏ The Problem We Solve
Why Students Struggle
- Inconsistent Internet โ NEPA goes. Data finishes. Study apps shouldn't punish you for that.
- No One Checking In โ Self-study is lonely. Without accountability, weeks blur into nothing.
- Life Gets in the Way โ You work, you commute, you cook. Most planners weren't built for real students.
StudyPal is built to work for any learner โ university students, polytechnic students, JAMB/WAEC candidates, or self-studiers. It fits into your real schedule, not the other way around.
โจ Core Features
1. Voice Lessons ๐ง
- AI reads your content aloud in 10โ15 minute sessions
- Perfect for learning while doing chores, commuting, or working
2. Smart Study Planner
- Personalized micro-sessions adapted to your real schedule
- Automatically reschedules when life happens
3. Comprehension Checks โ
- 3 quick voice-based or text questions after every session
- Instant feedback โ real understanding, not just recall
4. Daily Pulse ๐
- Real progress data day by day
- Streak tracking, average performance, and days remaining
- Zero guilt-tripping if you miss a day
5. Offline Mode ๐
- Full functionality without internet after the first load
- Syncs automatically when you're back online
6. AI-Powered Content Structuring ๐ค
- Upload lecture notes, past questions, or PDFs
- AI structures them into 5โ7 ordered lesson topics
- Groq + Aethex power the intelligence
๐ Tech Stack
99.1% TypeScript | 0.9% Other
Frontend & Framework
- React 19.2.0 โ Modern UI with Concurrent features
- TanStack Start โ Full-stack framework with file-based routing
- TanStack Router โ Type-safe routing & query management
- TanStack React Query โ Server state management
UI & Animation
- Radix UI โ Unstyled, accessible components (accordion, dialog, dropdown, etc.)
- Tailwind CSS 4.2 โ Utility-first styling
- Framer Motion โ Smooth animations and transitions
- Lucide React โ Icon library
Forms & Validation
- React Hook Form โ Efficient form handling
- Zod โ Runtime TypeScript schema validation
- Class Variance Authority โ Component variant management
Backend & Database
- Supabase โ PostgreSQL database + authentication
- Groq โ AI content structuring (LLM inference)
Build & Deployment
- Vite 7.3.1 โ Lightning-fast build tool
- Vercel โ Deployment platform (configured in
vercel.json) - TypeScript 5.8.3 โ Type safety
Development
- ESLint โ Code quality
- Prettier โ Code formatting
- Bun โ Fast package manager
- Nitro โ Backend framework (beta)
๐ Getting Started
Prerequisites
- Node.js 18+ or Bun
- Git
- Supabase account (free tier available)
- Groq API key
Installation
# Clone the repository
git clone https://github.com/zion-robotics/studypal-your-ai-study-companion.git
cd studypal-your-ai-study-companion
# Install dependencies
bun install
# or
npm install
# Create .env.local
cp .env.example .env.local
Environment Setup
Create a .env.local file with:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GROQ_API_KEY=your_groq_api_key
Development Server
# Start dev server with hot reload
bun run dev
# or
npm run dev
Open http://localhost:5173 in your browser.
Production Build
# Build for production
bun run build
# or
npm run build
# Preview production build
bun run preview
๐ Project Structure
src/
โโโ routes/ # File-based routing (TanStack Start)
โ โโโ __root.tsx # App shell with authentication
โ โโโ index.tsx # Landing page
โ โโโ login.tsx # Login page
โ โโโ signup.tsx # Registration page
โ โโโ onboarding.tsx # User setup flow
โ โโโ dashboard.tsx # Main dashboard
โ โโโ upload.tsx # Note upload & AI structuring
โ โโโ session.tsx # Study session (voice, quizzes)
โ โโโ documents.tsx # Document management
โ โโโ courses.tsx # Folder/course organization
โ โโโ notes.tsx # Personal notes
โ โโโ community.tsx # Social feed
โ โโโ discussions.tsx # Discussion threads
โ โโโ settings.tsx # User preferences
โ โโโ -AppShell.tsx # Sidebar layout
โ โโโ README.md # Route conventions
โโโ components/
โ โโโ sp/ # StudyPal-specific UI components
โ โโโ TopNav.tsx
โ โโโ Logo.tsx
โ โโโ ThemeToggle.tsx
โ โโโ AppShell.tsx
โโโ lib/
โ โโโ supabase.ts # Supabase client
โ โโโ groq.ts # Groq API integration
โ โโโ validation.ts # Form validation
โ โโโ guards.ts # Route protection
โ โโโ lovable-error-reporting.ts
โโโ hooks/
โ โโโ useAuth.ts # Authentication
โ โโโ useProfile.ts # User profile
โ โโโ useCountUp.ts # Animation helpers
โโโ styles.css # Global styles
โโโ types/ # TypeScript types
๐ Database Schema (Supabase)
Tables
users (via Supabase Auth)
โโโ id (UUID)
โโโ email
โโโ created_at
user_profiles
โโโ user_id (FK)
โโโ full_name
โโโ school_name
โโโ user_type (tertiary | secondary)
โโโ learning_mode (mixed | online | offline)
โโโ notifications_enabled
โโโ voice_id
โโโ exam_date
โโโ avatar_url
โโโ onboarding_completed
lessons
โโโ id
โโโ user_id (FK)
โโโ subject
โโโ notes (text)
โโโ topics (string[])
โโโ exam_type (JAMB | WAEC | NECO | POST-UTME | null)
โโโ created_at
documents
โโโ id
โโโ user_id (FK)
โโโ folder_id (FK)
โโโ name
โโโ file_path
โโโ file_size
โโโ public_url
โโโ created_at
courses (Folders)
โโโ id
โโโ user_id (FK)
โโโ parent_folder_id (FK, nullable)
โโโ title
โโโ created_at
notes
โโโ id
โโโ user_id (FK)
โโโ title
โโโ body (markdown)
โโโ color (yellow | sage | coral | sky | lavender | white)
โโโ tags (Chemistry | Biology | Economics | Math | General | Important)
โโโ created_at
โโโ updated_at
๐ Authentication
StudyPal uses Supabase Auth with magic links and password-based login. The app includes:
- Email validation & password strength checks
- OAuth callback handling with automatic redirects
- Session restoration from localStorage
- Onboarding flow for new users
- Protected routes with
requireAuthandrequireGuestguards
๐จ Design System
- Colors: Accent-driven (teal/cyan) with light/dark mode support
- Typography: Display fonts for headings, monospace for metadata
- Spacing: Tailwind's default scale (px-4, gap-6, etc.)
- Components: Radix UI primitives + custom StudyPal variants
- Animations: Framer Motion for micro-interactions
- Icons: Lucide React
๐ฑ Key Pages & Features
Landing Page (/)
- Hero section with parallax scrolling
- Problem statement (3 challenges)
- Feature showcase
- How-it-works timeline
- Testimonials from beta testers
- Call-to-action
Authentication (/login, /signup)
- Email validation
- Password strength indicator
- Error handling with friendly messages
- Redirect based on onboarding status
Dashboard (/dashboard)
- User's study stats & streaks
- Recent lessons & documents
- Quick-start actions
- Progress visualization
Upload (/upload)
- Drag-and-drop file/text input
- AI content structuring (via Groq)
- Exam-type selection (JAMB/WAEC/NECO)
- Topic preview & confirmation
Study Session (/session)
- Voice-based lesson playback
- Comprehension quiz (3 questions)
- Session timer & progress
- Offline support
Documents (/documents)
- File browser (PDFs, Word, Excel, Images, etc.)
- List & grid views
- Search & filter
- Real-time sync with Supabase
Courses (/courses)
- Hierarchical folder management
- Drag-and-drop organization
- Quick actions (rename, delete, move)
- Document count per folder
Notes (/notes)
- Rich text editing
- Color & tag organization
- Full-text search
- Real-time sync
Community (/community)
- Social feed of student posts
- Categories: University & Exam Prep
- Tags for filtering
- Like & comment functionality
Settings (/settings)
- Profile management (name, school, user type)
- Learning preferences
- Voice settings
- Notification controls
๐ API Integrations
Supabase
- PostgreSQL database
- Row-level security policies
- Real-time subscriptions
- Storage for documents
Groq
- Structured output API for content parsing
- Fast inference for note structuring
- Model: Best available in Groq (configurable)
๐งช Development
# Run linter
bun run lint
# Format code
bun run format
# Watch for changes
bun run dev
๐ Performance Optimizations
- โ Code splitting with TanStack Router
- โ Lazy loading of routes
- โ Image optimization (Unsplash CDN)
- โ Framer Motion GPU acceleration
- โ Offline-first architecture (via localStorage + Supabase)
- โ React Query caching & stale-while-revalidate
๐ Deployment
Vercel (Recommended)
# Deploy automatically on push to main
git push origin main
The app is configured in vercel.json for SSR + edge runtime.
Environment Variables (Vercel)
Set these in your Vercel dashboard:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYVITE_GROQ_API_KEY
๐ฏ Beta Users & Testimonials
"I work at a phone repair shop till 5pm. StudyPal gives me 10-minute sessions I can actually finish. My GPA went from 2.8 to 3.4 this semester." โ Tunde A., 300L Engineering, LASU
"I uploaded my Biology past questions and StudyPal turned them into daily quizzes. I scored 287 on my JAMB. I wasn't expecting that at all." โ Chisom E., JAMB Candidate, Enugu
"The voice lessons are everything. I listen while I'm cooking or on the bus. It actually asks me questions and waits for my answer. Nothing else does that." โ Amaka O., HND Accounting, Yaba Tech
๐ค Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit changes (
git commit -m 'Add your feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
๐ License
This project is part of the YPIT Hackathon 2026. See LICENSE file for details.
๐ Contact
- GitHub: @zion-robotics
- Built for: YPIT Hackathon 2026 โ Education Track
๐ What's Next?
- [ ] Mobile app (React Native)
- [ ] AI-generated exam simulations
- [ ] Peer tutoring marketplace
- [ ] Integration with school LMS
- [ ] Multi-language support
- [ ] Advanced analytics dashboard
Built for students who work while they study.
Built With
- framer-motion
- groq
- pwa
- radix-ui
- react
- react-hook-form
- supabase
- tailwind-css
- tanstack-router
- typescript
- vercel
- vite
- zod
Log in or sign up for Devpost to join the conversation.