# Crafting a Mutual Fund Returns Calculator as a Web Application: Step-by-Step Guide

·

To build a Mutual Fund Returns Calculator with Next.js for the front end and Express.js for the back end, you can use the same steps we used for the compound interest calculator. Here's how:

### Frontend (Next.js):

#### 1. Create a new Next.js app:

``````npx create-next-app mutual-fund-calculator-frontend
cd mutual-fund-calculator-frontend
``````

#### 2. Create a mutual fund returns calculator component:

Create a new file called `MutualFundCalculator.js` inside the `components` directory:

``````// components/MutualFundCalculator.js
import { useState } from 'react';

const MutualFundCalculator = () => {
const [investment, setInvestment] = useState('');
const [rateOfReturn, setRateOfReturn] = useState('');
const [years, setYears] = useState('');
const [result, setResult] = useState('');

const calculateReturns = () => {
const i = parseFloat(investment);
const r = parseFloat(rateOfReturn) / 100;
const y = parseInt(years);

const amount = i * Math.pow(1 + r, y);
const returns = amount - i;
setResult(returns.toFixed(2));
};

return (
<div>
<div>
<label>Initial investment:</label>
<input type="number" value={investment} onChange={(e) => setInvestment(e.target.value)} />
</div>
<div>
<label>Annual rate of return (%):</label>
<input type="number" value={rateOfReturn} onChange={(e) => setRateOfReturn(e.target.value)} />
</div>
<div>
<label>Number of years:</label>
<input type="number" value={years} onChange={(e) => setYears(e.target.value)} />
</div>
<button onClick={calculateReturns}>Calculate</button>
{result && <p>Projected returns: \${result}</p>}
</div>
);
};

export default MutualFundCalculator;
``````

#### 3. Update the `index.js` page to use the `MutualFundCalculator` component:

Replace the content of `pages/index.js` with:

``````// pages/index.js
import MutualFundCalculator from '../components/MutualFundCalculator';

export default function Home() {
return (
<div>
<h1>Mutual Fund Returns Calculator</h1>
<MutualFundCalculator />
</div>
);
}
``````

### Backend (Express.js):

#### 1. Create a new Express.js app:

Create a new directory for your backend, then navigate into it and initialize a new npm project:

``````mkdir mutual-fund-calculator-backend
cd mutual-fund-calculator-backend
npm init -y
``````

#### 2. Install Express.js:

``````npm install express
``````

#### 3. Create an Express server:

Create a file called `server.js`:

``````// server.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 5000;

app.use(express.json());

app.post('/calculateMutualFundReturns', (req, res) => {
try {
const { investment, rateOfReturn, years } = req.body;
const i = parseFloat(investment);
const r = parseFloat(rateOfReturn) / 100;
const y = parseInt(years);

const amount = i * Math.pow(1 + r, y);
const returns = amount - i;
res.json({ returns: returns.toFixed(2) });
} catch (error) {
res.status(400).json({ error: 'Invalid input' });
}
});

app.listen(PORT, () => {
console.log(`Server is running on port \${PORT}`);
});
``````

#### 4. Run the Express server:

``````node server.js
``````

### Testing:

Now, start your Next.js app (`npm run dev`) and go to `http://localhost:3000`. You'll see the interface for a mutual fund returns calculator. Type in your initial investment, the yearly rate of return, and how many years. After you click the "Calculate" button, you'll see the estimated returns under the calculator.

Make sure your Express server is running in a different terminal window. After you click the "Calculate" button, the front end sends a POST request to the Express server to figure out the expected returns from the information you entered. The server then sends back the calculated returns, and they show up on the front end.