FlashLearn AI is an advanced flashcard application designed to enhance learning through AI-powered features and adaptive study techniques. Built with Next.js, TypeScript, and MongoDB, this application supports multiple learning modes, offline capabilities, and intelligent content extraction.
- Multiple Study Modes: Progress through increasingly difficult recall levels - from true/false to free text entry
- AI-Generated Content: Convert PDFs, websites, audio files, and YouTube videos into flashcards automatically
- Spaced Repetition: Smart scheduling system prioritizes cards you need to review most
- Offline Support: Study anywhere, even without internet connection
- Team Collaboration: Paid users can share flashcards and study with teammates in real-time
- Custom Organization: Tag, categorize, and organize flashcards for efficient study
- Performance Analytics: Track your progress with detailed statistics and reports
The project is currently in active development. Here's what's been completed:
- ✅ Project setup with Next.js App Router architecture
- ✅ Authentication system (sign up, sign in)
- ✅ MongoDB integration
- ✅ Email verification with Mailgun
- ✅ Dashboard layout with responsive sidebar
- ✅ User profile management
- Flashcard CRUD operations and organization system
- Basic study interface with multiple difficulty modes
- Stripe subscription integration
- AI-powered content extraction
- Offline functionality
- Team collaboration features
- Real-time multiplayer study sessions
- Node.js 18.0 or later
- MongoDB database
- Mailgun account (for email verification)
- npm or yarn
- Clone the repository:
git clone https://github.com/dapperAuteur/flashlearn-ai.git cd flashlearn-ai
Set up Environment Variables:Create a file named .env.local in the root of the project and add the following variables. Do not commit this file to Git.# .env.local
MONGODB_URI="your_mongodb_connection_string"
UPSTASH_REDIS_REST_URL="your_upstash_redis_url" UPSTASH_REDIS_REST_TOKEN="your_upstash_redis_token"
NEXTAUTH_SECRET="your_nextauth_secret" NEXTAUTH_URL="http://localhost:3000"
GEMINI_API_KEY="your_gemini_api_key"
STRIPE_SECRET_KEY="your_stripe_secret_key" STRIPE_WEBHOOK_SECRET="your_stripe_webhook_secret"
STRIPE_LIFETIME_PRICE_ID="price_xxxxxxxxxxxxxx" Run the development server:npm run dev Open http://localhost:3000 with your browser to see the result.🤝 ContributingContributions are welcome! Please see CONTRIBUTING.md for guidelines on how to get started. Also, review our CODE_OF_CONDUCT.md and CODING_STYLE_GUIDE.md.