Skip to content

I've set out to build a comprehensive personal finance manager application that allows users to track their income, expenses, and savings. The application provides a user-friendly interface for managing personal finances, visualizing data, and setting financial goals.

License

Notifications You must be signed in to change notification settings

KeithLamb72/personal-finance-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Personal Finance Manager

Table of Contents

Introduction

Personal Finance Manager is a web application that allows users to manage their finances by tracking income, expenses, and savings. Users can visualize their financial data using charts and set financial goals to achieve better financial health.

Features

  • User authentication (register, login, logout)
  • Add, edit, delete transactions (income and expenses)
  • Categorize transactions
  • Dashboard with financial data visualization (charts)
  • Generate monthly and yearly financial reports
  • Set and track financial goals

Technologies

Backend

  • Node.js
  • Express
  • MongoDB
  • JWT (JSON Web Tokens)
  • Bcrypt.js

Frontend

  • React
  • React Router
  • Axios
  • Chart.js
  • React Chart.js 2

Project Structure

Backend

server/
│
├── config/
│   └── db.js
│
├── controllers/
│   ├── authController.js
│   └── financeController.js
│
├── models/
│   ├── User.js
│   └── Transaction.js
│
├── routes/
│   ├── authRoutes.js
│   └── financeRoutes.js
│
├── middleware/
│   └── authMiddleware.js
│
├── .env
├── server.js
└── package.json

Frontend

client/
│
├── public/
│   └── index.html
│
├── src/
│   ├── components/
│   │   ├── Auth/
│   │   │   ├── Login.js
│   │   │   ├── Register.js
│   │   │
│   │   ├── Finance/
│   │   │   ├── AddTransaction.js
│   │   │   ├── TransactionList.js
│   │   │   └── TransactionChart.js
│   │   │
│   │   ├── Layout/
│   │   │   ├── Header.js
│   │   │   ├── Footer.js
│   │   │
│   ├── pages/
│   │   ├── Home.js
│   │   ├── Dashboard.js
│   │   ├── Login.js
│   │   ├── Register.js
│   │
│   ├── App.js
│   ├── index.js
│
├── .env
├── package.json
└── README.md

Setup and Installation

Prerequisites

  • Node.js (v14.x or higher)
  • MongoDB

Backend

  1. Clone the repository and navigate to the server directory:

    git clone https://github.com/your-username/personal-finance-manager.git
    cd personal-finance-manager/server
  2. Install backend dependencies:

    npm install
  3. Create a .env file in the server directory and add your MongoDB URI and JWT secret:

    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_jwt_secret_key
    
  4. Start the backend server:

    node server.js

Frontend

  1. Navigate to the client directory:

    cd ../client
  2. Install frontend dependencies:

    npm install
  3. Start the React development server:

    npm start
  4. Open your browser and go to http://localhost:3000 to see the application.

Usage

Authentication

  • Register a new user.
  • Log in with the registered user credentials.
  • The dashboard will be accessible upon successful login.

Managing Transactions

  • Add new income or expense transactions.
  • Edit or delete existing transactions.
  • Categorize transactions for better organization.

Dashboard

  • View an overview of your financial data.
  • Visualize income and expenses using charts.
  • Track financial goals.

Endpoints

Authentication

  • POST /api/auth/register: Register a new user.
  • POST /api/auth/login: Log in an existing user.

Transactions

  • POST /api/finance/transaction: Add a new transaction.
  • GET /api/finance/transactions: Get all transactions for the logged-in user.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes with clear and descriptive messages.
  4. Push your changes to your fork.
  5. Submit a pull request with a detailed description of your changes.

Contact

For questions or suggestions, please contact:

About

I've set out to build a comprehensive personal finance manager application that allows users to track their income, expenses, and savings. The application provides a user-friendly interface for managing personal finances, visualizing data, and setting financial goals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published