https://github.com/floressek/quizzer
Create and take quizzes on any topic, dynamically generated from text or PDF content using AI
https://github.com/floressek/quizzer
Last synced: 6 months ago
JSON representation
Create and take quizzes on any topic, dynamically generated from text or PDF content using AI
- Host: GitHub
- URL: https://github.com/floressek/quizzer
- Owner: Floressek
- License: mit
- Created: 2025-03-20T20:09:23.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-03-20T21:39:24.000Z (7 months ago)
- Last Synced: 2025-03-20T22:04:47.122Z (7 months ago)
- Language: TypeScript
- Homepage:
- Size: 23.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Quizzer - AI-Powered Interactive Quiz Platform
Create and take quizzes on any topic, dynamically generated from text or PDF content using AI
Features •
Tech Stack •
Getting Started •
Usage •
Contributing •
License## Features
### 📚 Multiple Quiz Sources
- **Topic-Based Quizzes:** Generate quizzes on any topic using AI
- **PDF-Based Quizzes:** Upload PDFs to automatically create quizzes from their content
- **Custom Quizzes:** Create your own quizzes manually### 🧠 AI-Powered Question Generation
- Automatically generates high-quality questions based on the content
- Multiple difficulty levels: Easy, Medium, Hard
- Question types: Multiple Choice and Open-Ended### 📊 Advanced Statistics & Analysis
- Detailed performance tracking and visual analytics
- Historical progress monitoring
- Identify strengths and weaknesses
- Personalized study recommendations### 🎓 Learning Features
- Quiz explanations for each answer
- Study mode for reviewing content
- Timed quizzes to improve speed
- Bookmark difficult questions### 🌐 User Experience
- Responsive design for all devices
- Dark/Light mode
- Intuitive interface
- Comprehensive dashboard## Tech Stack
- **Frontend:** React, Next.js 13
- **UI Components:** shadcn/ui, Tailwind CSS
- **Backend:** Next.js API Routes
- **Database:** Prisma, MySQL (PlanetScale)
- **Authentication:** NextAuth.js
- **AI Integration:** OpenAI API
- **PDF Processing:** pdf.js
- **Deployment:** Vercel/Fly.io## Getting Started
### Prerequisites
- Node.js 16+ installed
- NPM or Yarn
- MySQL database or PlanetScale account
- OpenAI API key### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/quizzer.git
cd quizzer
```2. Install dependencies:
```bash
npm install
# or
yarn install
```3. Set up environment variables:
Create a `.env` file in the root directory with the following variables:
```
# Database
DATABASE_URL="mysql://..."
# NextAuth
NEXTAUTH_SECRET="your-secret-here"
NEXTAUTH_URL="http://localhost:3000"
# OAuth
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
# OpenAI
OPENAI_API_KEY="your-openai-api-key"
# App
API_URL="http://localhost:3000"
```4. Initialize the database:
```bash
npx prisma generate
npx prisma db push
```5. Run the development server:
```bash
npm run dev
# or
yarn dev
```6. Open [http://localhost:3000](http://localhost:3000) in your browser.
## Usage
### Creating a Quiz from a Topic
1. Navigate to the "Create Quiz" page
2. Select "From Topic"
3. Enter your desired topic
4. Select question type (Multiple Choice or Open-Ended)
5. Choose difficulty level and number of questions
6. Click "Generate Quiz"### Creating a Quiz from a PDF
1. Navigate to the "Create Quiz" page
2. Select "From PDF"
3. Upload your PDF document
4. Configure quiz settings
5. Click "Generate Quiz"### Taking a Quiz
1. Answer questions one by one
2. View explanations for correct/incorrect answers
3. Complete the quiz to see your score and statistics
4. Review your results in detail on the Statistics page### Using Study Mode
1. Go to your quiz history
2. Select a completed quiz
3. Click "Study Mode"
4. Use flashcards to review the content
5. Bookmark difficult questions for later review## Deployment
### Deploy on Vercel
The easiest way to deploy the application is with [Vercel](https://vercel.com):
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fyourusername%2Fquizzzy-pro)
### Deploy with Docker
You can also deploy using Docker:
```bash
# Build the Docker image
docker build -t quizzer .# Run the container
docker run -p 3000:3000 -e DATABASE_URL=your-database-url quizzer
```## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgements
- [OpenAI](https://openai.com/) for the powerful language model
- [Next.js](https://nextjs.org/) for the React framework
- [shadcn/ui](https://ui.shadcn.com/) for the beautiful UI components
- [Prisma](https://www.prisma.io/) for the ORM
- [NextAuth.js](https://next-auth.js.org/) for authentication
- [pdf.js](https://mozilla.github.io/pdf.js/) for PDF parsing---
Made with ❤️ by Our Team