diff --git a/src/App.js b/src/App.js
index 31e5591..7711015 100644
--- a/src/App.js
+++ b/src/App.js
@@ -9,6 +9,7 @@ import DisableButton from './projects/5-disable-button/DisableButton/DisableButt
import SumTwoNum from './projects/6-sumTwoNum/SumTwoNum/SumTwoNum'
import TodoAddV1 from './projects/7-todoAddV1/TodoV1/TodoAddV1'
import TodoDeleteV2 from './projects/8-todoDeleteV2/TodoV2/TodoDeleteV2'
+import MathExpEval from './projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval'
class App extends Component{
@@ -25,6 +26,7 @@ class App extends Component{
}>
}>
}>
+ }>
);
diff --git a/src/projects/9-mathematical-expression-evaluator/Code/Code.js b/src/projects/9-mathematical-expression-evaluator/Code/Code.js
new file mode 100644
index 0000000..46bd20a
--- /dev/null
+++ b/src/projects/9-mathematical-expression-evaluator/Code/Code.js
@@ -0,0 +1,17 @@
+import React, { Component } from 'react';
+
+class Code extends Component {
+ render() {
+ return (
+
+

+
+ );
+ }
+}
+
+export default Code;
diff --git a/src/projects/9-mathematical-expression-evaluator/Desc/Desc.js b/src/projects/9-mathematical-expression-evaluator/Desc/Desc.js
new file mode 100644
index 0000000..b927318
--- /dev/null
+++ b/src/projects/9-mathematical-expression-evaluator/Desc/Desc.js
@@ -0,0 +1,27 @@
+import React, { Component } from 'react'
+import './../../projects.css'
+
+class Desc extends Component {
+
+ render() {
+ return (
+
+
How to delete from todo list ?
+
Posted on Oct 27, 2022
+
Remember this concept,
Start s-m-a-l-l to create something BIG
+
To create Mathematical Expression Evaluator, we have to :
+
+ - Create textarea to take expression as input from user
+ - Create input box to take precision as input from user
+ - Create button to evaluate expression
+ - Create div to show result
+ - Make an API call to mathjs API to get the result
+ - mathjs provoides lot of functions including algebra, complex numbers, simple unit calculations and many more.
+ - For more information how to write query: Click Here or Contact Author.
+
+
+ )
+ }
+}
+
+export default Desc
diff --git a/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.css b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.css
new file mode 100644
index 0000000..607b85f
--- /dev/null
+++ b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.css
@@ -0,0 +1,24 @@
+.mathExpDiv {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+}
+
+textarea {
+ width: 80%;
+ height: 300px;
+ font-size: large;
+ resize: vertical;
+}
+
+input {
+ width: 80%;
+ height: 50px;
+ font-size: large;
+}
+
+h1 {
+ color: aliceblue;
+}
\ No newline at end of file
diff --git a/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.js b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.js
new file mode 100644
index 0000000..9b6e0ad
--- /dev/null
+++ b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEval.js
@@ -0,0 +1,28 @@
+import React from 'react';
+
+import './../../projects.css';
+import './MathExpEval.css';
+
+import MathExpEvalFrame from './MathExpEvalFrame';
+import Desc from './../Desc/Desc';
+import Code from './../Code/Code';
+
+const MathExpEval = () => {
+ return (
+
+
+
MathExpEval
+
+
+
+
+
+
+
Code
+
+
+
+ );
+};
+
+export default MathExpEval;
diff --git a/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEvalFrame.js b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEvalFrame.js
new file mode 100644
index 0000000..2ffa5a8
--- /dev/null
+++ b/src/projects/9-mathematical-expression-evaluator/MathExpEval/MathExpEvalFrame.js
@@ -0,0 +1,66 @@
+import React, { useState } from 'react';
+
+const MathExpEvalFrame = () => {
+ const [expression, setExpression] = useState('');
+ const [precision, setPrecision] = useState(2);
+ const [result, setResult] = useState('Please enter an expression');
+
+ const handleExpression = (e) => {
+ setExpression(e.target.value);
+ };
+
+ const handlePrecision = (e) =>{
+ if(e.target.value < 0){
+ alert('Precision cannot be negative');
+ return;
+ }
+
+ if(e.target.value > 16){
+ alert('Precision cannot be greater than 16');
+ return;
+ }
+
+ setPrecision(e.target.value);
+ };
+
+ const evaluate = async () => {
+ const value = await fetch(
+ `https://api.mathjs.org/v4/?expr=${encodeURIComponent(expression)}&precision=${precision}`
+ );
+ const data = await value.text();
+ console.log(data);
+ setResult(data);
+ };
+
+ const handleResult = () => {
+ try {
+ evaluate(expression);
+ } catch (e) {
+ console.error(e);
+ setResult('Invalid Expression');
+ }
+ };
+
+ return (
+
+
+
+
+
{result}
+
+ );
+};
+
+export default MathExpEvalFrame;
diff --git a/src/projects/Home.js b/src/projects/Home.js
index 89bfd90..fe36f1a 100644
--- a/src/projects/Home.js
+++ b/src/projects/Home.js
@@ -95,6 +95,19 @@ class Home extends Component {
+
+
+
+
+

+
+
+
diff --git a/src/projects/home.css b/src/projects/home.css
index 5a753da..3411fc7 100644
--- a/src/projects/home.css
+++ b/src/projects/home.css
@@ -16,6 +16,7 @@
place-items: center;
gap: 2rem;
+ padding-bottom: 2rem;
}
.box-1 {