Skip to content

Hamdan772/FlashFlicker

Repository files navigation

๐Ÿ“š FlashFlicker - AI-Powered Study Platform

FlashFlicker Logo

Transform Your Learning Experience with AI

Next.js TypeScript Tailwind CSS Vercel

๐Ÿš€ Live Demo โ€ข ๐Ÿ“– Documentation โ€ข ๐ŸŽฏ Quick Start โ€ข ๐Ÿค Contributing


๐ŸŒŸ Why FlashFlicker?

FlashFlicker revolutionizes studying by combining artificial intelligence, gamification, and modern web technology into one powerful platform. Whether you're a student, educator, or lifelong learner, FlashFlicker adapts to your learning style and keeps you motivated.

"Learning made intelligent, engaging, and effective"

๐ŸŽฏ Perfect For:

  • ๐Ÿ“š Students preparing for exams and coursework
  • ๐Ÿ‘ฉโ€๐Ÿซ Educators creating interactive study materials
  • ๐ŸŽ“ Professionals mastering new skills and concepts
  • ๐Ÿง  Lifelong Learners exploring new subjects with AI guidance

โœจ Features That Set Us Apart

๐Ÿง  AI-Powered Intelligence

  • ๐ŸŽฏ Smart Flashcard Generation - Transform any text into interactive flashcards
  • ๐Ÿค– Personal AI Study Coach - Get 24/7 tailored guidance and motivation
  • ๐Ÿ“ Intelligent Quiz Creation - Generate custom quizzes from your materials
  • ๐Ÿ“Š Content Summarization - AI-powered insights and key point extraction
  • ๐Ÿ’ก Adaptive Learning - System learns your preferences and improves over time

๐ŸŽฎ Gamified Learning Experience

  • ๐Ÿ† 70+ Achievement Badges - From "First Steps" to "Study Master"
  • โšก XP & Level System - Earn points and watch your progress grow
  • ๐Ÿ”ฅ Streak Tracking - Build daily study habits with streak rewards
  • ๐Ÿ“ˆ Progress Analytics - Beautiful charts tracking your learning journey
  • ๐ŸŽ Surprise Rewards - Hidden achievements and bonus challenges

๐Ÿ“š Advanced Study Management

  • โœ๏ธ Rich Text Notes - Advanced editor with formatting and organization
  • ๐Ÿ“ฑ Smart Reminders - Never miss a study session with intelligent notifications
  • ๐Ÿ“Ž File Import - Upload PDFs, DOCX, and text files seamlessly
  • ๐Ÿ” Search & Filter - Find your content instantly across all materials
  • ๐Ÿ’พ Auto-Save - Never lose your work with continuous background saving

๐ŸŽจ Modern User Experience

  • ๐ŸŒ— Dark/Light Themes - Study comfortably in any lighting condition
  • ๐Ÿ“ฑ Fully Responsive - Perfect experience on desktop, tablet, and mobile
  • โ™ฟ Accessibility First - Built following WCAG guidelines
  • โšก Lightning Fast - Optimized performance with Next.js and Turbopack
  • ๐ŸŽฏ Intuitive Design - Clean, distraction-free interface focused on learning

๐Ÿš€ What Makes FlashFlicker Special?

Feature Traditional Apps FlashFlicker
Content Creation Manual, time-consuming AI-generated in seconds
Personalization One-size-fits-all Adapts to your learning style
Motivation Basic progress bars Comprehensive gamification
Study Guidance Static content Interactive AI coaching
Cross-Platform Limited functionality Full-featured everywhere

๐Ÿš€ Quick Start Guide

๐Ÿ“‹ Prerequisites

Before you begin, ensure you have the following installed:

Requirement Version Download Link
Node.js 20.0.0+ nodejs.org
Package Manager npm/yarn/pnpm Comes with Node.js
Gemini API Key Latest Google AI Studio

๐Ÿ› ๏ธ Installation

Option 1: Quick Setup (Recommended)

# Clone and setup in one command
git clone https://github.com/Hamdan772/FlashFlicker.git && cd FlashFlicker && npm install && npm run dev

Option 2: Step-by-Step Setup

# 1๏ธโƒฃ Clone the repository
git clone https://github.com/Hamdan772/FlashFlicker.git
cd FlashFlicker

# 2๏ธโƒฃ Install dependencies
npm install
# or for faster installs
pnpm install

# 3๏ธโƒฃ Start development server
npm run dev

๐Ÿ”‘ API Key Setup

FlashFlicker offers flexible API key management:

Method 1: In-App Setup (Easiest)

  1. Open http://localhost:3000
  2. Click the ๐Ÿ”‘ key icon in the navigation bar
  3. Enter your Gemini API key

Method 2: Quick Access Shortcuts

For testing and demonstrations:

  • Type "owner" โ†’ Full access with all features unlocked
  • Type "judge" or "test" โ†’ Evaluation mode with sample data

Method 3: Environment Variable

# Create .env.local file
echo "GEMINI_API_KEY=your-api-key-here" > .env.local

๐ŸŽฏ Your First 5 Minutes

Follow this quick walkthrough to get the most out of FlashFlicker:

graph LR
    A[๐Ÿ“ Create Note] --> B[๐Ÿค– Generate Flashcards]
    B --> C[๐Ÿ“š Take Quiz] 
    C --> D[๐Ÿ’ฌ Chat with AI Coach]
    D --> E[๐Ÿ“Š View Progress]
    E --> F[๐Ÿ† Unlock Badges!]
Loading
  1. ๐Ÿ“ Create Your First Note

    • Navigate to /dashboard/notes
    • Click "New Note" and add some study content
    • Try uploading a PDF or document for instant import
  2. ๐Ÿค– Generate Flashcards

    • Go to /dashboard/flashcards
    • Paste any text or upload a file
    • Watch AI create intelligent flashcards in seconds
  3. ๐Ÿ“š Take a Quiz

    • Visit /dashboard/quizzes
    • Generate a quiz from your study materials
    • Test your knowledge with AI-created questions
  4. ๐Ÿ’ฌ Chat with AI Coach

    • Head to /dashboard/coach
    • Ask questions about your study materials
    • Get personalized study tips and explanations
  5. ๐Ÿ“Š Track Your Progress

    • Check /dashboard/rewards for your achievements
    • View /dashboard/data for detailed analytics
    • Celebrate your growing streak and XP!

๐Ÿš€ Deployment

Deploy to Vercel (Recommended)

FlashFlicker is optimized for deployment on Vercel:

  1. Push to Git

    git add .
    git commit -m "Ready for deployment"
    git push origin main
  2. Connect to Vercel

    • Visit vercel.com
    • Import your GitHub repository
    • Vercel will automatically detect the Next.js configuration
  3. Configure Environment Variables (Optional)

    • In your Vercel dashboard, go to Settings > Environment Variables
    • Add GEMINI_API_KEY if you want server-side API key management
    • Otherwise, users can enter their API keys directly in the app
  4. Deploy!

    • Click "Deploy" and watch your app go live
    • Vercel will provide you with a production URL

Alternative Deployment Options

Platform Configuration Notes
Netlify netlify.toml included Static export compatible
Railway Dockerfile ready Full-stack deployment
DigitalOcean App Platform compatible Container-based deployment
Self-hosted Docker support Complete control over infrastructure

Environment Variables

Variable Required Description
GEMINI_API_KEY No* Server-side API key (optional - users can enter their own)
NODE_ENV Auto Automatically set by hosting platforms

*Users can enter API keys directly in the application interface.

๐ŸŒ Platform Compatibility

Platform Support Level Minimum Version Features
๐Ÿ–ฅ๏ธ Desktop Chrome โœ… Full Support 90+ All features including file upload
๐Ÿ–ฅ๏ธ Desktop Firefox โœ… Full Support 88+ Complete functionality
๐Ÿ–ฅ๏ธ Desktop Safari โœ… Full Support 14+ All features available
๐Ÿ–ฅ๏ธ Desktop Edge โœ… Full Support 90+ Full compatibility
๐Ÿ“ฑ Mobile Safari โœ… Full Support iOS 14+ Touch-optimized interface
๐Ÿ“ฑ Chrome Mobile โœ… Full Support Android 90+ Complete mobile experience
๐Ÿ’ป PWA Support โœ… Available All browsers Install as desktop app

๐Ÿ“‹ System Requirements

  • RAM: 4GB minimum (8GB recommended)
  • Storage: 100MB free space
  • Network: Broadband connection for AI features
  • Resolution: 1024x768 minimum (responsive design)

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes with proper TypeScript types
  4. Run tests: npm run typecheck && npm run lint
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Development Guidelines

  • Follow existing code style and conventions
  • Add TypeScript types for all new code
  • Test your changes thoroughly
  • Update documentation as needed
  • Ensure all linting passes

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Google AI for the powerful Gemini API
  • Vercel for the amazing Next.js framework
  • Radix UI for accessible component primitives
  • The open-source community for all the amazing tools and libraries

โ“ Troubleshooting & FAQ

๏ฟฝ Common Issues & Solutions

๐Ÿ”‘ API Key Problems

Problem: "API key not working" or quota exceeded errors

# Solutions:
1. Verify key at: https://aistudio.google.com/app/apikey
2. Check usage limits in Google AI Studio
3. Use shortcuts: "owner", "judge", or "test" for demo mode

๐Ÿ’พ Storage Issues

Problem: Notes not saving or data loss

# Solutions:
1. Check browser storage permissions
2. Clear browser cache and reload
3. Ensure sufficient storage space (>50MB free)
4. Try incognito/private mode to test

๐Ÿ› Performance Issues

Problem: Slow loading or AI responses

# Solutions:  
1. Check internet connection speed
2. Clear browser cache
3. Disable browser extensions temporarily
4. Try a different browser

๐Ÿ“ฑ Mobile Issues

Problem: Features not working on mobile

# Solutions:
1. Update to latest browser version
2. Enable JavaScript in browser settings
3. Clear mobile browser cache
4. Try desktop version if needed
๐Ÿ’ก Frequently Asked Questions

Q: Do I need an internet connection? A: Basic features work offline, but AI functionality requires internet for Google Gemini API.

Q: Is my data private and secure? A: Yes! All data is stored locally in your browser. We never send your personal content to our servers.

Q: Can I use this for commercial purposes?
A: Yes, FlashFlicker is MIT licensed. Perfect for educational institutions and businesses.

Q: How much does it cost? A: FlashFlicker is free! You only pay for your Gemini API usage (very affordable - often under $1/month).

Q: Can I contribute to the project? A: Absolutely! We welcome contributions. Check our Contributing Guidelines.

Q: What file formats are supported? A: Currently PDF, DOCX, and TXT files. More formats coming soon!

๐Ÿšจ Known Issues & Roadmap

๐Ÿ”„ Current Limitations

  • File upload limited to 10MB per file
  • AI responses may take 3-5 seconds during peak usage
  • Bulk operations not yet optimized for 1000+ items

๐Ÿ—บ๏ธ Upcoming Features (v2.0)

  • Real-time Collaboration - Study with friends in real-time
  • Advanced Analytics - Detailed learning insights and recommendations
  • Mobile Apps - Native iOS and Android applications
  • Offline AI - Local AI model for basic functionality
  • Study Groups - Community features and shared study spaces
  • LMS Integration - Connect with popular learning management systems

๐Ÿ“ž Support & Community

๐Ÿ’ฌ Get Help & Connect

GitHub Issues GitHub Discussions

Support Type Contact Method Response Time
๐Ÿ› Bug Reports GitHub Issues 24-48 hours
๐Ÿ’ก Feature Requests GitHub Discussions 1-3 days
๐Ÿ“– Documentation Check /docs folder Instant
๐Ÿค Contributing See Contributing Guide Varies

๐ŸŒŸ Show Your Support

If FlashFlicker helps you learn better, please consider:

Star this repo Fork this repo

Built with โค๏ธ by learners, for learners

Made by @Hamdan772 | Follow for updates on new features!

"Education is the most powerful weapon which you can use to change the world." - Nelson Mandela

๐Ÿ› ๏ธ Development

Available Scripts

Command Description
npm run dev Start development server with Turbopack
npm run build Build for production
npm run start Start production server
npm run lint Run ESLint code quality checks
npm run typecheck Run TypeScript type checking
npm run genkit:dev Start Genkit AI development server
npm run genkit:watch Start Genkit with file watching

๐Ÿ”ง API Key Management

FlashFlicker includes a sophisticated API key management system:

  • Secure Storage: Keys are encrypted and stored locally in your browser
  • Auto-Save: No need to re-enter your key on each visit
  • Quick Access Shortcuts: Use predefined shortcuts for testing and demos
  • Validation: Built-in validation ensures your key is properly formatted

๐Ÿ—๏ธ Architecture

FlashFlicker is built with modern web technologies and best practices:

  • App Router: Uses Next.js 15's latest app directory structure
  • Server Components: Optimized performance with server-side rendering
  • Type Safety: Full TypeScript coverage for robust development
  • AI Integration: Genkit framework for seamless AI feature development

๐Ÿ’ป Tech Stack

Core Framework

AI & Backend

  • Google Gemini AI - Advanced AI for content generation
  • Genkit - AI workflow management
  • Zod - Runtime type validation and parsing

UI & Styling

Developer Experience

  • ESLint - Code quality and consistency
  • Prettier - Code formatting (implied)
  • Turbopack - Ultra-fast bundler for development

๐Ÿ“ Project Structure

FlashFlicker/
โ”œโ”€โ”€ ๐Ÿ“‚ src/
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ app/                    # Next.js App Router
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ dashboard/          # Main dashboard pages
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ flashcards/     # Flashcard management
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ coach/          # AI study coaching
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ quizzes/        # Quiz generation & taking
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ notes/          # Note-taking system
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ data/           # Progress analytics
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ rewards/        # Gamification dashboard
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx             # Root layout with providers
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx               # Landing page
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ components/             # Reusable UI components
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ ui/                 # Shadcn/ui component library
โ”‚   โ”‚   โ”œโ”€โ”€ api-key-manager.tsx    # API key management
โ”‚   โ”‚   โ”œโ”€โ”€ rich-text-editor.tsx   # Note editor component
โ”‚   โ”‚   โ””โ”€โ”€ theme-provider.tsx     # Theme management
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ hooks/                  # Custom React hooks
โ”‚   โ”‚   โ”œโ”€โ”€ use-api-key.tsx        # API key state management
โ”‚   โ”‚   โ”œโ”€โ”€ use-gamification.tsx   # Badge & XP system
โ”‚   โ”‚   โ””โ”€โ”€ use-toast.ts           # Toast notifications
โ”‚   โ”œโ”€โ”€ ๐Ÿ“‚ lib/                    # Utility functions
โ”‚   โ”‚   โ”œโ”€โ”€ storage.ts             # Local storage management
โ”‚   โ”‚   โ”œโ”€โ”€ utils.ts               # General utilities
โ”‚   โ”‚   โ””โ”€โ”€ nav-links.ts           # Navigation configuration
โ”‚   โ””โ”€โ”€ ๐Ÿ“‚ ai/                     # AI integration layer
โ”‚       โ”œโ”€โ”€ ๐Ÿ“‚ flows/              # AI workflow definitions
โ”‚       โ”‚   โ”œโ”€โ”€ generate-flashcards.ts
โ”‚       โ”‚   โ”œโ”€โ”€ generate-quiz.ts
โ”‚       โ”‚   โ”œโ”€โ”€ chat-with-coach.ts
โ”‚       โ”‚   โ””โ”€โ”€ summarize-note.ts
โ”‚       โ””โ”€โ”€ genkit.ts              # Genkit configuration
โ”œโ”€โ”€ ๐Ÿ“‚ docs/                       # Documentation
โ”œโ”€โ”€ ๐Ÿ“„ components.json             # Shadcn/ui configuration
โ”œโ”€โ”€ ๐Ÿ“„ tailwind.config.ts          # Tailwind CSS configuration
โ”œโ”€โ”€ ๐Ÿ“„ next.config.ts              # Next.js configuration
โ””โ”€โ”€ ๐Ÿ“„ package.json               # Project dependencies

๐ŸŽฎ Gamification Features

FlashFlicker includes a comprehensive gamification system to keep you motivated:

๐Ÿ† Achievement System

  • 70+ Unique Badges: From "First Steps" to "Study Master"
  • Category-Based: Badges for flashcards, quizzes, notes, and more
  • Progressive Unlocking: Achieve milestones to unlock new challenges

๐Ÿ“Š Progress Tracking

  • XP System: Earn experience points for every study activity
  • Level Progression: Watch your level increase as you learn
  • Streak Counters: Track daily, weekly, and monthly study habits
  • Visual Analytics: Beautiful charts showing your learning journey

๐ŸŽฏ Special Features

  • Konami Code: Hidden easter eggs and bonus rewards
  • Time-Based Rewards: Extra XP for consistent study sessions
  • Social Elements: Share achievements (coming soon)

๐Ÿค– AI Capabilities Deep Dive

FlashFlicker leverages Google's powerful Gemini AI to provide intelligent study assistance:

๐Ÿง  AI Study Coach Features

  • Contextual Understanding: AI analyzes your notes and provides relevant guidance
  • Learning Style Adaptation: Personalizes explanations based on your preferences
  • Multi-Subject Expertise: Covers everything from STEM to humanities
  • Step-by-Step Explanations: Breaks down complex concepts into digestible parts
  • Interactive Problem Solving: Guides you through difficult problems with hints

๐Ÿ“š Content Generation Intelligence

  • Smart Flashcard Creation: Identifies key concepts and creates targeted questions
  • Difficulty Balancing: Generates questions appropriate for your learning level
  • Format Recognition: Adapts to different content types (textbooks, articles, notes)
  • Context Preservation: Maintains topic coherence across generated materials
  • Quality Assurance: Built-in validation ensures educational value

๐Ÿ’ก Advanced AI Features

// Example AI Integration
const aiCoach = {
  analyze: (content) => extractKeyconcepts(content),
  personalize: (userHistory) => adaptToLearningStyle(userHistory), 
  generate: (prompt) => createEducationalContent(prompt),
  evaluate: (responses) => provideIntelligentFeedback(responses)
}

๐Ÿ” Privacy & Security

Your data privacy is our top priority:

  • ๐Ÿ”’ Local Storage: All personal data stays on your device
  • ๐Ÿ›ก๏ธ Encrypted API Keys: Secure key storage with browser encryption
  • ๐Ÿšซ No Data Collection: We don't collect or store your study content
  • ๐Ÿ“ฑ Offline Capable: Core features work without internet connection
  • ๐Ÿ”‘ User Control: Complete control over your data and API usage

๐Ÿ“Š Performance Metrics

FlashFlicker is built for speed and efficiency:

Metric Performance Industry Standard
First Load < 2s < 3s
Page Transitions < 100ms < 500ms
AI Response Time 2-5s 5-10s
Bundle Size 136KB gzipped 200KB+
Lighthouse Score 95+ 90+

About

AI-powered flashcard and study app with coaching features

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages