A comprehensive quiz application designed to help students prepare for the Microsoft Power BI Data Analyst (PL-300) certification exam.
This Streamlit-based web application provides an interactive quiz experience with detailed performance analysis, pulling questions from Firebase and offering real-time feedback.
- 🎲 Random question sampling across 4 exam categories
- ✅ Support for single and multiple-choice questions
- 🖼️ Image support for question illustrations
- ⚡ Real-time answer tracking
- 📊 Comprehensive performance analytics
- 📈 Category-wise performance breakdown
- 📉 Interactive visualization of quiz results
- 🌐 Streamlit: Web interface
- 🔥 Firebase: Database
- 📊 Plotly: Data visualization
- 📈 Matplotlib: Charting
- 🐍 Python: Core logic
- 📝 Prepare Data (12 questions)
- 🔄 Model Data (10 questions)
- ☁️ Power BI Service (6 questions)
- 📊 Visualization (12 questions)
- 📋 Total Questions: 40
- 🎯 Passing Threshold: 70%
- 🎲 Randomized question selection
- ⚡ Immediate feedback
- 🔥 Firebase project
- 📚 Firestore database with questions
- 🔑 Firebase service account credentials
- ⚙️ Streamlit secrets configuration
- 🐍 Python 3.8+
- 📦 Required Python libraries
git clone https://github.com/HBBH11/QuestionGenerator.git
cd QuestionGenerator
pip install -r requirements.txt
streamlit run QuestionGenerator.pyAdd the following credentials from your Firebase project:
type = "service_account"
project_id = "your-project-id"
private_key_id = "your-private-key-id"
private_key = "your-private-key"
client_email = "your-client-email"
client_id = "your-client-id"
auth_uri = "https://accounts.google.com/o/oauth2/auth"
token_uri = "https://oauth2.googleapis.com/token"
auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs"
client_x509_cert_url = "your-cert-url"
universe_domain = "googleapis.com"Firebase collection: questions
Schema:
- 📑 category
- 📝 choices
- ✅ answer_text
- ❓ question_text
- 🖼️ image_url (optional)
Contributions welcome! Please feel free to:
- 🐛 Report bugs
- 💡 Request features
- 🔧 Submit pull requests
- 🖼️
image_urlfield is optional for questions without images - 🔒 Keep your Firebase credentials secure
⚠️ Don't commit sensitive information to version control




