Learnify
An all-in-one AI-powered interactive learning platform with dynamic quizzes, AI tutors, PDF tools, language practice, and collaborative features.
Install / Use
/learn @tarinagarwal/LearnifyREADME
Learnify - AI-Powered Learning Platform 🚀
Learnify is a cutting-edge, AI-powered learning platform that revolutionizes education through interactive learning experiences, personalized content generation, and intelligent tutoring systems.
🌟 Features
🤖 AI-Powered Learning
- Interactive Quizzes: Dynamic quiz generation with AI-powered analysis
- PDF Chat: Engage with your documents through intelligent conversations
- Language Tutor: Advanced AI language learning assistant
- Smart Analytics: Detailed performance insights and learning recommendations
📚 Learning Resources
- Course Management: Create and manage structured learning content
- Learning Roadmaps: Customized learning paths for various technologies
- Resource Library: Comprehensive collection of educational materials
- Community Learning: Collaborative learning environment
⚡ Smart Tools
- Interactive Whiteboard: Digital workspace with AI analysis
- Notebook System: Organized note-taking with smart features
- Progress Tracking: Advanced analytics and performance monitoring
- Resource Management: Efficient organization of learning materials
🌐 Multilingual Website Translation
- Full-Page Translation: Users can translate the entire website into their preferred Indian language using the language dropdown in the navbar.
- Supported Languages: Includes Hindi, Bengali, Tamil, Telugu, Marathi, Gujarati, Kannada, Malayalam, Punjabi, Odia, Assamese, Urdu, and more.
- Dynamic Translation: All user-facing content is translated in real time using the integrated Flask translation API (Bhashini).
- Seamless UX: Language selection is persistent and applies instantly across all pages.
🚀 Getting Started
AI Fallback System
The project includes a robust AI fallback system to handle service disruptions and rate limiting, ensuring reliability for AI-powered features.
Features
- Fallback AI Models: Uses GROQ as the primary service and OpenAI as fallback for quiz generation, PDF chat, and language tutor features.
- Retry Logic: Implements exponential backoff for retries (configured via
VITE_AI_RETRY_ATTEMPTS). - Circuit Breaker: Prevents repeated calls to failing services (
src/services/circuitBreaker.ts). - Graceful Degradation: Provides dynamic mock responses (
src/services/mockAI.ts) when both primary and fallback services fail. - Real-Time Monitoring: Displays AI service health (feature, provider, duration, status, error) on the admin dashboard (
/admin) using Supabase Realtime (src/components/MonitoringDashboard.tsx). - Access Control: Restricts the admin dashboard to users with the
adminrole (src/hooks/useAuth.ts).
📬 Contact Form Mailing Service
- Contact Form: Users can send messages directly to the developer via the contact form on the website.
- Nodemailer Integration: The backend uses Nodemailer to send emails from the contact form to the developer's email address.
- Environment Variables: Email credentials and recipient addresses are securely managed using environment variables in the
.envfile: test_dev_mail_id– SMTP sender email addresstest_dev_mail_password– SMTP app password (for Gmail, use an App Password)devs_mail_id– Developer's recipient email address- Backend API: The mailing service is exposed at
POST /api/contact(seecontact_api.cjs). The frontend form submits user data to this endpoint. - Security: Sensitive credentials are never exposed in frontend code.
Prerequisites
- Node.js (v18 or higher)
- npm (v9 or higher)
- Docker Desktop (for local development)
- Supabase CLI (
npm install -g supabase) - Supabase account
- GROQ API key
- Bhashini API key
🔐 OAuth Setup (Google & GitHub)
- Create your own Supabase project.
- Go to
Authentication → Providersin Supabase dashboard. - Enable Google and GitHub, and provide Client ID/Secret.
Installation
- Clone the repository:
git clone https://github.com/tarinagarwal/learnify.git
cd learnify
- Install dependencies:
npm install
npm install express cors nodemailer dotenv
- Install Supabase CLI
npm i supabase --save-dev
- Start Supabase Locally
npx supabase start
- Create a
.envfile in the root directory:
VITE_GROQ_API_KEY=your_groq_api_key
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
TRANSLATION_BHASHINI_API_KEY=your_bhshini_api_key
test_dev_mail_id=your_gmail_address@gmail.com
test_dev_mail_password=your_gmail_app_password
devs_mail_id=developer_recipient@gmail.com
- Start the local Supabase instance:
supabase start
- Apply database migrations:
supabase db push
- Start the development server:
npm run dev
- Start the translation server:
python ./translation_api.py
- Start the backend mailing API:
node contact_api.cjs
Database Setup
For detailed instructions on setting up and working with the database, please refer to our Contributing Guide.
Key points:
- Local development uses Docker and Supabase CLI
- Migrations are stored in
/supabase/migrations - Follow migration guidelines when making database changes
- Test all changes locally before committing
🏗️ Architecture
Learnify is built with modern technologies and follows best practices:
- Frontend: React with TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- State Management: Zustand
- Database: Supabase
- AI Integration: GROQ API
- PDF Processing: PDF.js
- Routing: React Router
- Form Handling: React Hook Form
- Type Safety: TypeScript
- Multilingual Support: Bhashini
📦 Project Structure
learnify/
├── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page components
│ ├── services/ # API and service integrations
│ ├── store/ # State management
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ └── lib/ # Shared libraries and configurations
├── public/ # Static assets
├── supabase/ # Supabase configuration and migrations
│ └── migrations/ # Database migration files
└── tests/ # Test files
🔧 Configuration
The project uses various configuration files:
vite.config.ts: Vite configurationtailwind.config.js: Tailwind CSS configurationtsconfig.json: TypeScript configurationeslint.config.js: ESLint configurationsupabase/config.toml: Supabase configuration
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Supabase for the backend infrastructure
- GROQ for AI capabilities
- shadcn/ui for UI components
- All contributors who have helped shape Learnify
📞 Contact
- Project Maintainer: Tarin Agarwal
- Project Link: https://github.com/tarinagarwal/learnify
🌟 Support
If you find this project helpful, please consider giving it a star ⭐️
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
400Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
last30days-skill
20.0kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
