# TypingQuest ๐ฏโจ๏ธ
A fun, gamified typing trainer built for students. TypingQuest teaches keyboard skills through structured lessons, timed practice, LAN multiplayer races, and action-packed typing games โ all in one app.
- 300 levels across 3 difficulties โ Beginner, Intermediate, Master
- Each level has a fixed time limit โ finish before the clock runs out
- Real-time WPM, accuracy, and countdown timer
- โญ Star rating system (1โ3 stars) based on speed and accuracy
- Virtual keyboard with finger color hints for beginners
- Progress saved per student profile
- 6 courses covering home row, top row, bottom row, numbers, symbols, and speed
- Step-by-step finger placement guidance with hand diagrams
- Lesson progress tracked separately from solo practice
- Type as much as possible in 1, 2, or 5 minutes
- WPM graph showing your speed over time
- Personal best tracking per difficulty
- Paste any text and practice typing it
- Great for typing homework, notes, or paragraphs from textbooks
- Multiplayer typing race over your school's local network
- Host picks text and game mode:
- Finish Race โ first to complete the full text wins
- Timed Battle โ most words typed in the time limit wins
- Live standings and progress bars for all players
- Supports up to 10 players simultaneously
Two fully playable games with more coming soon:
| Game | Description | Status |
|---|---|---|
| ๐ Space Shooter | Type words to fire lasers and destroy alien invaders. Combo multipliers + boss waves every 10 kills | โ Available |
| ๐ง Zombie Survival | Defend your base from zombie hordes across 3 lanes. Power-ups: FREEZE all zombies, BOMB clears the screen | โ Available |
| ๐๏ธ Car Race | Type to accelerate and beat AI opponents | ๐ Coming Soon |
| ๐ Deep Sea Diver | Type words to collect treasure and scare sharks | ๐ Coming Soon |
| โ๏ธ Typing Knight | Turn-based RPG โ type to attack and defend | ๐ Coming Soon |
- Multiple profiles on one device โ perfect for shared school computers
- Each profile has its own name, class, avatar, progress and high scores
- Switch profiles without losing any data
- 20+ achievements for speed, accuracy, streaks, and consistency
- Toast notifications when you unlock one mid-session
- WPM history graph
- Best WPM, total words typed, total time practiced
- Average accuracy across all sessions
(- assets/)
| Layer | Technology |
|---|---|
| Framework | Flutter 3.x (Dart) |
| Platforms | Windows Desktop, Web |
| Storage | shared_preferences |
| Fonts | Google Fonts (Poppins + Inter) |
| Audio | audioplayers |
| Graphics | Custom CustomPainter (no game engine) |
- Flutter SDK โ stable channel
- Dart SDK โฅ 3.0.0
- For Windows builds: Visual Studio 2022 with Desktop development with C++
# Clone the repository
git clone https://github.com/mynameisprem-pj/typingquest.git
cd typingquest
# Install dependencies
flutter pub get
# Run on Windows
flutter run -d windows
# Run on Chrome (web)
flutter run -d chrome# Windows
flutter build windows --release
# Web (for deployment)
flutter build web --releaselib/
โโโ main.dart # App entry point + service init
โโโ theme/
โ โโโ app_theme.dart # Colors, typography, shared styles
โโโ data/
โ โโโ typing_content.dart # All 300 level texts + time limits
โ โโโ lesson_data.dart # Lesson course content
โโโ models/
โ โโโ game_models.dart # Difficulty, LevelResult, LanPlayer etc.
โโโ services/
โ โโโ profile_service.dart # Multi-profile management
โ โโโ progress_service.dart # Solo level progress + stars
โ โโโ stats_service.dart # WPM history + totals
โ โโโ achievements_service.dart
โ โโโ lesson_progress_service.dart
โ โโโ lan_service.dart # TCP socket LAN multiplayer
โ โโโ sound_service.dart # Key click + effect sounds
โโโ widgets/
โ โโโ virtual_keyboard.dart # On-screen keyboard with highlights
โ โโโ virtual_hands.dart # Animated hand/finger diagrams
โ โโโ wpm_graph.dart # Line chart for WPM history
โ โโโ achievement_toast.dart # Slide-in achievement notification
โโโ screens/
โโโ home/
โ โโโ home_screen.dart # Dashboard + navigation drawer
โ โโโ falling_words_game.dart
โโโ solo/ # Difficulty โ Level select โ Typing
โโโ lessons/ # Course list โ Lesson viewer
โโโ timed/ # Timed challenge screen
โโโ custom/ # Custom text practice
โโโ lan/ # Host, Join, Race screens
โโโ fun/
โ โโโ fun_hub_screen.dart # Game selection hub
โ โโโ space_shooter_game.dart
โ โโโ zombie_survival_game.dart
โโโ stats/
โโโ achievements/
โโโ profile/
- Aliens fall from the top of the screen, each carrying a word
- Type the first letter to lock on and rotate your ship toward it
- Each correct letter fires a bullet โ finish the word to destroy the alien
- Every 10 kills triggers a Boss Wave โ type a full sentence to defeat it
- Chain kills for Combo Multipliers: 5ร kill = 2ร points, 10ร kill = 3ร points
- 3 difficulties: Cadet (short words), Pilot (medium), Commander (long words)
- Zombies walk left across 3 lanes toward your base
- Type their word to fire bullets โ each letter = one bullet
- Special zombie types: Fast (runs), Tank (slow but tough words)
- Power-ups: โ Freeze zombie (type "freeze") freezes all zombies for 4 seconds
- ๐ฃ Bomb zombie (type "bomb") clears all normal zombies instantly
- Survive endless waves โ each wave is faster and denser
The project was developed entirely in Flutter/Dart with no external game engines โ all game graphics are drawn using Flutter's CustomPainter API.
This project is open source and free to use for educational purposes.
- Built with Flutter
- Fonts by Google Fonts