/finance_app

Finance App with universal control chatbot

Primary LanguageJavaScript

Finance Tracker Platform

About

Welcome to our personal finance app! Our app is designed to help you manage your finances and achieve your financial goals. We understand that managing your money can be stressful, time-consuming, and confusing, but we believe that it doesn't have to be. Our app provides a simple, user-friendly interface that makes it easy to track your income, expenses, and savings, so you can get a clear picture of your financial health.

Installation

Run

git clone https://github.com/BinniesLite/finance_app.git

To start the project from the root of the project using Docker Compose, run the command docker compose up in your terminal.

Make sure you have Docker and docker compose installed on your machine.

For front-end navigate to localhost:80 and for back-end navigate to localhost:3000

After adding packages or changing dockerfile, run docker compose up --build -d to rebuild the images in detached mode.

Note for backend

To make changes to database, you will need to first open the integrated terminal inside the container to make changes to the database. Check Prisma documentation for more instructions on how to interact with the database.

Run docker exec -it backend bash to open the integrated terminal inside the container.

Backend

This is the backend of the project. It is a RESTful API built with Node.js and Express.js. It is connected to a PostgreSQL database using Docker.

API Documentation

User

Get all users
GET /api/user
Get transaction by email
GET /api/user/email
Create user
POST /api/user/create
Update user
PUT /api/user/email
Delete user
DELETE /api/user/email

Wallet

Get all wallets
GET /api/wallet
Get wallet by id
GET /api/wallet/${id}
Create transaction
POST /api/wallet/create
Update transaction
PUT /api/wallet/${id}
Delete transaction
DELETE /api/wallet/${id}

Transaction

Get all transactions
GET /api/transaction
Get transaction by id
GET /api/transaction/${id}
Create transaction
POST /api/transactions/create
Update transaction
PUT /api/transaction/${id}
Delete transaction
DELETE /api/transactions/delete/${id}
erDiagram
  WALLET ||--o{ TRANSACTION : has
  
  USER ||--O{ TRANSACTION : make 
  USER ||--O{ WALLET : has

  WALLET { 
    string ID PK
    string name  
    date created_at 
    string description 
  }
  
  TRANSACTION {
    string ID PK
    string name 
    int wallet_id FK
    float amount 
    date created_at 
    string type 
  }

  USER {
    string ID PK
    string username
    string password
    string email
    date created_at
    url user_image

  }

Loading

Issues

If you have any issues with the project, please feel free to open an issue on the repo.