Skip to content

SowinskiBraeden/RetirementCalculator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

271 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retirement Calculator

2800-202510-BBY14

Overview

RCalculator is a dynamic financial tracking application designed to help users manage and monitor their progress towards long-term financial goals, particularly retirement. It moves beyond simple calculations by providing personalized insights, tracking actual performance against planned targets, and offering a clear view of your financial journey towards achieving your desired future.


Features

  • Personalized Financial Profile: Users complete a comprehensive questionnaire to build a financial profile, enabling tailored guidance and projections.
  • Comprehensive Asset Management: Add, track, and manage various types of assets including savings, stocks, real estate, and other investments for a holistic view of net worth.
  • Strategic Goal Planning: Define long-term financial objectives (e.g., retirement, home purchase, education) and create detailed plans with actionable steps.
  • Clear Financial Projections: Visualize potential investment growth and assess the feasibility of financial plans through easy-to-understand projections and charts.
  • User-Friendly Dashboard: An intuitive dashboard provides an at-a-glance overview of financial health, asset allocation, and progress towards goals.
  • Secure User Authentication: Robust authentication system to protect sensitive financial data, including secure registration and login processes.
  • Dynamic Currency Conversion: (If applicable) Utilizes geolocation to provide relevant currency information and conversion rates for international users or assets.

Technologies Used

  • Frontend: EJS (Embedded JavaScript templates), Tailwind CSS, Vanilla JavaScript
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Authentication: express-session for session management, bcrypt for password hashing.
  • Data Validation: Joi for schema validation.
  • APIs: Google Gemini API for generating financial advice. Geolocation API for currency conversion.

Prerequisites

  1. You'll need to setup an instance of MongoDB. You can use the cloud platform, MongoDB Atlas, or create your own instance locally.
    i. Create your MongoDB Altas instance.
    ii. Create your local MongoDB server instance.

    After this, you'll need to get your MongoURI from your database instance, as well as your database name for later configuration in the .env file.

Usage

  1. Clone the repository:

    git clone https://github.com/JoaquinPar/2800-202510-BBY14.git
    cd 2800-202510-BBY14
  2. Install dependencies:

    npm install

    This will install Express, express-session, EJS, dotenv, and any other required packages listed in package.json.

  3. Create and configure the environment file:

    • Create a file named .env in the root directory of the project.
    • Add the necessary environment variables to this file.
  4. Run the application:

    node app.js

    The application should now be running, typically on http://localhost:3000 (or the port specified in your .env file).


Project Structure

retirementCalculator/
├── src/
│   ├── auth/                 # Authentication logic (e.g., passport setup, strategies)
│   ├── database/             # MongoDB connection, schemas, models
│   ├── public/               # Static assets
│   │   ├── images/           # Site images and icons
│   │   ├── scripts/          # Client-side JavaScript files
│   │   └── svgs/             # SVG icons
│   ├── router/               # Express route definitions
│   ├── util/                 # Utility functions (e.g., calculations, helpers)
│   └── views/                # EJS templates
│       └── partials/         # Reusable EJS partials (headers, footers, nav)
│
├── .env.example              # Example environment variables file
├── .gitignore                # Specifies intentionally untracked files that Git should ignore
├── app.js                    # Main application entry point
├── CONTRIBUTING.md           # Guidelines for contributing to the project
├── LICENSE                   # Project license information
├── package-lock.json         # Records exact versions of dependencies
├── package.json              # Project metadata and dependencies
└── README.md                 # This file

Contributors


Limitations and Future Work

Limitations

  • Generalized Advice: The application provides financial guidance based on user input and common models; it does not substitute professional financial advisory services.
  • Market Volatility: Projections are based on assumed rates of return and do not account for all potential market fluctuations or unforeseen economic events.
  • Manual Data Entry: Asset information and updates currently require manual input.
  • Single User Focus: Primarily designed for individual financial planning.

Future Work

  • Third-Party API Integrations: Connect with financial institutions (e.g., Plaid) for automated asset tracking and transaction importing.
  • Advanced Reporting: Implement more detailed financial reports, customizable charts, and data export options (e.g., PDF, CSV).
  • Enhanced Security Features: Implement Two-Factor Authentication (2FA) and advanced security audits.
  • Educational Resources: Integrate a section with articles, tips, and resources on financial literacy and planning.

License

MIT LICENSE

About

Web app from comp 2800 @bcit to practice collaboration in an agile scrum environment, sprint planning, daily stand-ups, and retrospectives.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • EJS 58.2%
  • JavaScript 41.8%