Thesis
Thesis
On
Submitted By
Guided by
Prof.
Certificate
This is to certify that the BE project seminar entitled
Submitted By
Principal
Guide P.C.E., Nagpur H.O.D ( IT)
External Examiner
2
Acknowledgement
3
Abstract
aims to provide users with quick and easy loan calculations. The
Table of Contents
4
1. Introduction
2. Objective
3. Methodology
4. Technologies
5. Features
6. Expected Outcomes
7. Conclusion
8. Bibliography
9. Appendix A
Appendix B
Introduction
5
The Mini Loan Calculator is a web-based tool that aims to
Objective
6
The primary objective of this project is to develop a Mini
Methodology
7
The Mini Loan Calculator project will be developed using
application.
Technologies
8
Next JS is a popular React framework that allows for the
Features
9
The Mini Loan Calculator is a web-based tool that provides
friendly interface.
10
Repayment period calculation: The calculator allows the
amount.
Expected Outcomes
11
interest rates, and repayment periods. The expected
12
Conclusion
periods.
Bibliography
16
const calculateLoan = () => {
if (principal > 0 && interest > 0 && time > 0) {
let p = parseFloat(principal);
let r = parseFloat(interest);
let n = parseFloat(time);
let calcemi =
p*
actualRate *
(Math.pow(1 + actualRate, n) / (Math.pow(1 +
actualRate, n) - 1));
setEmi(Math.round(calcemi));
setAmount(Math.round(calcemi * n));
setTotalinterest(Math.round(calcemi * n - p));
} else {
toast.error("Amount, Interest and Period must be
greater than 0!", {
position: "top-right",
autoClose: 5000,
hideProgressBar: true,
toastId: "id",
closeOnClick: true,
pauseOnHover: true,
17
draggable: true,
progress: undefined,
});
}
};
return (
<>
<ToastContainer />
<Box sx={{ m: 10 }} />
<Container>
<Card>
<div style={{ overflowY: "auto", padding:
"40px" }}>
<Typography variant="h5" align="center">
Loan Calculator
</Typography>
<Box sx={{ m: 2 }} />
<Grid container spacing={2}>
<Grid item md={6} xs={12}>
<Box sx={{ m: 2 }} />
<TextField
label="Enter loan Amount"
type="number"
variant="outlined"
name="loan_amount"
18
onChange={handlePrincipalchange}
value={principal}
sx={{ minWidth: "92%" }}
/>
<Box sx={{ m: 2 }} />
<TextField
label="Enter interest rate"
variant="outlined"
type="number"
name="interest_rate"
onChange={handleInterestchange}
value={interest}
sx={{ minWidth: "92%" }}
/>
<Box sx={{ m: 2 }} />
<TextField
label="Enter loan period in month"
variant="outlined"
type="number"
name="loan_period_in_month"
onChange={handleTimechange}
value={time}
sx={{ minWidth: "92%" }}
/>
<Box
m={1}
19
display="flex"
justifyContent="center"
alignItems="center"
>
<FormControl
size="large"
align="center"
style={{ marginTop: "10px" }}
>
<Button
variant="outlined"
size="large"
onClick={calculateLoan}
>
Calculate
</Button>
</FormControl>
</Box>
</Grid>
<Grid
item
md={6}
xs={12}
alignItems="center"
justifyContent="center"
>
20
<Box sx={{ m: 2 }} />
<TableContainer component={Paper}>
<Table aria-label="simple table">
<TableBody>
<TableRow>
<TableCell align="center">
<Typography variant="p">Loan
EMI</Typography>
<Box sx={{ m: 1 }} />
<Typography variant="h6"
className="font-bold">
$ {emi}
</Typography>
</TableCell>
</TableRow>
</TableBody>
</Table>
</TableContainer>
<Box sx={{ m: 2 }} />
<TableContainer component={Paper}>
<Table aria-label="simple table">
<TableBody>
<TableRow>
<TableCell align="center">
<Typography variant="p">
Total Interest Payable
21
</Typography>
<Box sx={{ m: 1 }} />
<Typography variant="h6"
className="font-bold">
$ {totalinterest}
</Typography>
</TableCell>
</TableRow>
</TableBody>
</Table>
</TableContainer>
<Box sx={{ m: 2 }} />
<TableContainer component={Paper}>
<Table aria-label="simple table">
<TableBody>
<TableRow>
<TableCell align="center">
<Typography variant="p">
Total Payment (Principal + Interest)
</Typography>
<Box sx={{ m: 1 }} />
<Typography variant="h6"
className="font-bold">
$ {amount}
</Typography>
</TableCell>
22
</TableRow>
</TableBody>
</Table>
</TableContainer>
</Grid>
</Grid>
<Box sx={{ m: 4 }} />
</div>
</Card>
</Container>
</>
);
}
Appendix B
23
Snapshots
24