Giter VIP home page Giter VIP logo

bank_tech_test's Introduction

Bank Tech Test


Overview:

  This tech test is a demonstration for Objective Oriented
  design (OOD) and Test Driven Development (TDD). The goal
  is not to complete a simple challenge in a fast timeframe,
  but to meticulously outline my OOD and TDD process.

How to run:

  • Clone this repository to your local machine
    $git clone https://github.com/RyanWolfen7/bank_tech_test.git
    
  • Bundle install gems
    $ bundle install
    
  • Run rspec
    $rspec
    
  • Copy the Path to simple cov file and open in your browser
  • Open IRB
    $ irb
    
  • Require files
    require './lib/bank_account.rb'
    require './lib/statement.rb'
    
  • Create new BankAccount
    my_account = BankAccount.new('NAME HERE', 764747
    
  • Deposit monies
    my_account.deposit(1000000)
    
  • Withdraw some
    my_account.withdraw(300000)
    
  • Print statement
    my_account.statement.print_statement
    

Example:

SimpleCov

Specification


Requirements:

  • You should be able to interact with 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

Process


SetUp:

  • I began by creating a git hub repository and cloning it to my local machine
  • I then write my tentative Readme and push to my repository
  • I then brainstorm what my arch-objectives are and what I will need to solve them
    • I determine that the problem could best be implemented with Ruby, as it has a many functions that will add to the ease of developing this project and has a lot of supporting gems that will help with TDD.
    • Since I am using Ruby, I have decided to use SimpleCov, Rspec, and Rubocop as my initial gems.
      • SimpleCov to make sure I have good test coverage
      • Rspec as my testing framework
      • Rubocop as a convention linting framework
    • I then decide I will use a wire map diagram for my model
    • Then I will create user stories
  • I then install and init the Bundle gem
  • I then init Rspec
    • Insert the SimpleCov start in spec_helper
    • Ran Rspec
  • Created my Lib and assets folder
    • Created a domain_model folder and user_stories.md
  • Wrote the first user story
  • Created the domain_model.md
    • Wrote in the first user story
  • Created bank.rb and bank_spec.rb
    • Ran rspec
    • Wrote first test

First Test:

Error 1:

Error 1

Solution:

Solution 1

Error 2:

Error 2

Solution:

Solution 2

Error 3:

Error 3

Solution:

Solution 3

Error 4:

Error 4 Looks like I made a typo in my rspec. An easy fix; this is good news because it means its accessing my attr_reader

Error 5:

Error 5

Solution:

Solution 5

Error 6:

error 6

Solution:

Solution 6

Conclusion

Rspec

SimpleCov

The Rest Of The Project

  For the rest of the project I will be uploading a video to
  the readme. I will possible add a voice overlay to explain
  in further detail.

Video Here

Running Program

SimpleCov

Rspec

bank_tech_test's People

Contributors

ryanwolfen7 avatar

Watchers

James Cloos 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.