An intelligent vocabulary learning application for grades 7-9, powered by Google's Gemini AI. Master new words through interactive flashcards, AI-generated stories, quizzes, and natural text-to-speech pronunciation.
- π 1000+ Vocabulary Words - Loaded from JSON database for grades 7-9
- π΄ 3D Flashcard System - Interactive cards with smooth flip animations
- π― Difficulty Levels - Filter by Easy, Intermediate, or Hard
- π Persistent Progress Tracking - Mastered/missed counts saved across sessions
- π§ Smart Word Selection - Mastered words appear 80% less often for optimal review
- πΎ Auto-Save - Progress automatically saved to browser localStorage
- π Reset Progress - Clear all data and start fresh anytime
- β€οΈ Favorites System - Save your preferred words for quick review
- π Text-to-Speech - Natural pronunciation using Gemini TTS
- π Story Generator - AI creates contextual micro-stories using the word
- β Quiz Generator - Intelligent multiple-choice questions to test understanding
- π Smart Retry Logic - Exponential backoff for API reliability
- Etymology - Word origins and roots (Greek, Latin, etc.)
- Mnemonics - Memory tips to help retention
- Part of Speech - Grammatical classification
- Synonyms & Antonyms - Related words
- Example Sentences - Real-world usage
- Achievement Badges - Word Wizard, Etymologist badges
- Node.js 16+ installed
- npm or yarn package manager
- Google Gemini API key (Get one here)
-
Clone the repository
git clone https://github.com/boonsup/boonsup.github.io.git cd boonsup.github.io -
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root directory:VITE_GEMINI_API_KEY=your_gemini_api_key_here
-
Start development server
npm run dev
-
Open in browser
Navigate to:
http://localhost:5173/
-
Browse Words
- Use difficulty filters (All/Easy/Intermediate/Hard)
- Navigate with Previous/Next buttons
-
Study Front of Card
- View the vocabulary word
- Click speaker icon for pronunciation
- Note the part of speech badge
- Add to favorites with heart icon
-
Flip Card for Details
- Click card to see definition
- Review etymology and mnemonics
- Mark as Mastered (β) or Missed (β)
-
Enhance Learning with AI
- β¨ AI Story: Generate a contextual story
- β¨ AI Quiz: Test your understanding
- π Speak with AI Voice: Hear full definition
-
Track Progress
- Monitor mastered word count (green)
- Review missed words (red)
- Generate new word sets with refresh button
- React 18.2 - UI library with hooks
- Tailwind CSS 3.3 - Utility-first styling
- Lucide React - Icon library (19 icons)
- Vite 5.0 - Build tool and dev server
- Google Gemini API - Multiple services:
gemini-2.5-flash-preview-tts- Text-to-speechgemini-2.5-flash-preview-09-2025- Content generation
- CSS 3D Transforms - Card flip animations
- Web Audio API - Audio playback
- Fetch API - Network requests with retry logic
- LocalStorage - Favorites persistence (planned)
boonsup.github.io/
βββ src/
β βββ App.jsx # Main application component
β βββ main.jsx # React entry point
β βββ index.css # Tailwind + custom styles
βββ data/
β βββ vocab1000.json # Extended vocabulary (optional)
βββ plans/
β βββ vocabmaster-integration-plan.md
βββ public/ # Static assets
βββ index.html # HTML entry point
βββ package.json # Dependencies
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ postcss.config.js # PostCSS configuration
βββ .env # Environment variables (gitignored)
βββ .gitignore # Git ignore rules
βββ SETUP.md # Testing & troubleshooting guide
βββ README.md # This file
- Primary: Indigo 600 (
#4F46E5) - Background: Slate 50 (
#F8FAFC) - Dark Card: Slate 900 (
#0F172A) - Success: Green 600 (
#16A34A) - Error: Red 500 (
#EF4444)
- Headings: Black weight (900), tight tracking
- Body: Sans-serif, leading-relaxed
- Word Display: 6xl size (60px), capitalized
- Card Flip: 700ms 3D transform
- Transitions: Scale, opacity, color changes
- Loading: Pulse and spin effects
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewThe project uses GitHub Actions for automatic deployment to:
https://boonsup.github.io/
- Enable GitHub Pages in repository settings (Source: GitHub Actions)
- Add
VITE_GEMINI_API_KEYto repository secrets - Push to
mainbranch - GitHub Actions automatically builds and deploys
See DEPLOYMENT.md for complete deployment guide including:
- Automatic deployment with GitHub Actions
- Manual deployment options
- Environment variable configuration
- Custom domain setup
- Troubleshooting tips
npm run buildThe build creates an optimized dist/ folder ready for deployment.
- Server-side proxy to hide API keys
- Rate limiting per user
- API key rotation
- User authentication
- SETUP.md - Installation, testing checklist, troubleshooting
- Implementation Plan - Architecture details
- Verify
.envcontainsVITE_GEMINI_API_KEY=your_key - Restart dev server after changing
.env - Check API key is active on Google AI Studio
- Ensure Tailwind is properly configured
- Check
src/main.jsximports./index.css - Clear browser cache and restart server
- Check browser console for errors
- Verify browser supports Web Audio API
- Test in Chrome (recommended browser)
- Check browser autoplay policies
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Add 100+ more vocabulary words
- Implement spaced repetition algorithm
- Add user accounts and cloud sync
- Create achievement system with leaderboards
- Support multiple grade levels (4-12)
- Multi-language support
- Offline mode with service workers
- Export progress reports (PDF/CSV)
- Flashcard sharing between users
- Dark/Light theme toggle
- Primary:
data/vocab1000.json- 1000+ curated words - Fallback: 3 embedded words if JSON loading fails
- Dynamic Loading: Words loaded on app start
- Auto-Difficulty: Inferred from grade level if not specified
Each word includes:
- Word text and definition
- Part of speech (noun, verb, adjective, etc.)
- Grade level (7-9)
- Difficulty rating (easy/intermediate/hard)
- Notions (academic, descriptive, etc.)
- Etymology (origin, root, meaning)
- Memory tip (mnemonic device)
- Synonyms and antonyms
- Example sentence showing usage
- Achievement badges (word-wizard, etymologist, etc.)
- New words: 100% probability of selection
- Mastered words: 20% probability (80% reduction)
- Weighted random: Ensures variety while focusing on unmastered words
- Persistent tracking: Progress saved in browser localStorage
| Browser | Version | Status |
|---|---|---|
| Chrome | 90+ | β Fully Supported |
| Firefox | 88+ | β Fully Supported |
| Safari | 14+ | β Supported |
| Edge | 90+ | β Fully Supported |
| IE 11 | - | β Not Supported |
This project is licensed under the MIT License - see the LICENSE file for details.
Boonsup
- GitHub: @boonsup
- Website: boonsup.github.io
- Google Gemini AI - For powerful AI capabilities
- React Team - For the amazing framework
- Tailwind CSS - For rapid UI development
- Lucide Icons - For beautiful iconography
- Vite Team - For blazingly fast build tool
For issues, questions, or suggestions:
- Open an issue on GitHub
- Check SETUP.md for troubleshooting
- Review implementation plan
Made with β€οΈ for vocabulary learners everywhere
Happy Learning! πβ¨