Arithmetic Trainer is a web application designed to help users improve their arithmetic skills through practice and repetition. Built using Laravel for the backend and React for the frontend, this application provides users with customizable arithmetic exercises and tracks their progress over time.
- User authentication: Allow users to sign up, log in, and manage their accounts securely.
- Arithmetic practice: Generate randomized arithmetic questions based on user preferences (operations and difficulty level).
- Feedback and scoring: Provide immediate feedback on answers and track user scores.
- Progress tracking: Keep track of user progress over time, including statistics such as accuracy and average response time.
- Leaderboard: Display top performers to encourage competition among users.
- Responsive design: Ensure the application works well on different devices.
- Accessibility: Make the application accessible to users with disabilities.
- Feedback mechanism: Allow users to provide feedback or suggestions for improvement.
- Admin panel (optional): Create an admin panel for managing users and viewing statistics.
To get started with development, follow these steps:
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd arithmetic-trainer
- Install backend dependencies:
composer install
- Install frontend dependencies:
npm install
- Set up environment variables:
- Create a
.env
file based on the.env.example
template. - Configure database connection settings.
- Create a
- Generate application key:
php artisan key:generate
- Migrate and seed the database:
php artisan migrate --seed
- Start the development server:
- Backend:
php artisan serve
- Frontend:
npm start
- Backend:
- Access the application in your browser:
http://localhost:8000
graph TD
A[Start] --> B[Login / Signup]
B --> C{Logged in?}
C -->|Yes| D[Dashboard]
C -->|No| B
D --> E[Select Exercise Type]
E --> F{Practice?}
F -->|Yes| G[Settings: Select Level, Branches, Types]
F -->|No| H[Settings: Select Assessment]
G --> I[Create Practice Session]
I --> J[Start Practice Session]
J --> K{Answered all questions?}
K -->|No| J
K -->|Yes| L[Practice Summary]
L --> D
H --> M[Create Assessment Session]
M --> N[Start Assessment Session]
N --> O{Answered all questions?}
O -->|No| N
O -->|Yes| P[Assessment Summary]
P --> D
D --> Q[View Progress]
Q --> R[View Leaderboard]
R --> D
D --> S[Logout]
S --> T[End]
If you have any questions or suggestions, please feel free to reach out to Vincent Radford.