A comprehensive web-based math practice platform featuring multiple interactive games and activities to help students improve their mathematical skills. Built with Flask and featuring a progressive difficulty system.
- Math Practice - Progressive difficulty system with basic arithmetic operations
- Math Blast - Fast-paced math challenges
- Math Race - Competitive math problem solving
- Math Memory - Memory-based math activities
- Decimal Master - Focused decimal arithmetic practice
- Fraction Master - Fraction operations and conversions
- Plot Points - Interactive graphing and coordinate activities
- Progressive Difficulty System - Automatically advances from easy โ medium โ hard based on performance
- Performance Tracking - Session-based score tracking and statistics
- Immediate Feedback - Real-time answer validation with detailed responses
- Responsive Design - Mobile-friendly interface that works on all devices
- Clean UI - Modern, intuitive design optimized for student use
The application is deployed and available at: mcallister2.onrender.com
- Backend: Flask (Python web framework)
- Frontend: HTML5, CSS3, JavaScript
- Session Management: Flask sessions for user state tracking
- Deployment: Gunicorn WSGI server (Render-ready)
math_practice/
โโโ app.py # Main Flask application
โโโ requirements.txt # Python dependencies
โโโ templates/ # HTML templates
โ โโโ base.html # Base template with common layout
โ โโโ index.html # Homepage with game selection
โ โโโ math_practice.html # Progressive math practice
โ โโโ math_blast.html # Math Blast game
โ โโโ math_race.html # Math Race game
โ โโโ math_memory.html # Math Memory game
โ โโโ decimal_master.html # Decimal practice
โ โโโ fraction_master.html # Fraction practice
โ โโโ plot_points.html # Graphing activities
โ โโโ about.html # About page
โโโ static/ # Static assets (CSS/JS)
โ โโโ style.css # Global styles
โ โโโ main.js # Common JavaScript
โ โโโ calculator.css/.js # Calculator functionality
โ โโโ math_blast.css/.js # Math Blast game logic
โ โโโ math_race.css/.js # Math Race game logic
โ โโโ math_memory.css/.js # Math Memory game logic
โ โโโ fraction_master.css/.js # Fraction game logic
โ โโโ plot_points.css/.js # Graphing functionality
โโโ mcallister/ # Python virtual environment
- Easy: Numbers 5-10, operations with 1-5
- Medium: Numbers 1-100, operations with 1-50
- Hard: Numbers 1-1000, operations with 1-500
- Easy โ Medium: Answer 4 consecutive questions correctly
- Medium โ Hard: Answer 7 consecutive questions correctly
- Victory: Answer 5 hard questions correctly
- Addition (+)
- Subtraction (โ)
- Multiplication (ร)
- Division (รท) - with results rounded to 2 decimal places
- Python 3.12+
- pip package manager
-
Clone the repository:
git clone <repository-url> cd math_practice
-
Create and activate virtual environment:
python -m venv mcallister source mcallister/bin/activate # On Linux/Mac # OR mcallister\Scripts\activate # On Windows
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
-
Open your browser and navigate to
http://localhost:5000
The app is configured for deployment with Gunicorn:
gunicorn app:appThe flagship feature with an adaptive difficulty system that challenges students appropriately based on their performance. Features session tracking and detailed progress feedback.
Fast-paced arithmetic challenges designed to improve mental math speed and accuracy.
Competitive math problem-solving with time-based challenges.
Memory-based mathematical activities that combine math skills with memory training.
Specialized practice for decimal operations, conversions, and place value understanding.
Comprehensive fraction practice including operations, simplification, and mixed numbers.
Interactive graphing activities teaching coordinate systems, plotting points, and basic graphing concepts.
In app.py, you can modify these variables:
easy_num = 4 # Questions needed to advance from easy to medium
medium_num = 7 # Questions needed to advance from medium to hard
hard_num = 5 # Questions needed for victory in hard mode
num_rounded = 2 # Decimal places for division resultsThe application uses Flask sessions to track:
- Current difficulty level
- Correct answer streaks per difficulty
- Hard mode victories
- Performance records
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Created for educational purposes to provide an engaging platform for students to practice and improve their mathematical skills. The progressive difficulty system ensures that learners are appropriately challenged while building confidence through success.
Please open an issue on GitHub if you encounter any bugs or have suggestions for new features.
Happy Learning! ๐โจ