JStonham / budjen

MIT License
0 stars 0 forks source link

budjen

Build Status

Design

User Journey

  1. User runs application.
  2. Application prints report.

Requirements

  1. The application should show the user how much money they make every month.
  2. The application should show the user how much money they spend every month.
  3. The application should show the user how much money they have saved every month and for the year.
  4. The application should show the user what they are spending their money on.
  5. The application should deal with money in pounds sterling.
  6. The application should deal with time using the absolute calendar month and year.
  7. The application should use the English language for input and output.
  8. The application should be built in the Java 8 programming language.
  9. The user will be the person who invokes the application.
  10. A purse is a representation of a number of money in pounds sterling.
  11. How much money is made per month will be represented in terms of a credit to the purse.
  12. How much money is spent per month will be represented in terms of an expenditure from the purse.
  13. How much money is saved per month will be represented in terms of the difference between the credit and the expenditure.
  14. How much money is saved per year will be a cumulative count of the difference between the credit and the expenditure in a calendar year.
  15. The user will interact with the application and enter particular details for each transaction.
  16. Each transaction will include a transaction type, a transaction description and a number of money in pounds sterling.
  17. The transaction type will be in the form of a credit or an expenditure.
  18. The transaction description will be formed of a list of credit and expenditure options.
  19. All money entered by the user into the purse will be in non-negative values.
  20. The application will display credit and expenditure in non-negative values.

1st Sprint - created 23/08/2018

  1. The application should show the user what they are spending their money on.
  2. The application should deal with money in pounds sterling.
  3. The application should deal with time using the absolute calendar month and year.
  4. The application should use the English language for input and output.
  5. The application should be built in the Java 8 programming language.

2nd Sprint - created 30/08/2018

transaction type field with enum for credit and debit and write tests rename bank to purse generate seed data - make lots of transactions with type, description and money

3rd Sprint - created 06/09/2018

make seed data have different dates (TEST!!) create a main Application class that when run will print a list of all the transactions in chronological order (TEST!)

This is entire Budjen class with main method. Cannot change this!

public class Budjen {
    public static void main(String[] args) {
        new Application().start();
    }
}

4th Sprint - created 13/09/2018

Classes should only have one purpose and at the moment Application is used for many things. Application should delegate to other classes using dependency fields. Use TDD to create the extra classes.

Make sure you test the Orderer and the TransactionFormatter! You may attempt to test the Application class too as extra credit (not that there's a grading system) - but don't fret if you get stuck on that one.