Spaces:
Sleeping
Sleeping
File size: 34,094 Bytes
579353f b08ed27 579353f dff3d22 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 |
import streamlit as st
import random
import streamlit as st
import random
import streamlit as st
import random
import time
# Sample questions for each category
questions = {
"Python Basics": [
{"question": "What is the output of print(type([]))?", "options": ["<class 'list'>", "<class 'dict'>", "<class 'tuple'>"], "answer": "<class 'list'>"},
{"question": "What keyword is used to define a function in Python?", "options": ["def", "function", "fun"], "answer": "def"},
{"question": "How do you create a list in Python?", "options": ["[]", "{}", "()"], "answer": "[]"},
{"question": "What method adds an element to the end of a list?", "options": ["append()", "add()", "insert()"], "answer": "append()"},
{"question": "What is the purpose of the self keyword in class methods?", "options": ["To refer to the instance", "To refer to the class", "To define a function"], "answer": "To refer to the instance"},
{"question": "How can you handle exceptions in Python?", "options": ["try/except", "catch", "throw"], "answer": "try/except"},
{"question": "What is the difference between == and is?", "options": ["Value vs Identity", "Type vs Value", "None"], "answer": "Value vs Identity"},
{"question": "How do you read a file in Python?", "options": ["open()", "read()", "file()"], "answer": "open()"},
{"question": "What does the len() function do?", "options": ["Returns the length", "Returns the type", "Returns the sum"], "answer": "Returns the length"},
{"question": "How can you convert a string to an integer?", "options": ["int()", "str()", "float()"], "answer": "int()"},
{"question": "What is a lambda function?", "options": ["Anonymous function", "A type of loop", "None"], "answer": "Anonymous function"},
{"question": "How do you create a dictionary in Python?", "options": ["{}", "[]", "()"], "answer": "{}"},
{"question": "What is list comprehension?", "options": ["Creating lists from existing lists", "Creating dictionaries", "None"], "answer": "Creating lists from existing lists"},
{"question": "What does the map() function do?", "options": ["Applies a function to all items", "Filters items", "None"], "answer": "Applies a function to all items"},
{"question": "How can you remove duplicates from a list?", "options": ["set()", "unique()", "distinct()"], "answer": "set()"},
{"question": "What is the purpose of the with statement?", "options": ["Resource management", "Looping", "Condition checking"], "answer": "Resource management"},
{"question": "How do you merge two dictionaries in Python?", "options": ["dict.update()", "dict.merge()", "dict.concat()"], "answer": "dict.update()"},
{"question": "What is the difference between a list and a tuple?", "options": ["Mutability", "Size", "Type"], "answer": "Mutability"},
{"question": "How do you iterate over a dictionary?", "options": ["for key in dict", "for dict in key", "for item in dict"], "answer": "for key in dict"},
{"question": "What is the purpose of the enumerate() function?", "options": ["To get index and value", "To filter lists", "None"], "answer": "To get index and value"},
{"question": "How can you reverse a list?", "options": ["list.reverse()", "list[::-1]", "None"], "answer": "list.reverse()"},
{"question": "What is a generator in Python?", "options": ["An iterable", "A function", "Both"], "answer": "Both"},
{"question": "How do you define a class in Python?", "options": ["class ClassName:", "def ClassName:", "create ClassName:"], "answer": "class ClassName:"},
{"question": "What is the output of print('Hello' * 3)?", "options": ["HelloHelloHello", "3Hello", "Hello 3"], "answer": "HelloHelloHello"},
{"question": "How do you check if a key exists in a dictionary?", "options": ["key in dict", "dict.has_key()", "None"], "answer": "key in dict"},
{"question": "What is the difference between deep copy and shallow copy?", "options": ["Copy level", "Type of data", "None"], "answer": "Copy level"},
{"question": "How do you sort a list in Python?", "options": ["list.sort()", "sorted(list)", "Both"], "answer": "Both"},
{"question": "What is the purpose of the __init__ method?", "options": ["Constructor", "Destructor", "None"], "answer": "Constructor"},
{"question": "How can you concatenate two strings?", "options": ["str1 + str2", "str1.concat(str2)", "None"], "answer": "str1 + str2"},
{"question": "What is the output of print(bool(''))?", "options": ["False", "True", "None"], "answer": "False"},
{"question": "What is the output of print(type({}))?", "options": ["<class 'dict'>", "<class 'list'>", "<class 'tuple'>"], "answer": "<class 'dict'>"},
{"question": "What is the output of print(type(()))?", "options": ["<class 'tuple'>", "<class 'list'>", "<class 'dict'>"], "answer": "<class 'tuple'>"},
{"question": "What is a decorator in Python?", "options": ["A function that wraps another function", "A type of class", "None"], "answer": "A function that wraps another function"},
{"question": "How do you create a virtual environment?", "options": ["python -m venv env", "venv create env", "env create"], "answer": "python -m venv env"},
{"question": "What is the purpose of the global keyword?", "options": ["To access global variables", "To create global variables", "None"], "answer": "To access global variables"},
{"question": "How can you iterate through a list with index?", "options": ["for i, value in enumerate(list)", "for i in range(len(list))", "None"], "answer": "for i, value in enumerate(list)"},
{"question": "What is the output of print('Hello'.upper())?", "options": ["HELLO", "Hello", "hello"], "answer": "HELLO"},
{"question": "How do you remove an item from a list by value?", "options": ["list.remove(value)", "list.pop(value)", "None"], "answer": "list.remove(value)"},
{"question": "What does the zip() function do?", "options": ["Combines lists", "Filters lists", "None"], "answer": "Combines lists"},
{"question": "What is the purpose of the assert statement?", "options": ["To check conditions", "To display output", "None"], "answer": "To check conditions"},
{"question": "How do you create a set in Python?", "options": ["set()", "{}", "Both"], "answer": "Both"},
{"question": "What is the difference between append() and extend()?", "options": ["Adding single vs multiple items", "Type of item added", "None"], "answer": "Adding single vs multiple items"},
{"question": "What is a docstring?", "options": ["Documentation string", "Error message", "None"], "answer": "Documentation string"},
{"question": "How do you sort a dictionary by value?", "options": ["sorted(dict.items())", "dict.sort()", "None"], "answer": "sorted(dict.items())"},
{"question": "What is the purpose of the pass statement?", "options": ["Placeholder for future code", "To exit a loop", "None"], "answer": "Placeholder for future code"},
{"question": "What is the use of the in keyword?", "options": ["To check membership", "To iterate", "None"], "answer": "To check membership"},
{"question": "What is the output of print(bool([]))?", "options": ["False", "True", "None"], "answer": "False"},
{"question": "How do you copy a list in Python?", "options": ["list.copy()", "list[:] or list.copy()", "None"], "answer": "list[:] or list.copy()"},
{"question": "What is the output of print(3 == 3.0)?", "options": ["True", "False", "None"], "answer": "True"},
],
"Data Science": [
{"question": "What is the purpose of data normalization?", "options": ["To scale data", "To clean data", "None"], "answer": "To scale data"},
{"question": "What does EDA stand for?", "options": ["Exploratory Data Analysis", "Effective Data Analytics", "None"], "answer": "Exploratory Data Analysis"},
{"question": "What library is commonly used for data manipulation in Python?", "options": ["NumPy", "Pandas", "Matplotlib"], "answer": "Pandas"},
{"question": "What is the difference between supervised and unsupervised learning?", "options": ["Labeled vs Unlabeled data", "Type of algorithms", "None"], "answer": "Labeled vs Unlabeled data"},
{"question": "What is a confusion matrix used for?", "options": ["Evaluating classification models", "Data visualization", "None"], "answer": "Evaluating classification models"},
{"question": "What is overfitting?", "options": ["Model learns noise", "Underfitting", "None"], "answer": "Model learns noise"},
{"question": "How can you handle missing values in a dataset?", "options": ["Drop, fill, or interpolate", "Ignore", "None"], "answer": "Drop, fill, or interpolate"},
{"question": "What does PCA stand for?", "options": ["Principal Component Analysis", "Partial Correlation Analysis", "None"], "answer": "Principal Component Analysis"},
{"question": "What is the purpose of feature scaling?", "options": ["To normalize data", "To reduce dimensionality", "None"], "answer": "To normalize data"},
{"question": "What is a scatter plot used for?", "options": ["Showing relationships", "Data distribution", "None"], "answer": "Showing relationships"},
{"question": "What is the difference between classification and regression?", "options": ["Categorical vs Continuous", "Type of output", "None"], "answer": "Categorical vs Continuous"},
{"question": "What library is used for data visualization in Python?", "options": ["Matplotlib", "Pandas", "NumPy"], "answer": "Matplotlib"},
{"question": "What does 'AI' stand for?", "options": ["Artificial Intelligence", "Automated Interface", "Applied Informatics"], "answer": "Artificial Intelligence"},
{"question": "What is a hypothesis test?", "options": ["Statistical test", "Data cleaning method", "None"], "answer": "Statistical test"},
{"question": "What is the purpose of cross-validation?", "options": ["Model evaluation", "Data cleaning", "None"], "answer": "Model evaluation"},
{"question": "What is a time series analysis?", "options": ["Analyzing data over time", "Data distribution", "None"], "answer": "Analyzing data over time"},
{"question": "What does the term 'bias' refer to in machine learning?", "options": ["Error due to assumptions", "Data imbalance", "Both"], "answer": "Both"},
{"question": "What is a decision tree?", "options": ["Model for classification", "Data visualization", "None"], "answer": "Model for classification"},
{"question": "What is the purpose of the K-means algorithm?", "options": ["Clustering", "Classification", "None"], "answer": "Clustering"},
{"question": "What is A/B testing?", "options": ["Comparing two versions", "Data cleaning", "None"], "answer": "Comparing two versions"},
{"question": "What does the term 'outlier' mean?", "options": ["An extreme value", "Average value", "None"], "answer": "An extreme value"},
{"question": "How can you determine the correlation between two variables?", "options": ["Using correlation coefficient", "Visual inspection", "None"], "answer": "Using correlation coefficient"},
{"question": "What is the significance of the ROC curve?", "options": ["Evaluating classifiers", "Data visualization", "None"], "answer": "Evaluating classifiers"},
{"question": "What is a categorical variable?", "options": ["Qualitative variable", "Quantitative variable", "None"], "answer": "Qualitative variable"},
{"question": "What is the role of a data engineer?", "options": ["Data pipeline construction", "Data analysis", "None"], "answer": "Data pipeline construction"},
{"question": "How do you evaluate a machine learning model?", "options": ["Using metrics", "Visual inspection", "None"], "answer": "Using metrics"},
{"question": "What is the purpose of feature engineering?", "options": ["Improving model performance", "Data cleaning", "None"], "answer": "Improving model performance"},
{"question": "What is a linear regression model?", "options": ["Predicts continuous values", "Classifies data", "None"], "answer": "Predicts continuous values"},
{"question": "What are the assumptions of linear regression?", "options": ["Linearity, independence", "Normality, homoscedasticity", "Both"], "answer": "Both"},
{"question": "What does the term 'ensemble learning' mean?", "options": ["Combining multiple models", "Single model", "None"], "answer": "Combining multiple models"},
{"question": "What is a random forest?", "options": ["Ensemble of decision trees", "Single decision tree", "None"], "answer": "Ensemble of decision trees"},
{"question": "What is the purpose of data visualization?", "options": ["To convey information", "To clean data", "None"], "answer": "To convey information"},
{"question": "What is the difference between classification and clustering?", "options": ["Labeled vs Unlabeled data", "Model type", "None"], "answer": "Labeled vs Unlabeled data"},
{"question": "What does an F1 score measure?", "options": ["Model accuracy", "Balance between precision and recall", "None"], "answer": "Balance between precision and recall"},
{"question": "What is feature selection?", "options": ["Choosing important features", "Data cleaning", "None"], "answer": "Choosing important features"},
{"question": "What is the purpose of clustering?", "options": ["Grouping similar items", "Data cleaning", "None"], "answer": "Grouping similar items"},
{"question": "What is k-fold cross-validation?", "options": ["Dividing data into k subsets", "Data cleaning", "None"], "answer": "Dividing data into k subsets"},
{"question": "What is the output of linear regression?", "options": ["A line", "A decision tree", "None"], "answer": "A line"},
],
"Generative AI": [
{"question": "What is the primary function of Generative AI models?", "options": ["To generate new data", "To classify data", "To clean data"], "answer": "To generate new data"},
{"question": "What does GAN stand for in the context of Generative AI?", "options": ["Generative Adversarial Network", "Generalized Automated Network", "None"], "answer": "Generative Adversarial Network"},
{"question": "What is the role of a generator and discriminator in GANs?", "options": ["Generator creates data, Discriminator evaluates it", "Generator evaluates data, Discriminator creates it", "None"], "answer": "Generator creates data, Discriminator evaluates it"},
{"question": "How does a Variational Autoencoder (VAE) differ from a GAN?", "options": ["VAE generates data probabilistically", "GAN uses a single model", "None"], "answer": "VAE generates data probabilistically"},
{"question": "What is the purpose of a Latent Space in a Generative model?", "options": ["To represent data in a compressed form", "To clean data", "None"], "answer": "To represent data in a compressed form"},
{"question": "How does a Transformer architecture contribute to Generative AI?", "options": ["By processing sequential data", "By generating images", "None"], "answer": "By processing sequential data"},
{"question": "What is a Markov Chain Monte Carlo (MCMC) used for in Generative AI?", "options": ["For generating synthetic data", "For data clustering", "None"], "answer": "For generating synthetic data"},
{"question": "How does a text-to-image Generative model work?", "options": ["By converting textual descriptions to visual content", "By using data augmentation", "None"], "answer": "By converting textual descriptions to visual content"},
{"question": "What are some real-world applications of Generative AI in creative industries?", "options": ["Art generation", "Music composition", "Both"], "answer": "Both"},
{"question": "What is the significance of the attention mechanism in Generative AI models?", "options": ["It helps the model focus on relevant parts of data", "It improves data cleaning", "None"], "answer": "It helps the model focus on relevant parts of data"},
{"question": "What are the ethical concerns associated with Generative AI?", "options": ["Deepfakes", "Copyright infringement", "Both"], "answer": "Both"},
{"question": "How can Generative AI be used in content creation (e.g., art, music, and writing)?", "options": ["By generating new works based on patterns", "By analyzing existing content", "None"], "answer": "By generating new works based on patterns"},
{"question": "What is the role of reinforcement learning in Generative AI models?", "options": ["It helps the model learn from feedback", "It improves data scaling", "None"], "answer": "It helps the model learn from feedback"},
{"question": "What are the challenges in training large-scale Generative AI models?", "options": ["Computational resources", "Model complexity", "Both"], "answer": "Both"},
{"question": "How does GPT (Generative Pretrained Transformer) function in text generation?", "options": ["By using pre-trained knowledge", "By using data from the web", "None"], "answer": "By using pre-trained knowledge"},
{"question": "What is the significance of unsupervised learning in the context of Generative AI?", "options": ["It allows for learning without labeled data", "It requires labeled data", "None"], "answer": "It allows for learning without labeled data"},
{"question": "What are some risks of deepfake generation in Generative AI?", "options": ["Misinformation", "Privacy invasion", "Both"], "answer": "Both"},
{"question": "How does a Diffusion Model in Generative AI generate images?", "options": ["By iteratively refining images", "By using neural networks", "None"], "answer": "By iteratively refining images"},
{"question": "What is the difference between a Generative model and a Discriminative model?", "options": ["Generative models generate data", "Discriminative models generate data", "None"], "answer": "Generative models generate data"},
{"question": "What are the key differences between GANs and VAEs in generating images?", "options": ["GANs use adversarial networks, VAEs use probabilistic modeling", "GANs and VAEs are identical", "None"], "answer": "GANs use adversarial networks, VAEs use probabilistic modeling"},
{"question": "How do generative models contribute to data augmentation in machine learning?", "options": ["By creating new synthetic data", "By labeling data", "None"], "answer": "By creating new synthetic data"},
{"question": "What are some limitations of Generative AI in text generation?", "options": ["Lack of Human Contextual Understanding", "Overfitting", "None"], "answer": "Lack of Human Contextual Understanding"},
{"question": "How can Generative AI be applied in drug discovery and biology?", "options": ["By predicting molecular structures", "By generating new drugs", "None"], "answer": "By predicting molecular structures"},
{"question": "What is the concept of \"sampling\" in the context of Generative AI?", "options": ["Selecting data points to generate new samples", "Cleaning data", "None"], "answer": "Selecting data points to generate new samples"},
{"question": "How does reinforcement learning improve the performance of generative models?", "options": ["By encouraging exploration", "By reducing data bias", "None"], "answer": "By encouraging exploration"},
{"question": "What are the applications of GANs in computer vision?", "options": ["Image generation", "Image enhancement", "Both"], "answer": "Both"},
{"question": "How do large pre-trained models like GPT-3 enable text generation?", "options": ["By leveraging vast amounts of data", "By using unsupervised learning", "None"], "answer": "By leveraging vast amounts of data"},
{"question": "What role do neural networks play in Generative AI?", "options": ["They model complex data relationships", "They clean data", "None"], "answer": "They model complex data relationships"},
{"question": "What are some challenges in ensuring diversity in generated outputs by Generative AI?", "options": ["Mode collapse", "Lack of Human Contextual Understanding", "Both"], "answer": "Both"},
{"question": "How does Conditional Generative AI work in generating targeted outputs?", "options": ["By conditioning on specific inputs", "By using unsupervised learning", "None"], "answer": "By conditioning on specific inputs"},
{"question": "What is the difference between a Generative AI model and a regular neural network?", "options": ["Generative AI models create data", "Both are the same", "None"], "answer": "Generative AI models create data"},
{"question": "What is the concept of “mode collapse” in GANs?", "options": ["Generator produces limited outputs", "Discriminator fails to identify fake data", "None"], "answer": "Generator produces limited outputs"},
{"question": "What are some tools used to evaluate the performance of a Generative AI model?", "options": ["Inception Score", "Fréchet Inception Distance", "Both"], "answer": "Both"},
{"question": "How can Generative AI assist in designing new architectures or solutions?", "options": ["By proposing new designs based on data patterns", "By cleaning data", "None"], "answer": "By proposing new designs based on data patterns"},
{"question": "How does text-to-speech generation work in Generative AI models?", "options": ["By converting text to audible speech", "By generating text-based content", "None"], "answer": "By converting text to audible speech"},
{"question": "What are the implications of Generative AI for intellectual property and copyright?", "options": ["Copyright ownership of generated content", "Unclear legal framework", "Both"], "answer": "Both"},
{"question": "How can Generative AI models be used to create synthetic data for training?", "options": ["By generating new data similar to real data", "By cleaning existing data", "None"], "answer": "By generating new data similar to real data"},
{"question": "What is the role of the \"latent vector\" in Generative AI models like GANs?", "options": ["It represents the compressed input data", "It generates random noise", "None"], "answer": "It represents the compressed input data"},
{"question": "What is the role of fine-tuning in generative models like GPT-3?", "options": ["It helps adapt the model to specific tasks", "It increases model size", "None"], "answer": "It helps adapt the model to specific tasks"},
{"question": "How does transfer learning enhance the capabilities of Generative AI models?", "options": ["By leveraging pre-trained knowledge", "By increasing model complexity", "None"], "answer": "By leveraging pre-trained knowledge"}
],
"Agentic AI": [
{"question": "What does the term “Agentic AI” refer to?", "options": ["AI with autonomous decision-making capabilities", "AI for data classification", "None"], "answer": "AI with autonomous decision-making capabilities"},
{"question": "How do autonomous agents interact with their environment in Agentic AI?", "options": ["By perceiving and acting based on feedback", "By collecting data", "None"], "answer": "By perceiving and acting based on feedback"},
{"question": "What is the key difference between reactive AI and Agentic AI?", "options": ["Agentic AI makes autonomous decisions", "Reactive AI makes autonomous decisions", "None"], "answer": "Agentic AI makes autonomous decisions"},
{"question": "How does decision-making occur in Agentic AI systems?", "options": ["Based on feedback and goal optimization", "By following pre-defined rules", "None"], "answer": "Based on feedback and goal optimization"},
{"question": "What is reinforcement learning, and how is it used in Agentic AI?", "options": ["A learning method based on rewards and penalties", "A supervised learning technique", "None"], "answer": "A learning method based on rewards and penalties"},
{"question": "How do Agentic AI systems handle multi-agent environments?", "options": ["By collaborating or competing with other agents", "By acting independently", "None"], "answer": "By collaborating or competing with other agents"},
{"question": "What is the concept of a reward signal in Agentic AI?", "options": ["A feedback used to guide decision-making", "A measure of performance", "None"], "answer": "A feedback used to guide decision-making"},
{"question": "What is the role of exploration and exploitation in Agentic AI?", "options": ["Exploration seeks new knowledge, Exploitation maximizes reward", "Both are the same", "None"], "answer": "Exploration seeks new knowledge, Exploitation maximizes reward"},
{"question": "How does the concept of bounded rationality apply to Agentic AI?", "options": ["AI agents make optimal decisions within limits", "AI agents always make the best decisions", "None"], "answer": "AI agents make optimal decisions within limits"},
{"question": "How do Agentic AI systems optimize their actions to achieve long-term goals?", "options": ["By evaluating actions over time", "By following fixed rules", "None"], "answer": "By evaluating actions over time"},
{"question": "What challenges do Agentic AI systems face when dealing with ambiguity or uncertainty?", "options": ["Limited information and unpredictable outcomes", "Too much data", "None"], "answer": "Limited information and unpredictable outcomes"},
{"question": "How do ethics and responsibility play a role in the design of Agentic AI?", "options": ["Ensuring AI decisions align with human values", "Reducing computational resources", "None"], "answer": "Ensuring AI decisions align with human values"},
{"question": "What is the difference between deliberative and reactive decision-making in Agentic AI?", "options": ["Deliberative involves planning, Reactive involves immediate responses", "Both are the same", "None"], "answer": "Deliberative involves planning, Reactive involves immediate responses"},
{"question": "What is the concept of “autonomy” in Agentic AI systems?", "options": ["Ability to make independent decisions", "Ability to collect data", "None"], "answer": "Ability to make independent decisions"},
{"question": "How does reward shaping affect the behavior of Agentic AI?", "options": ["It modifies the reward signal to guide behavior", "It removes negative rewards", "None"], "answer": "It modifies the reward signal to guide behavior"},
{"question": "What are some key examples of Agentic AI in real-world applications?", "options": ["Autonomous vehicles", "Chatbots", "Both"], "answer": "Both"},
{"question": "How can Agentic AI systems learn from past experiences to improve future decisions?", "options": ["Through reinforcement learning", "By observing human actions", "None"], "answer": "Through reinforcement learning"},
{"question": "What are some of the safety concerns with fully autonomous Agentic AI?", "options": ["Unintended actions", "Lack of Human Oversight", "Both"], "answer": "Both"},
{"question": "What techniques are used to prevent agent misbehavior in Agentic AI systems?", "options": ["Constraints, monitoring, and reward adjustments", "None", "Both"], "answer": "Constraints, monitoring, and reward adjustments"}
]
}
def main():
st.set_page_config(page_title="Smart Quiz Generator", page_icon="🧠", layout="centered")
st.markdown("""
<style>
/* Main Content Area Background */
.stApp {
background-image: url('https://images.rawpixel.com/image_800/czNmcy1wcml2YXRlL3Jhd3BpeGVsX2ltYWdlcy93ZWJzaXRlX2NvbnRlbnQvbHIvcm0yODEtYWRqLTA1NC1qb2I1OTguanBn.jpg');
background-size: cover;
background-position: center;
background-attachment: fixed;
min-height: 100vh;
color: darkred;
}
/* Sidebar Background */
section[data-testid="stSidebar"] {
background-image: url('https://img.freepik.com/premium-photo/hand-drawn-abstract-background-design_481527-40048.jpg');
background-size: cover;
background-position: center;
}
</style>
""", unsafe_allow_html=True)
# Sidebar Profile Links
st.sidebar.markdown("## 🎉Author: Maria Nadeem🌟")
st.sidebar.markdown("## 🔗 Connect With Me")
st.sidebar.markdown("""
<div>
<a href="https://github.com/marianadeem755" target="_blank">
<img src="https://cdn-icons-png.flaticon.com/512/25/25231.png" width="30px"> GitHub
</a><br><br>
<a href="https://www.kaggle.com/marianadeem755" target="_blank">
<img src="https://cdn4.iconfinder.com/data/icons/logos-and-brands/512/189_Kaggle_logo_logos-512.png" width="30px"> Kaggle
</a><br><br>
<a href="mailto:marianadeem755@gmail.com">
<img src="https://cdn-icons-png.flaticon.com/512/561/561127.png" width="30px"> Email
</a><br><br>
<a href="https://huggingface.co/maria355" target="_blank">
<img src="https://huggingface.co/front/assets/huggingface_logo-noborder.svg" width="30px"> Hugging Face
</a>
</div>
""", unsafe_allow_html=True)
# Sidebar domain selection
st.sidebar.markdown("## 🎯 Choose a Focus Area")
selected_domain = st.sidebar.selectbox("Select your Expertise", list(questions.keys()))
st.title("🧠 Quiz Generator")
# Initialize session state
if 'quiz_started' not in st.session_state:
st.session_state.quiz_started = False
if 'current_question_index' not in st.session_state:
st.session_state.current_question_index = 0
if 'score' not in st.session_state:
st.session_state.score = 0
if 'selected_category' not in st.session_state:
st.session_state.selected_category = None
if 'answered' not in st.session_state:
st.session_state.answered = False
if 'user_answer' not in st.session_state:
st.session_state.user_answer = None
if 'quiz_questions' not in st.session_state:
st.session_state.quiz_questions = []
if 'start_time' not in st.session_state:
st.session_state.start_time = None
if not st.session_state.quiz_started:
st.subheader("Get ready to test your knowledge! 🎯")
if st.button("Start Quiz"):
st.session_state.quiz_started = True
st.session_state.selected_category = selected_domain
st.session_state.quiz_questions = random.sample(
questions[selected_domain],
min(30, len(questions[selected_domain]))
)
st.session_state.current_question_index = 0
st.session_state.score = 0
st.session_state.start_time = time.time()
st.rerun()
else:
# Display current question
if st.session_state.current_question_index < len(st.session_state.quiz_questions):
current_question = st.session_state.quiz_questions[st.session_state.current_question_index]
st.subheader(f"Question {st.session_state.current_question_index + 1}")
st.markdown(f"### {current_question['question']}")
elapsed_time = time.time() - st.session_state.start_time
remaining_time = max(60 - int(elapsed_time), 0)
# Timer display
progress = st.progress(0)
progress.progress((60 - remaining_time) / 60)
time_display = st.empty()
time_display.markdown(f"⏳ **Time left: {remaining_time} seconds**")
if not st.session_state.answered:
user_answer = st.radio(
"Select your answer:",
current_question['options'],
key=f"question_{st.session_state.current_question_index}"
)
submit = st.button("Submit Answer ✅")
if submit:
st.session_state.answered = True
st.session_state.user_answer = user_answer
if user_answer == current_question['answer']:
st.session_state.score += 1
st.success("✅ Correct Answer!")
else:
st.error(f"❌ Wrong Answer! Correct: **{current_question['answer']}**")
# If time's up and not answered yet
if remaining_time == 0 and not st.session_state.answered:
st.warning("⏰ Time's up!")
st.session_state.answered = True
st.session_state.user_answer = None
# Only show "Next" button AFTER answered OR timeout
if st.session_state.answered:
next_question = st.button("Next Question ➡️")
if next_question:
st.session_state.current_question_index += 1
st.session_state.answered = False
st.session_state.user_answer = None
st.session_state.start_time = time.time() # reset timer
st.rerun()
# Refresh page every second ONLY if not answered yet
if not st.session_state.answered and remaining_time > 0:
time.sleep(1)
st.rerun()
else:
# Quiz completed
st.success(f"🏁 Quiz completed! Your final score: {st.session_state.score}/{len(st.session_state.quiz_questions)}")
st.balloons()
if st.button("Restart Quiz 🔄"):
for key in list(st.session_state.keys()):
del st.session_state[key]
st.rerun()
if __name__ == "__main__":
main() |