Giter Club home page Giter Club logo

personal-finances's Introduction

Personal Finances

Tests Codacy Badge

Dependencies

Environment Set Up

pipenv sync --dev

Frontend created with Next + Typescript

Running outside containers

On Ubuntu:

sudo apt-get update
sudo apt-get -y install postgresql  # confirm if this dependency is necessary

Deployment

cd backend
pipenv clean
pipenv install
source `pipenv --venv`/bin/activate 

cd api/personal_finances
pip install zappa==0.52.0
zappa deploy|update dev  # updates returns an error, but works

To Do's

Troubleshooting

When facing issues with pipenv install, I had to:

  • deactivate the virtualenv: deactivate
  • set the python to the desired version: pyenv global 3.8.7
  • install pipenv on that python version: pip install pipenv
  • after that, it worked

Another error:

personal-finances's People

Contributors

taciogt avatar codacy-badger avatar

Stargazers

 avatar Teles avatar

Watchers

James Cloos avatar  avatar

personal-finances's Issues

Create new screen with assets list

Create a new screen with an assets lists. This screen will be responsible for listing all users financial assets and their current status (what is a "status" is something to be defined, but can be something like active/inactive, current value, etc).

  • Create a new menu item that goes to a new screen
  • In the new screen, show a table with a list of assets

Get budget when there's no budget set

When there's no budget set, the /budgets endpoint returns a Server Error.
In this situation, the expected behavior is to return a 204 (No Content) status code.

Provide a slider for setting percentages

Set the percentages for each budget bowl using a combination of SLIDER and number input.

  • The number input should be usable by arrow keys
  • The slider and the number input should be synchronized

Groups the backend application in a single directory

The backend application is split in two directories at the root of the project:

  • The core directory with the budget backend business rules
  • The backend directory with the budget api

There should be a single "budget backend" directory with all files required to build the backend application.

Call backend to save budget set by the user

Using the web interface, the user should be able to call the backend api do save the budget.

  • It is not necessary for the backend to save that information in some kind of "persistent" state;
  • The interface must provide a feedback for a "loading state";
  • The interface must provide feedback for sucessful API calls;
  • The interface must provide feedback if there's some kind of error on the API call;

Setup a Monthly Budget

Setup a monthly budget with a default percentage for each class of expenses.
Class of expenses:

  • Essentials: 55%
  • Education: 5%
  • Goals: 20%
  • Retirement: 10%
  • Loose: 10%

Configure the percentage for each class, keeping the total locked in 100%.

Get saved Budget when loading the frontend component

On loading the frontend component for setting the budget, show the current saved budget if there is one available (saved on database).

  • Shows a loading feedback when waiting for the API response
  • Uses the returned budget for the component
  • Creates a default budget if there is none available in the api

Remove unnecessary vertical scroller

Even when there is enough height on the screen, the vertical scroller appears because there is more window height than necessary for the screen content. Somehow, this extra height is created by the toolbar style in Menu.tsx:

 toolbar: {
      display: 'flex',
      alignItems: 'center',
      justifyContent: 'flex-end',
      padding: theme.spacing(0, 1),
      // necessary for content to be below app bar
      ...theme.mixins.toolbar,
    }

More specifically, by the ...theme.mixins.toolbar,. This scroll should be remoiving without breaking the page layout.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.