Skip to content

A fully dynamic and interactive quiz application built using HTML and vanilla JavaScript.

Notifications You must be signed in to change notification settings

techieshruti/Quiz-App-with-Timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

41 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”₯ Ultimate JavaScript Quiz App

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.


πŸš€ Features

  • 🎯 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.

πŸ“Έ Screenshots

Start Screen Quiz Screen Result Screen
Start Quiz Result

πŸ› οΈ Tech Stack

  • 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

πŸ“ Folder Structure

quiz-app/
β”‚
β”œβ”€β”€ index.html
β”œβ”€β”€ script.js
β”‚ β”œβ”€β”€ sounds/
β”‚ β”‚ β”œβ”€β”€ click.mp3
β”‚ β”‚ β”œβ”€β”€ clapping.mp3
β”‚ β”‚ β”œβ”€β”€ correct.mp3
β”‚ β”‚ β”œβ”€β”€ wrong.mp3
β”‚ β”‚ └── failed.mp3
β”‚ β”œβ”€β”€ screenshots/
β”‚ β”‚ β”œβ”€β”€ startscreen.png
β”‚ β”‚ β”œβ”€β”€ quizscreen.png
β”‚ β”‚ └── scorescreen.png

🧠 How It Works

  1. Start Screen: User clicks "Start the Challenge" to begin.
  2. Question Rendering: Questions and options are rendered from an object dynamically.
  3. Timer Logic: 60 seconds per question, resets per new one.
  4. Scoring: Correct answers increase score. Once submitted, others are disabled.
  5. Result Page: Shows score with dynamic feedback and optional fireworks for top scorers.

πŸ§ͺ Lessons Learned

  • 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.

πŸ”Š Credits


πŸ“Œ Future Improvements

  • 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

βœ… Demo

Live Link - Live Link


πŸ™Œ Author

Shruti Chandra
Frontend Enthusiast | Passionate about learning through building.


About

A fully dynamic and interactive quiz application built using HTML and vanilla JavaScript.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published