/Recruitment-Test

A little coding dojo c#

Primary LanguageC#

Intro

A big part of what we do at JustGiving is reclaim the Gift Aid on donations made to charities. This saves them a lot of time and processing overheads.

This assignment is a very small task to create a Gift Aid calculator.

For reference, Gift Aid is calculated as follows:

[Donation Amount] * ( [TaxRate] / (100 - [TaxRate]) )

  • This assignment takes an average of about 30 minutes.
  • We use NUnit and Moq at JustGiving, references have been added using NuGet Packages. Everything is in place for you to just write the code (no "File > New Project" required).
  • Please DO NOT fork this project on Github, as we want to be sure candidates' test submissions are original.

Task requirements

  • All stories to be completed with an appropriate level of testing.
  • No actual database implementation is required, feel free to stub it out.
  • Your code should trend towards being SOLID.
  • Please download the Recruitment-Test repository, complete the tasks as you see fit.
  • Send us a Dropbox/Skydrive/whatever link to your zipped code to james.adams@justgiving.com but please do not send attached zip files via email!

Task Stories

Please complete each story in order.


Story 1

As a donor
I want to see my gift aid calculated according to the current tax rate
So that I know how much extra cash the charity will make

Acceptance criteria

  • Gift aid calculated at a tax rate of 20%.
  • Supported by unit tests.

Story 2

As a site administrator
I want to be able to change the applicable tax rate
So that I don't need to change the code when the tax rate changes

Acceptance criteria

  • Current Tax Rate is retrieved from data store.
  • Gift Aid amount is calculated based on the current amount in the data store.

Story 3

As a donor
I want to see my gift aid amount rounded correctly to 2 decimal places
So that I'm not confused about how much will be paid to the charity

Acceptance criteria

  • Gift aid amount correctly rounded to 2 decimal places (1.316 should round to 1.32).

Story 4

As an events promoter
I want to supplement gift aid payments based on event type
So that people will feel inspired to donate to these event types

Acceptance criteria

  • 5% supplement added for donations to "running" events.
  • 3% supplement added for donations to "swimming" events.
  • No supplement should be applied for other events.

Thanks for your time, we look forward to hearing from you!