TypingTales is an engaging web-based typing practice application designed specifically for children aged 6-13. It combines the fun of storytelling with typing practice, creating a personalized learning experience that helps kids improve their typing skills while enjoying themselves.
- Personalized Stories: Stories are customized with the child's name as the main character
- Age-Appropriate Content: Content tailored for children aged 6-13
- Gender-Specific Stories: Stories adapted based on the child's gender
- Visual Feedback: Real-time feedback with color-coded typing indicators
- Green: Correctly typed text
- Red: Mistakes
- Blue highlight: Current character
- Progress Tracking:
- Score tracking
- Level progression (5 levels)
- Session history
- Session Management:
- 15-minute time limit per session
- Multiple sessions allowed
- Progress saved between sessions
- No Repeat Stories: Stories don't repeat until all stories for a gender have been used
- Responsive Design: Works on all devices and screen sizes
- Kid-Friendly Interface: Clean, intuitive design suitable for children
- A modern web browser (Chrome, Firefox, Safari, Edge)
- Internet connection for loading resources
- Basic typing skills
- Clone the repository:
git clone https://github.com/gayanhewa/typing-tales.git
cd typing-tales
- Set up git hooks (for development):
# Copy pre-commit and pre-push hooks
cp .hooks/pre-commit .git/hooks/
cp .hooks/pre-push .git/hooks/
chmod +x .git/hooks/pre-commit
chmod +x .git/hooks/pre-push
- Set up a local web server (required for loading stories.json):
# Using Python 3
python3 -m http.server 8000
# Using Node.js
npx serve
- Open your browser and visit:
http://localhost:8000
- Enter your name and select your gender
- Click "Start Typing Adventure"
- Type the story as it appears on screen
- Watch your progress with the color-coded feedback
- Complete the story within the time limit
- View your score and play again with a new story
- HTML5
- CSS3 (Tailwind CSS)
- JavaScript (Alpine.js)
- JSON for story data
typing-tales/
├── public/ # Public assets
│ ├── index.html # Main application file
│ ├── game.js # Game logic
│ └── stories.json # Story data
├── src/ # Source files
│ └── test/ # Test files
├── .hooks/ # Git hooks
├── README.md # This file
└── package.json # Project configuration
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
Stories are stored in public/stories.json
with the following structure:
{
"stories": [
{
"id": "unique_id",
"title": "Story Title",
"text": "Story content with {{NAME}} placeholder",
"gender": "boy/girl"
}
]
}
Want to add more stories? Contribute to the repository!
- No personal data is stored on servers
- Progress is saved locally in the browser
- No registration required
- No tracking or analytics
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Stories are original content created for TypingTales
- UI components styled with Tailwind CSS
- Interactive functionality powered by Alpine.js
For support, please open an issue in the GitHub repository or contact us at [email protected]
- Version 1.0.0 (March 2024)
- Initial release
- Basic typing functionality
- Story personalization
- Progress tracking
Visit typingtales.org to try the application online.