An AI-powered quiz generation platform that creates personalized learning experiences using Google's Gemini AI.
- AI-Powered Quiz Generation: Create custom quizzes on any topic instantly
- Multiple Difficulty Levels: Choose between Beginner, Intermediate, and Advanced
- Real-time Feedback: Get immediate feedback on your answers
- Progress Tracking: Track your learning journey with detailed statistics
- User Profiles: Save quiz history and view performance analytics
- Responsive Design: Seamless experience across all devices
- React 18 + Vite
- Firebase (Auth + Firestore)
- Google Gemini AI
- TailwindCSS
- Node.js 16+ installed
- A Google Cloud account for Gemini API
- A Firebase account
- Clone the repository
git clone https://github.com/JittoJoseph/QuizzLab.git
cd QuizzLab
- Install dependencies
npm install
- Firebase Setup
- Go to Firebase Console
- Create a new project
- Enable Authentication:
- Go to Authentication > Sign-in method
- Enable Google Sign-in
- Create Firestore Database:
- Go to Firestore Database
- Create database in test mode
- Get Firebase Config:
- Go to Project Settings > General
- Scroll to "Your apps"
- Click Web icon (</>)
- Register app and copy config
- Update Firebase Configuration Replace the config in
firebase.js
:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-app.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-app.appspot.com",
messagingSenderId: "your-sender-id",
appId: "your-app-id",
measurementId: "your-measurement-id"
};
- Environment Setup Create
.env
file in root directory:
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_GEMINI_API_KEY=your_gemini_api_key
- Start Development Server
npm run dev
-
Push code to GitHub repository
-
Deploy on Vercel:
- Go to vercel.com
- Sign in with GitHub
- Import your repository
- Configure build settings:
- Framework Preset: Vite
- Build Command: npm run build
- Output Directory: dist
- Add environment variables
- Deploy!
This project is licensed under Apache License 2.0 - see the LICENSE file for details.
Jitto Joseph - @JittoJoseph50