You can try this app by visiting Mathematics
Mathematics is a web application that helps children practice basic math skills through interactive exercises and two answer modes.
-
Math Operation Selection On the main page, the user selects a mathematical operation to begin solving examples.
-
Two Answer Modes The user can choose how to answer:
- Multiple Choice: 4 options are shown — the correct answer and 3 randomly generated numbers (±20 from the result, all positive integers).
- Free Input: The user types their own answer. The user can freely switch between these two modes at any time during the quiz.
-
Smart Example Generation Examples are generated randomly, ensuring that the result is always a positive integer.
-
Immediate Feedback After submitting an answer, the app displays whether it was correct or incorrect.
-
Result Summary The number of correct and incorrect answers is shown only on the result page after the user finishes the quiz. Returning to the main page resets the answer count and lets the user select a new operation.
Data necessary for the application - the name of the math operation, the formula, the range of accepted values, the validation formula. These data are stored in the MongoDB database. React application fetches this data using fetch API, and converts strings into expression format.
- React
- React Router
- Fetch API
- CSS
- Node.js
- Express.js
- MongoDB
- Netlify.com - hosting for the client side
- Render.com - hosting for the server side
- https://math-app-for-children.netlify.app - to run the application
- https://react-project-t4ti.onrender.com/api/math-operation - to run the server
├── README.md
├── package.json
├── package-lock.json
├── node_modules/
├── client
│ ├── eslint.config.js
│ ├── index.html
│ ├── package.json
│ ├── package-lock.json
│ ├── vite.config.js
│ ├── dist
│ │ ├── assets
│ │ │ ├── default-DJLP6i-q.png
│ │ │ ├── happy-lMPrIiSO.png
│ │ │ ├── index-Bw-okdC8.js
│ │ │ ├── index-CRMeaEYv.css
│ │ │ └── sad-whhlb0Fk.png
│ │ ├── index.html
│ │ └── vite.svg
│ ├── node_modules
│ ├── public
│ │ └── math-icon.svg
│ ├── src
│ │ ├── assets
│ │ │ ├── default.png
│ │ │ ├── happy.png
│ │ │ └── sad.png
│ │ ├── components
│ │ │ ├── Button.jsx
│ │ │ ├── GoBackButton.jsx
│ │ │ ├── Header.jsx
│ │ │ ├── InputField.jsx
│ │ │ ├── OperationList.jsx
│ │ │ └── component.css
│ │ ├── context
│ │ │ └── CountContext.jsx
│ │ ├── hooks
│ │ │ ├── useCount.jsx
│ │ │ └── useGenerateExample.jsx
│ │ ├── pages
│ │ │ ├── MainPage.jsx
│ │ │ ├── QuestionPage.jsx
│ │ │ └── ResultPage.jsx
│ │ ├── App.css
│ │ ├── App.jsx
│ │ └── main.jsx
└── server
├── .env
├── generateExample.js
├── getData.js
├── package.json
├── randomNumbers.js
└── server.js