An interactive web application for practicing JLPT N5 grammar through star questions (placing words in correct order).
- Practice Mode: Interactive quiz with customizable question count (1-48 questions)
- Time Challenge: Race against the clock with custom time limits and live stats
- Review Mode: Browse all 48 questions with answers and explanations
- Statistics Tracking: Track your progress with detailed accuracy metrics per question
- Targeted Practice: Select specific questions from statistics to practice weak areas
- Debug Mode: Test individual questions by number for focused practice
- Light/Dark Mode: Toggle between themes for comfortable studying
- Responsive Design: Works on desktop, tablet, and mobile devices
- Detailed Results: See incorrect answers with highlighted mistakes after each session
The simplest way to run this project:
- Navigate to the project folder
- Double-click
index.htmlor right-click and select "Open With" → your browser - The app will open and run completely in your browser
For the best experience, use a local web server:
Python 3:
python3 -m http.server 8000Python 2:
python -m SimpleHTTPServer 8000Node.js (using npx):
npx http-serverVS Code:
- Install the "Live Server" extension
- Right-click on
index.html - Select "Open with Live Server"
Then open your browser to http://localhost:8000 (or the port shown in your terminal).
.
├── index.html # Main HTML structure
├── styles.css # Styling (fall theme with light/dark mode)
├── app.js # Application logic
├── questions.js # 48 JLPT N5 practice questions
├── scripts/
│ └── hash-assets.js # Build script for cache-busting
├── package.json # NPM scripts for deployment
├── netlify.toml # Netlify deployment configuration
└── .gitignore # Excludes generated build files
- Click "Practice Mode" from the main menu
- Choose how many questions you want to practice (1-48, default 15)
- Select word options in the correct order to fill in the blanks
- Submit your answer to see if you're correct
- Review detailed feedback showing:
- Your answer with incorrect words highlighted in red
- The correct answer
- Translation and grammar explanation
- View final results with a complete breakdown of incorrect/skipped questions
- Click "Time Challenge" from the main menu
- Set your timer (minutes and seconds) or use quick presets (1-10 minutes)
- Answer as many questions as possible before time runs out
- Watch live stats: questions answered and correct count
- Time's up triggers fall-themed confetti animation 🍂
- Review all incorrect answers with detailed explanations
- Click "Review Mode" to see a list of all 48 questions
- Click any question to view it with the complete answer
- Each question shows:
- Correct word order with blanks filled
- Translation
- Grammar point explanation
- Navigate between questions or return to the list
- View overall performance metrics:
- Total attempts across all sessions
- Correct/incorrect counts
- Overall accuracy percentage
- See detailed per-question statistics sorted by accuracy
- Select questions with accuracy < 60% automatically
- Multi-select specific questions to practice
- Start a targeted practice session with selected questions only
- Clear all statistics if you want to start fresh
- Click "Debug Mode" from the main menu
- Enter a specific question number (1-48)
- Practice that single question repeatedly
- Perfect for focusing on particularly challenging grammar points
Click the theme button in the top-right corner to switch between:
- Light Mode 🌙 - Bright interface with fall colors
- Dark Mode ☀️ - Darker interface optimized for low-light studying
All progress and statistics are saved locally in your browser using localStorage:
- No account required
- No internet connection needed after initial load
- Data persists across sessions
- Clear browser data to reset statistics
Works on all modern browsers:
- Chrome/Edge (recommended)
- Firefox
- Safari
- Opera
Fully responsive design optimized for:
- Smartphones (iPhone, Android)
- Tablets (iPad, Android tablets)
- Desktop computers
JLPT N5 is the most basic level of the Japanese Language Proficiency Test. This app focuses on word-order questions where you arrange four words in the correct grammatical sequence to complete a sentence. Some questions include dialogue context (A: / B:) to practice conversational patterns.
- Pure HTML5
- CSS3 (with CSS Variables for theming)
- Vanilla JavaScript (no frameworks)
- LocalStorage API for data persistence
- HTML Ruby tags for furigana (reading aids) display
- Node.js build script for asset fingerprinting
- Netlify for hosting with atomic deploys
The app uses automated asset fingerprinting for optimal caching:
- During build,
npm run hash-assetsgenerates content-hashed copies of JS/CSS files index.htmlreferences are updated to point to fingerprinted assets- Netlify serves with long-lived cache headers for immutable assets
- Each deploy automatically updates asset references for cache-busting
To deploy your own copy:
- Fork this repository
- Connect to Netlify
- Build command:
npm run hash-assets - Publish directory:
. - Deploy!
This project is for educational purposes.
This is a learning project. Feel free to fork and modify for your own use!
Happy studying! 頑張ってください!🇯🇵🍂