/gofinances

A simple and efficient application to control your finances.

Primary LanguageTypeScript

gofinances

Gofinances is a finance control application, with which you can add transactions manually or import a .csv file containing a list of transactions to be added.

gif

🚀 Technologies used

Front-end

  • React
  • React spring
  • Unform
  • Styled Components
  • Typescript
  • Axios

Back-end

  • NodeJS
  • Express
  • Docker
  • Postgres
  • TypeORM

 

Getting started

 

Clone this repository

git clone https://github.com/rafatrigo/gofinances.git gofinances

 

Front-end

#go to the frontend folder
cd web
#install the dependencies
yarn
#start the frontend
yarn start

 

Docker

With the Docker properly installed, make sure to create the database container.

docker run --name CONTAINER_NAME -e POSTGRES_USER=USER_NAME -e POSTGRES_PASSWORD=USER_PASSWORD -e POSTGRES_DB=DATABASE_NAME -p 5432:5432 -d postgres

Obs:

Whenever you shut down or restart the computer the database container needs to be started.

#start the container
sudo docker start CONTAINER_NAME_OR_ID

#to confirm that the container has actually started
#list active containers
sudo docker ps

If for some reason you forget the name of your container, execute the command:

#lists all the containers on your computer
sudo docker ps -a

 

Back-end

#go to the backend folder
cd backend
#install the dependencies
yarn

Duplicate the .env.example file, removing the .example part of the name (leaving only .env). After that, open the .env file and add the correct values to the variables to match what you entered when creating the Docker container.

Example:

DB_TYPE='postgres'
DB_HOST='localhost'
DB_USERNAME=USER_NAME
DB_PASSWORD=USER_PASSWORD
DB_NAME=DATABASE_NAME

After that run the migrations and start the backend.

#run the migrations
yarn typeorm migration:run

#start the backend
yarn dev:server

 

The gofinaces base was developed in Rocketseat's GoStack bootcamp, but in the beginning this project just listed transactions and created transactions from the import of a .csv file, so I added other features like a responsive layout, a button to create transactions, delete transactions and some transitions and animations.

But there are still many things to improve, so feel free to clone this repository and give your best 💪.

 

Made with 💜 by Rafael Trigo