A fully dynamic and interactive quiz application built using HTML and vanilla JavaScript. This project helps users test their JavaScript knowledge with a clean UI, a timer-based challenge, sound effects, and a score summary with animations.
- π― 15 JavaScript Questions β Carefully selected MCQs to test core JS concepts.
- β±οΈ 60-Second Timer β Each question has a countdown to increase the challenge.
- π±οΈ Interactive UI β Click to answer, and feedback is shown instantly.
- π Sound Effects β Click, correct, and wrong answer sounds.
- β¨ Score Screen β Shows results with feedback and celebration animation.
- π Fireworks Animation β On achieving a perfect score.
- β Option Locking β Once answered, options disable with dimmed visuals.
| Start Screen | Quiz Screen | Result Screen |
|---|---|---|
- HTML β Structure of the app
- CSS β Styling (custom color themes and animations)
- JavaScript (ES6) β Complete logic and DOM manipulation
- Font Awesome β For icons
- MP3 Audio Files β Sound effects
- Fireworks JS / CSS Animation β For result celebration
quiz-app/
β
βββ index.html
βββ script.js
β βββ sounds/
β β βββ click.mp3
β β βββ clapping.mp3
β β βββ correct.mp3
β β βββ wrong.mp3
β β βββ failed.mp3
β βββ screenshots/
β β βββ startscreen.png
β β βββ quizscreen.png
β β βββ scorescreen.png
- Start Screen: User clicks "Start the Challenge" to begin.
- Question Rendering: Questions and options are rendered from an object dynamically.
- Timer Logic: 60 seconds per question, resets per new one.
- Scoring: Correct answers increase score. Once submitted, others are disabled.
- Result Page: Shows score with dynamic feedback and optional fireworks for top scorers.
- DOM manipulation using
createElement,appendChild,textContent, and styling. - Managing state (e.g.,
score,currentQuestionIndex) across the app. - Handling user interactions, event listeners, and timers.
- Preventing double scoring using flag variables.
- Creating dynamic, responsive UI with animations and sound effects.
- Font Awesome β Icons
- Pixabay) β Sound effects
- Add difficulty levels (Easy, Medium, Hard)
- Add timer bar animation
- Store high scores using
localStorage - Add leaderboard or shareable results
- Mobile responsiveness and dark mode
Live Link - Live Link
Shruti Chandra
Frontend Enthusiast | Passionate about learning through building.