diff --git a/app/routes/ai-quiz.tsx b/app/routes/ai-quiz.tsx index dafbf8b..3ef826d 100644 --- a/app/routes/ai-quiz.tsx +++ b/app/routes/ai-quiz.tsx @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; import { Progress } from 'antd'; - function letterCount() { const element = document.getElementById('queryMessage') as HTMLInputElement | null; if (element) { @@ -15,9 +14,30 @@ function letterCount() { } } +function toggleSection() { + let loadingSection = document.getElementById('loadingSection'); + let generateQuiz = document.getElementById('generateQuiz'); + + if (loadingSection && generateQuiz) { + // Check the current state and toggle + if (getComputedStyle(loadingSection).display === 'none') { + // Show loadingSection and hide generateQuiz + loadingSection.style.display = 'block'; + generateQuiz.style.display = 'none'; + } else { + // Hide loadingSection and show generateQuiz + loadingSection.style.display = 'none'; + generateQuiz.style.display = 'block'; + } + } else { + console.error('One or both of the elements are missing.'); + } +} + + export default function Index() { const [percent, setPercent] = useState(0); - const [secondsLeft, setSecondsLeft] = useState(30); + const [secondsLeft, setSecondsLeft] = useState(5); useEffect(() => { const interval = setInterval(() => { @@ -26,9 +46,8 @@ export default function Index() { clearInterval(interval); return 100; } - return Math.round(prevPercent + (100 / 30)); // Round percentage + return Math.round(prevPercent + (100 / 5)); // Round percentage }); - setSecondsLeft((prevSeconds) => { if (prevSeconds <= 1) { clearInterval(interval); @@ -40,7 +59,6 @@ export default function Index() { return () => clearInterval(interval); }, []); - return ( <>
@@ -52,8 +70,8 @@ export default function Index() {
- -
+ +
@@ -118,17 +136,16 @@ export default function Index() {
- +
-
-
+
+

Generating Quiz

This usually takes {secondsLeft} seconds

- -
- +
+
diff --git a/app/routes/quiz.tsx b/app/routes/quiz.tsx new file mode 100644 index 0000000..2a899b4 --- /dev/null +++ b/app/routes/quiz.tsx @@ -0,0 +1,206 @@ +import { useState, useEffect } from 'react'; + +// Sample questions JSON data +const questionsData = [ + { + "id": 1, + "question": "What is the capital of France?", + "options": ["Berlin", "Madrid", "Paris", "Rome"], + "answer": "Paris" + }, + { + "id": 2, + "question": "Which planet is known as the Red Planet?", + "options": ["Earth", "Mars", "Jupiter", "Saturn"], + "answer": "Mars" + }, + { + "id": 3, + "question": "What is the chemical symbol for gold?", + "options": ["Au", "Ag", "Pb", "Fe"], + "answer": "Au" + }, + { + "id": 4, + "question": "Who wrote 'To Kill a Mockingbird'?", + "options": ["Harper Lee", "Mark Twain", "Ernest Hemingway", "J.K. Rowling"], + "answer": "Harper Lee" + }, + { + "id": 5, + "question": "What is the largest ocean on Earth?", + "options": ["Atlantic Ocean", "Indian Ocean", "Arctic Ocean", "Pacific Ocean"], + "answer": "Pacific Ocean" + }, + { + "id": 6, + "question": "Which element has the atomic number 1?", + "options": ["Helium", "Hydrogen", "Oxygen", "Carbon"], + "answer": "Hydrogen" + }, + { + "id": 7, + "question": "In which year did the Titanic sink?", + "options": ["1912", "1905", "1898", "1923"], + "answer": "1912" + }, + { + "id": 8, + "question": "Who is the author of '1984'?", + "options": ["George Orwell", "Aldous Huxley", "Ray Bradbury", "J.D. Salinger"], + "answer": "George Orwell" + }, + { + "id": 9, + "question": "What is the hardest natural substance on Earth?", + "options": ["Gold", "Platinum", "Diamond", "Iron"], + "answer": "Diamond" + }, + { + "id": 10, + "question": "What is the largest planet in our solar system?", + "options": ["Earth", "Saturn", "Neptune", "Jupiter"], + "answer": "Jupiter" + }, + { + "id": 11, + "question": "What is the main ingredient in guacamole?", + "options": ["Tomato", "Avocado", "Pepper", "Onion"], + "answer": "Avocado" + }, + { + "id": 12, + "question": "Which country is known as the Land of the Rising Sun?", + "options": ["China", "Japan", "Thailand", "South Korea"], + "answer": "Japan" + }, + { + "id": 13, + "question": "What is the smallest prime number?", + "options": ["1", "2", "3", "5"], + "answer": "2" + }, + { + "id": 14, + "question": "Who painted the Mona Lisa?", + "options": ["Vincent van Gogh", "Leonardo da Vinci", "Pablo Picasso", "Claude Monet"], + "answer": "Leonardo da Vinci" + }, + { + "id": 15, + "question": "What is the capital city of Australia?", + "options": ["Sydney", "Melbourne", "Canberra", "Brisbane"], + "answer": "Canberra" + }, + { + "id": 16, + "question": "Which gas do plants primarily use for photosynthesis?", + "options": ["Oxygen", "Nitrogen", "Carbon Dioxide", "Hydrogen"], + "answer": "Carbon Dioxide" + }, + { + "id": 17, + "question": "What is the boiling point of water in Celsius?", + "options": ["90°C", "100°C", "110°C", "120°C"], + "answer": "100°C" + }, + { + "id": 18, + "question": "Which language is primarily spoken in Brazil?", + "options": ["Spanish", "Portuguese", "French", "English"], + "answer": "Portuguese" + }, + { + "id": 19, + "question": "What is the smallest unit of life?", + "options": ["Tissue", "Organ", "Cell", "Organism"], + "answer": "Cell" + }, + { + "id": 20, + "question": "Who developed the theory of relativity?", + "options": ["Isaac Newton", "Galileo Galilei", "Albert Einstein", "Niels Bohr"], + "answer": "Albert Einstein" + }, + { + "id": 21, + "question": "In what year did World War II end?", + "options": ["1945", "1944", "1946", "1943"], + "answer": "1945" + } +]; + + + +export default function Index() { + const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0); + const [timeRemaining, setTimeRemaining] = useState(60); // 60 seconds countdown + const [intervalId, setIntervalId] = useState(null); + + useEffect(() => { + // Start the countdown timer + const id = setInterval(() => { + setTimeRemaining(prevTime => { + if (prevTime <= 1) { + clearInterval(id); + return 0; + } + return prevTime - 1; + }); + }, 1000); + + setIntervalId(id); + + // Clear interval on component unmount + return () => { + if (intervalId) { + clearInterval(intervalId); + } + }; + }, [intervalId]); + + const handleNextQuestion = () => { + setCurrentQuestionIndex(prevIndex => (prevIndex + 1) % questionsData.length); + }; + + const currentQuestion = questionsData[currentQuestionIndex]; + + return ( + <> +
+
+

+
+

Take an AI Generative Quiz

+

Convert any text into an interactive quiz session

+
+
+
+
+ {/* this div for margin top */} +
+
+

Time remaining: {timeRemaining} seconds

+
+ +
+
+

{`Q${currentQuestion.id}. ${currentQuestion.question}`}

+
+ {currentQuestion.options.map((option, index) => ( +
+ +
+ ))} +
+
+ +
+
+
+ + ); + } \ No newline at end of file diff --git a/app/routes/start-quiz.tsx b/app/routes/start-quiz.tsx new file mode 100644 index 0000000..633bf35 --- /dev/null +++ b/app/routes/start-quiz.tsx @@ -0,0 +1,28 @@ +export default function Index(){ + return( + <> +
+
+

+
+

Take an AI Generative Quiz

+

Convert any text into an interactive quiz session

+
+
+
+ + +
+
+ +

Are You Ready to take this Quiz?

+

Test Yourself and earn points for what you already know.

+

10 Questions30 minutes

+
+ +
+
+
+ + ) +} \ No newline at end of file diff --git a/public/assets/ai-quiz.css b/public/assets/ai-quiz.css new file mode 100644 index 0000000..e69de29 diff --git a/public/assets/image1.png b/public/assets/image1.png new file mode 100644 index 0000000..8508e1e Binary files /dev/null and b/public/assets/image1.png differ