A modern, interactive web application that generates quizzes and flashcards from PDFs or text using AI.
New to this? Start here:
- ⚡ QUICK_START.md - Get running in 5 minutes! (Recommended for beginners)
- 📚 SETUP_GUIDE.md - Detailed step-by-step instructions with examples
- 💻 TERMINAL_EXAMPLES.md - Copy & paste terminal commands with examples
- 📄 PDF Upload: Extract text from PDFs to generate quizzes
- 🤖 AI-Powered Quiz Generation: Create custom quizzes with multiple difficulty levels
- 📚 Flashcards: Generate interactive flashcards for studying
- 📊 Performance Analytics: Track your quiz performance with charts
- 💬 AI Chat Assistant: Ask questions about your study material
- 🎨 Modern UI: Smooth animations and transitions
- 📱 Responsive Design: Works on desktop and mobile
npm installThe application requires a Python server to proxy API requests (avoids CORS issues):
python3 server.pyThe server will start on http://localhost:8080
Open index.html in your browser, or navigate to:
http://localhost:8080/index.html(Landing page)http://localhost:8080/auth.html(Login page)http://localhost:8080/app.html(Main application)
- Get a free API key from OpenRouter
- Click on "API Key" in the sidebar
- Enter your OpenRouter API key
- Click "Save & Continue"
- Navigate to AI Studio from the sidebar
- Either:
- Upload a PDF file, OR
- Paste text into the text area
- Select difficulty level (Easy/Medium/Hard)
- Choose number of questions (5, 10, 15, or Auto)
- Click Generate Quiz
- Upload a PDF or enter text
- Click Generate Flashcards
- Use arrow keys or buttons to navigate
- Click cards to flip them
- Press 'R' to hear text-to-speech
- Click on answer options to select
- Use number keys (1-4) for quick selection
- Progress bar shows your completion
- Results are shown at the end with detailed analysis
-
Flashcards:
Space: Flip card← →: Navigate cardsR: Read current card (text-to-speech)Escape: Close and return to dashboard
-
Quiz:
1-4: Select answer optionEscape: Return to dashboard
- Ensure the Python server is running:
python3 server.py - Check that your OpenRouter API key is valid
- Verify the server is on port 8080
- Make sure you have entered text or uploaded a PDF
- Check your API key is set correctly
- Ensure the Python server is running
- Check browser console for error messages
If you see network errors:
- Make sure
server.pyis running - Check that port 8080 is not in use
- Verify Python 3 is installed:
python3 --version
project/
├── index.html # Landing page
├── auth.html # Login page
├── app.html # Main application
├── server.py # Python proxy server
├── styles.css # Global styles
├── js/
│ ├── config.js # Firebase & API config
│ ├── ai.js # AI quiz generation logic
│ ├── ui.js # UI interactions & routing
│ └── pdf-handler.js # PDF text extraction
└── package.json # Dependencies
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Styling: Tailwind CSS
- AI: OpenRouter API (Mistral 7B)
- PDF Processing: PDF.js
- Charts: Chart.js
- Backend: Python HTTP Server
This project is for educational purposes.