A plant identification flashcard game designed for horticulture students. Built as a Progressive Web App (PWA) with offline support.
- Flashcard Quiz: Learn to identify 7 common plants with scientific names
- Memory Aids: Each plant has a memorable mnemonic to help retention
- Mastery System: Track progress with a 0-3 mastery level per plant
- Spaced Repetition: Plants you struggle with appear more frequently
- Streak Tracking: Build and maintain answer streaks for motivation
- Offline Support: Full PWA - works without internet connection
- Mobile-First: Optimised for touch devices with responsive design
- Monstera deliciosa (Swiss Cheese Plant)
- Cymbidium spp. (Cymbidium Orchid)
- Schefflera arboricola (Umbrella Plant)
- Bromeliad sp. (Bromeliad)
- Rhipsalis crispata (Hanging Cacti)
- Crassula ovata (Jade Plant / Money Plant)
- Sansevieria (Snake Plant / Mother-in-law's Tongue)
The app requires a local server due to service worker requirements. Options:
# Python 3
python -m http.server 8000
# Node.js (npx)
npx serve
# PHP
php -S localhost:8000Then open http://localhost:8000 in your browser.
?celebrate- Skip to the perfect score celebration screen for testing
On mobile or desktop, look for the "Install" prompt or use your browser's "Add to Home Screen" / "Install App" option.
- Phaser 3 - Game framework
- Vanilla JavaScript
- CSS3 with custom properties
- Service Worker for offline caching
leaf-and-learn/
├── index.html # Main HTML entry point
├── manifest.json # PWA manifest
├── sw.js # Service worker
├── css/
│ └── styles.css # Global styles
├── js/
│ ├── plants.js # Plant database
│ └── game.js # Phaser game logic
├── images/ # Plant photographs
└── icons/ # PWA icons
MIT