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
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.
- 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.
- AI reads your content aloud in 10β15 minute sessions
- Perfect for learning while doing chores, commuting, or working
- Personalized micro-sessions adapted to your real schedule
- Automatically reschedules when life happens
- 3 quick voice-based or text questions after every session
- Instant feedback β real understanding, not just recall
- Real progress data day by day
- Streak tracking, average performance, and days remaining
- Zero guilt-tripping if you miss a day
- Full functionality without internet after the first load
- Syncs automatically when you're back online
- Upload lecture notes, past questions, or PDFs
- AI structures them into 5β7 ordered lesson topics
- Groq + Aethex power the intelligence
99.1% TypeScript | 0.9% Other
- 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
- 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
- React Hook Form β Efficient form handling
- Zod β Runtime TypeScript schema validation
- Class Variance Authority β Component variant management
- Supabase β PostgreSQL database + authentication
- Groq β AI content structuring (LLM inference)
- Vite 7.3.1 β Lightning-fast build tool
- Vercel β Deployment platform (configured in
vercel.json) - TypeScript 5.8.3 β Type safety
- ESLint β Code quality
- Prettier β Code formatting
- Bun β Fast package manager
- Nitro β Backend framework (beta)
- Node.js 18+ or Bun
- Git
- Supabase account (free tier available)
- Groq API key
# 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.localCreate 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# Start dev server with hot reload
bun run dev
# or
npm run devOpen http://localhost:5173 in your browser.
# Build for production
bun run build
# or
npm run build
# Preview production build
bun run previewsrc/
βββ 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
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
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
- 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
- Hero section with parallax scrolling
- Problem statement (3 challenges)
- Feature showcase
- How-it-works timeline
- Testimonials from beta testers
- Call-to-action
- Email validation
- Password strength indicator
- Error handling with friendly messages
- Redirect based on onboarding status
- User's study stats & streaks
- Recent lessons & documents
- Quick-start actions
- Progress visualization
- Drag-and-drop file/text input
- AI content structuring (via Groq)
- Exam-type selection (JAMB/WAEC/NECO)
- Topic preview & confirmation
- Voice-based lesson playback
- Comprehension quiz (3 questions)
- Session timer & progress
- Offline support
- File browser (PDFs, Word, Excel, Images, etc.)
- List & grid views
- Search & filter
- Real-time sync with Supabase
- Hierarchical folder management
- Drag-and-drop organization
- Quick actions (rename, delete, move)
- Document count per folder
- Rich text editing
- Color & tag organization
- Full-text search
- Real-time sync
- Social feed of student posts
- Categories: University & Exam Prep
- Tags for filtering
- Like & comment functionality
- Profile management (name, school, user type)
- Learning preferences
- Voice settings
- Notification controls
- PostgreSQL database
- Row-level security policies
- Real-time subscriptions
- Storage for documents
- Structured output API for content parsing
- Fast inference for note structuring
- Model: Best available in Groq (configurable)
# Run linter
bun run lint
# Format code
bun run format
# Watch for changes
bun run dev- β 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
# Deploy automatically on push to main
git push origin mainThe app is configured in vercel.json for SSR + edge runtime.
Set these in your Vercel dashboard:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEYVITE_GROQ_API_KEY
"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
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
This project is part of the YPIT Hackathon 2026. See LICENSE file for details.
- GitHub: @zion-robotics
- Built for: YPIT Hackathon 2026 β Education Track
- 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.