Git Product home page Git Product logo

bank_tech_test's Introduction

Bank practice tech test

This is a ruby program that can be run in irb or pry, which has the following functionality developed using TDD and using OO principles: (See Specification below for more details).

Getting started

Enter the following commands in your terminal to download the program:

  • git clone https://github.com/shezdev/bank_tech_test.git
  • cd into the bank_tech_test directory
  • Please run bundle to install the necessary ruby gemfile dependencies

Usage

  • Type the command pry in your terminal to run the example tests provided in .pryrc
  • Alternatively, open irb and enter the following commands:
> bc = BankAccount.new

 => #<BankAccount:0x007fac528b0f78 @balance=0, @log=#<TransactionLog:0x007fac528b0f50 @transactions=[]>>
> bc.deposit("01/01/2012", 100)
 => [{:date=>"01/01/2012", :credit=>100, :debit=>0, :balance=>100}]
> bc.withdraw("02/01/2012", 10)
 => [{:date=>"01/01/2012", :credit=>100, :debit=>0, :balance=>100}, {:date=>"02/01/2012", :credit=>0, :debit=>10, :balance=>90}]
> bc.getStatement
 date      | credit | debit | balance
--------------------------------------
01/01/2012 |   100   |  0  |  100
02/01/2012 |   0   |  10  |  90

NOTE: The following commands will cause the program to exit with the message: "Withdrawal denied: insufficient funds" bc = BankAccount.new bc.withdraw("02/01/2012", 10)

Running tests

Use the command rspecto run tests

RSpec tests

Specification

Requirements

  • You should be able to interact with the your code via a REPL like IRB or the JavaScript console. (You don't need to implement a command line interface that takes input from STDIN.)
  • Deposits, withdrawal.
  • Account statement (date, amount, balance) printing.
  • Data can be kept in memory (it doesn't need to be stored to a database or anything).

Acceptance criteria

Given a client makes a deposit of 1000 on 10-01-2012 And a deposit of 2000 on 13-01-2012 And a withdrawal of 500 on 14-01-2012 When she prints her bank statement Then she would see

date       || credit || debit   || balance
14/01/2012 ||        || 500.00  || 2500.00
13/01/2012 || 2000.00||         || 3000.00
10/01/2012 || 1000.00||         || 1000.00

User Stories

As a user
So that I can keep my money somewhere safe
I'd like to open a bank account
As a user
So that I know how much I can spend this month
I'd like to see my account balance
As a user
So that I can save money for a rainy day
I'd like to deposit some cash in my bank account
As a user
So that I can pay for my groceries
I'd like to withdraw some cash from my account
As a user
So that I can see what I've saved and spent this month
I'd like to see my bank account statement with dates for each transaction

bank_tech_test's People

Contributors

shezdev avatar

Stargazers

 avatar

Watchers

 avatar

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.