A modern, feature-rich quiz application with sound effects, advanced timer tracking, checkpoint system, and modular JavaScript architecture. Built for an engaging and interactive learning experience.
- Animated Brand Loading: Eye-catching letter-by-letter animation with shimmer effects
- Progress Bar: Visual feedback during initial load (3.5s duration)
- Ready Modal: Pre-quiz warning about sound effects with Yes/No options
- Smooth Transitions: Fade effects between loading and main application
- 4 Sound Types: Opening, correct answer, wrong answer, and checkpoint celebration
- Toggle Control: Fixed top-right button to enable/disable sounds
- Persistent Settings: Sound preference saved to localStorage
- Visual Feedback: Icons change based on sound state (green on / red off)
- Auto-play Prevention Handling: Graceful fallback for browser restrictions
- Real-time Display: Running timer in MM:SS format during quiz
- Per-Question Tracking: Records time spent on each individual question
- Comprehensive Statistics:
- Total quiz time
- Average time per question
- Questions answered count
- Individual question time breakdown
- Fastest and slowest questions
- Results Display: Detailed timing analysis on completion screen
- Checkpoint System: Progress saved every 5 consecutive correct answers
- Smart Wrong Answer Handling:
- Return to last checkpoint on wrong answer (normal mode)
- Stay on question in review mode
- Up to 4 attempts per question
- Skip option after 4 attempts
- Streak Tracking: Visual counter for consecutive correct answers
- Question Randomization: Shuffles questions and answer options
- Unique Answer Tracking: Prevents duplicate counting of correct/wrong answers
- Review Mode: Practice wrong answers after quiz completion
- Live Stats Display:
- Current question number / total questions
- Consecutive streak counter
- Current checkpoint marker
- Correct and wrong answer counts
- Results Screen:
- Final score breakdown
- Complete timer statistics
- Per-question time analysis
- Review mistakes button (if applicable)
- Multiple Input Methods:
- Manual CSV file upload
- Pre-loaded question banks (IS, OS, Network)
- Download preset CSV files
- CSV Format Support: Standard 6-column format (Question, 4 Options, Correct Answer)
- Validation: Automatic format checking and error handling
- File Modal: Easy-to-use preset file selection interface
- Dark Theme: Professionally designed dark mode interface
- Glassmorphism: Subtle backdrop blur and transparency effects
- Responsive Layout: Optimized for desktop, tablet, and mobile
- Custom Typography: Inter font with variable weights and sizes
- Design Tokens: Comprehensive CSS variable system for consistency
- Smooth Animations: Premium transitions and hover effects
- Tailwind CSS Integration: Utility-first styling with custom extensions
- Mobile-Friendly: Touch-optimized buttons and layouts
- Breakpoint System: Adaptive design at 480px, 768px, and larger
- Minimum Touch Targets: 48px minimum height for buttons
- Keyboard Accessible: Full keyboard navigation support
- Screen Reader Ready: Semantic HTML structure
The application uses a clean, modular architecture with separated concerns:
- Manages initial 3.5s loading screen
- Handles fade-out transition
- Removes loading screen from DOM after animation
- Manages 4 sound effect types
- Toggle functionality with icon updates
- localStorage persistence for sound preferences
- Graceful error handling for audio playback
- Quiz timer with interval updates
- Per-question time recording
- Statistical calculations (total, average, fastest, slowest)
- Formatted time display utilities
- CSV parsing with validation
- URL-based file loading (fetch API)
- FileReader for uploaded files
- Question count and retrieval methods
- DOM element management
- Screen transitions (upload, quiz, results)
- Question and answer rendering
- Statistics display updates
- Feedback messages and animations
- Results screen with detailed breakdowns
- Core quiz logic and state management
- Answer validation
- Checkpoint system (every 5 correct)
- Streak tracking
- Wrong question collection
- Review mode support
- Question shuffling algorithm
- Initializes all modules
- Sets up event listeners
- Coordinates module communication
- Handles all user interactions (start, answer, skip, restart, review)
All modules export singleton instances that communicate through:
audioManager- Audio controltimerManager- Timer controlfileHandler- File operationsuiManager- UI updatesquizManager- Quiz state
question-randomizer/
โโโ index.html # Main HTML with SEO meta tags
โโโ style.css # Complete design system (1000+ lines)
โโโ robots.txt # SEO: Search engine directives
โโโ sitemap.xml # SEO: Site structure for crawlers
โโโ README.md # Documentation
โ
โโโ assets/
โ โโโ favicon/ # Multi-format favicon files
โ โ โโโ favicon.ico
โ โ โโโ favicon.svg
โ โ โโโ favicon-96x96.png
โ โ โโโ apple-touch-icon.png
โ โ โโโ site.webmanifest
โ โโโ icons/ # Additional icon assets
โ
โโโ js/ # Modular JavaScript (7 files)
โ โโโ loadingScreen.js # Loading animation controller
โ โโโ audio.js # Sound effects manager
โ โโโ timer.js # Timer & statistics tracker
โ โโโ fileHandler.js # CSV file parser
โ โโโ ui.js # UI manager (375 lines)
โ โโโ quiz.js # Quiz logic (311 lines)
โ โโโ main.js # App initialization (252 lines)
โ
โโโ csv-files/ # Pre-loaded question banks
โ โโโ is.csv # Information Systems questions
โ โโโ os.csv # Operating Systems questions
โ โโโ network.csv # Networking questions
โ
โโโ sound-effects/ # Audio files
โโโ opening.mp3 # Welcome sound
โโโ correct.mp3 # Correct answer feedback
โโโ wrong.mp3 # Wrong answer feedback
โโโ checkpoint.mp3 # Milestone celebration
- Open Application: Launch
index.htmlin any modern web browser - Loading Screen: Watch the animated "ONE VOXEL" loading sequence (3.5s)
- Ready Modal: Click "Yes" to proceed (enables sound) or "No" to exit
- Upload Questions: Choose from preset CSV files or upload your own
- Answer Questions: Click on one of the four answer options
- Build Streaks: Get 5 consecutive correct answers to reach a checkpoint
- Manage Sound: Toggle sound on/off using the button in the top-right
- Track Progress: Monitor your streak, checkpoint, and score in real-time
- Skip Option: After 4 wrong attempts, you can skip the question
- Watch Timer: Your elapsed time is displayed continuously
- View Results: See your score, total time, and average time per question
- Analyze Performance: Review detailed timing for each question answered
- Review Mistakes: Click "Review Your Mistakes" to practice wrong answers
- Restart or New File: Start over with same questions or load new ones
Questions must follow this 6-column structure:
Question,Option1,Option2,Option3,Option4,CorrectAnswer
Example:
What is 2+2?,2,3,4,5,4
What is the capital of France?,London,Paris,Berlin,Madrid,Paris
Which planet is closest to the Sun?,Venus,Mercury,Earth,Mars,Mercury
Requirements:
- Comma-separated values (CSV format)
- Exactly 6 columns per line
- No header row needed
- Correct answer must match one of the four options exactly
- Quotes around values are optional but supported
- Trigger: Every 5 consecutive correct answers
- Purpose: Save your progress point
- Effect: Wrong answers send you back to last checkpoint (normal mode)
- Visual: Checkpoint number displayed in stats area
- Sound: Special celebration sound plays on checkpoint
- Increments: +1 for each correct answer
- Resets: On any wrong answer โ returns to 0
- Display: Shows current streak (0-4) before next checkpoint
- Purpose: Motivates players to maintain accuracy
- Track Per Question: Each question tracks its own attempts
- Visual Feedback: "Attempt X/4" shown after wrong answers
- Skip Unlock: Skip button appears after 4th attempt
- Clears on Correct: Attempt counter resets when answered correctly
- Activation: "Review Your Mistakes" button after quiz completion
- Behavior: Practice only the questions you got wrong
- Difference: Wrong answers don't send you to checkpoint
- Timer: Separate timing starts for review session
- Design Tokens: 140+ CSS variables for colors, spacing, typography
- Color Palette:
- Background gradients (bg-900 to bg-600)
- Text hierarchy (text-100 to text-60)
- Accent colors (muted, success, error, warning)
- Spacing Scale: 8-point grid system (xs to 3xl)
- Typography:
- Font sizes: xs (0.75rem) to 6xl (4rem)
- Font weights: 300-900
- Line heights: tight to loose
- Shadows: 6 levels from subtle to dramatic
- Border Radius: 8 presets from none to full
- Cards: Multi-layer backgrounds with hover effects
- Glass Elements: Backdrop blur and transparency
- Buttons: State-based styling (enabled, disabled, hover, active)
- Feedback: Animated messages with type-based colors
- Grid System: Responsive column layouts with auto-fit
- Desktop: Default styles
- Tablet (768px): Adjusted padding and 2-column grids
- Mobile (480px): Single column, larger touch targets
- HTML5: Semantic markup with comprehensive SEO meta tags
- CSS3: Custom design system with CSS variables and modern features
- Vanilla JavaScript (ES6+): Modular architecture with classes
- Tailwind CSS: Utility classes via CDN
- Google Fonts: Inter font family
- Web APIs: FileReader, localStorage, Audio, fetch
- โ Chrome/Edge 90+ (recommended)
- โ Firefox 88+
- โ Safari 14+
- โ Mobile browsers (iOS Safari, Chrome Mobile)
โ ๏ธ Requires JavaScript enabledโ ๏ธ Sound requires user interaction (auto-play policies)
- Lazy Sound Loading: Audio preload="auto" for faster playback
- Efficient Timer: Single interval, updates every 1s
- Minimal Dependencies: Only Tailwind CSS from CDN
- Optimized Animations: CSS transforms and transitions
- Smart Rendering: DOM updates only when necessary
- Comprehensive Meta Tags: Description, keywords, author
- Open Graph: Facebook/LinkedIn sharing optimization
- Twitter Cards: Enhanced Twitter sharing
- Sitemap.xml: Search engine site structure
- Robots.txt: Crawler directives
- Canonical URL: Vercel deployment URL
- Favicon: Multi-format support (ico, svg, png, webmanifest)
- localStorage: Sound preference saved across sessions
- Session State: Quiz state resets on page reload
- No Backend: Fully client-side application
- No User Data Collection: Privacy-focused design
- Add audio file to
sound-effects/folder - Add
<audio>element inindex.html - Register in
AudioManagerconstructor (audio.js) - Create play method in
AudioManager - Call the method where needed in quiz logic
- Create CSV file with 6-column format
- Save to
csv-files/directory - Add download link in files modal (
index.html) - Add auto-add button with data-file attribute
- Update
setupEventListeners()inmain.js
- Checkpoint Frequency: Edit
consecutiveStreak === 5inquiz.js - Attempts Before Skip: Edit
currentAttempts >= 4inquiz.js - Timer Update Interval: Edit
setInterval(..., 1000)intimer.js - Feedback Duration: Edit
setTimeout(..., 1500)delays inquiz.js
- Colors: Modify CSS variables in
:rootselector (style.css) - Fonts: Change Google Fonts import and font-family variables
- Spacing: Adjust spacing scale variables (--space-*)
- Animations: Edit duration and easing variables (--duration-, --ease-)
- Breakpoints: Modify @media queries at bottom of
style.css
Each module is designed for easy extension:
- Add UI Elements: Extend
UIManagerclass methods - New Quiz Modes: Add methods to
QuizManager - Enhanced Statistics: Extend
TimerManagercalculations - File Formats: Add parsers to
FileHandler
| Feature | Status | Description |
|---|---|---|
| Question Randomization | โ | Shuffles both questions and answers |
| Checkpoint System | โ | Every 5 correct answers |
| Timer Tracking | โ | Total and per-question timing |
| Sound Effects | โ | 4 types with toggle control |
| Review Mode | โ | Practice wrong answers |
| Skip Questions | โ | After 4 attempts |
| Statistics | โ | Comprehensive timing breakdown |
| Mobile Responsive | โ | Optimized for all screen sizes |
| Dark Theme | โ | Modern dark UI design |
| CSV Support | โ | Standard format parsing |
| Preset Questions | โ | 3 pre-loaded question banks |
| SEO Optimized | โ | Meta tags, sitemap, robots.txt |
| Offline Support | โ | Requires internet for CDN assets |
| Multi-language | โ | English only |
| User Accounts | โ | No backend/authentication |
| Question Editor | โ | CSV editing only |
- Auto-play Restriction: Some browsers block auto-play audio; click "Yes" on ready modal to enable
- CSV Format Strict: Malformed CSV lines are skipped with console warnings
- No Progress Save: Refreshing the page resets all quiz progress
- Internet Required: Tailwind CSS and Google Fonts loaded from CDN
- Large CSVs: Very large question files (1000+) may cause slower loading
Potential features for future development:
- ๐ Progressive Web App (PWA) with offline support
- ๐พ Backend integration for progress persistence
- ๐ฅ User accounts and leaderboards
- ๐ Multi-language support
- ๐ Advanced analytics dashboard
- ๐ฎ Timed quiz mode with countdown
- ๐ Achievement system and badges
- ๐ฑ Native mobile app versions
- ๐ Social media sharing of results
- ๐จ Theme customization options
ยฉ 2025 One Voxel. All rights reserved.
This project is developed and maintained by One Voxel for educational and demonstration purposes.
Developed and Published by One Voxel
- ๐ LinkedIn: One Voxel Dev
- ๐ธ Instagram: @onevoxel_dev
- ๐ง Email: onevoxel.dev@gmail.com
- ๐ฌ WhatsApp: +201005793518
- ๐ Live Demo: ov-qa-randomizer.vercel.app
- ๐๏ธ Repository: GitHub (question-randomizer)
While this is primarily a showcase project, suggestions and feedback are welcome:
- Report issues or bugs via email
- Suggest features on LinkedIn or Instagram
- Share your experience using the application
- Create your own question banks (CSV files)
- JavaScript Modules: Understanding ES6+ class-based architecture
- CSS Variables: Creating maintainable design systems
- Web Audio API: Implementing sound effects in web apps
- FileReader API: Handling client-side file uploads
- localStorage: Browser data persistence
The included CSV files demonstrate:
- is.csv: Information Systems fundamentals
- os.csv: Operating Systems concepts
- network.csv: Computer networking topics
- โ Separation of concerns (modular architecture)
- โ Single responsibility principle (each module has one job)
- โ DRY (Don't Repeat Yourself) code organization
- โ Consistent naming conventions
- โ Comprehensive code documentation
- โ Responsive mobile-first design
- โ Accessible UI components
- โ SEO optimization techniques
Last Updated: November 8, 2025
Version: 1.0.0
Built with โค๏ธ by One Voxel