An interactive web application designed to help children practice multiplication tables. The app adapts to each child's learning pace and provides detailed progress tracking for parents.
- Interactive multiplication practice
- Customizable problem sets
- Immediate visual feedback
- Progress tracking during exercises
- Adaptive problem selection based on:
- Factor difficulty
- Past performance
- Problem frequency
- Pause/resume functionality
- Retry mode for incorrect answers
- Detailed performance statistics
- Individual progress tracking
- Historical exercise review
- Performance trends visualization
- Multiplication table proficiency overview
- Frontend: React with TypeScript
- Styling: Tailwind CSS
- Build Tool: Vite
- Testing: Vitest and React Testing Library
- Containerization: Docker
- Deployment: Raspberry Pi (local network)
- Clone the repository:
git clone [repository-url]
cd math-practice-app
- Install dependencies:
npm install
- Start the development server:
npm run dev
math-practice-app/
├── src/
│ ├── components/
│ │ ├── Exercise/
│ │ ├── NumericKeyboard/
│ │ ├── ProblemDisplay/
│ │ └── ProgressIndicator/
│ ├── context/
│ │ └── ExerciseContext/
│ ├── hooks/
│ ├── types/
│ ├── utils/
│ └── test/
├── public/
└── ...config files
Displays the current multiplication problem with clear, child-friendly typography.
Custom on-screen keyboard for answer input, optimized for touch devices.
Visual feedback showing exercise progress and correct/incorrect answers.
Main component combining all elements into a cohesive practice experience.
npm run test
npm run build
# Build the Docker image
docker build -t math-practice-app .
# Run the container
docker run -p 3000:3000 math-practice-app
- Select a user from the home screen
- Choose Exercise or Review mode
- For Exercise mode:
- Select number of problems
- Complete the exercise set
- Review results
- For Review mode:
- Select a child's profile
- View performance statistics
- Review past exercises
- Support for division, addition, and subtraction
- Multiple difficulty levels
- Achievement system
- Multi-language support
- Visual learning aids
- Custom exercise creation for parents
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. This means you are free to:
Share — copy and redistribute the material in any medium or format Adapt — remix, transform, and build upon the material
Under the following terms:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. NonCommercial — You may not use the material for commercial purposes.
See the full license text for more details.
Philippe Moore