RCalculator

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 Geolocation API (for location-based currency/data if used).

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

S
Description
Web app from comp 2800 @BCIT to practice collaboration in an agile scrum environment, sprint planning, daily stand-ups, and retrospectives.
Readme MIT
16 MiB
0 Stars 1 Watchers 0 Forks
Languages
EJS 58.2%
JavaScript 41.8%