Skip to content

tdsilve/finance-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Personal Finance Tracker

This application helps to manage the income and expenses of the user. The transactions are saved on the backend using a HTTP restful API.

Info

image

  • Fronend:

    • React:
  • Backend:

    • ExpressJS
    • MongoDB (Mongoose)

How to run this APP?

  1. Run npm install to install all dependencies.

  2. Run npm start to start the app.

    Note: In your browser, navigate to: http://localhost:3000/

How to run the backend with nodemon?

  1. Run npm run start.

About the API

API Reference

The Personal Finance Tracker API is organized around REST. It has a resource-oriented URLs, accept form request body, return JSON response, and uses standard HTTP response to indicate the success or failure of an API request.

Errors

This API raise exceptions for many reasons, such as missing required field, network unavailability, etc.

For example, there are 4 required fields: type, categories, escription and value, if one of them is missing the response will be:

{
   "error": "transactions validation failed: value: Number field required, description: Description field required, category: Category field required, "NAME OF THE REQUIRED FIELD": Type field required"
}

Parameters

This API has the following parameters:

{
    type:{
        type: String,
        required: [true, 'Type field required']
      },
      category:{
        type: String,
        required: [true, 'Category field required']
      },
      description:{
        type: String,
        required: [true, 'Description field required']
      },
      value:{
        type: Number,
        required: [true, 'Number field required']
      }

}

Those parameters are required in order to insert a new information.

Search

The API has no required parameters and the user can request information by inputing the following fields:

     category:{
        type: String
      },
      description:{
        type: String
      },
      value:{
        type: Number
      }
      

Example request: GET

http://localhost:5001/api/transactions?value=50&category=food

Response:

[
    {
        "_id": "6248e768b8c138906eb279a7",
        "type": "expense",
        "category": "food",
        "description": "ifood",
        "value": 50,
        "__v": 0
    }
]

Add a new information

POST

http://localhost:5001/api/transactions

User input

   {
       "type": "income",
       "category": "house",
       "description": "rent",
       "value": 1000
   }

Result:

{
   "type": "income",
   "category": "house",
   "description": "rent",
   "value": 1000,
   "_id": "6248fbc7351cfdb8c6b1ab5d",
   "__v": 0
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published