A nation of shopcoders

So we are back into another individual project week. We have had a week of learning basic Java, followed by a week of learning basic Android development, leading into a week of individual project work.

None of the suggested options were particularly inspiring at first glance, so I went off on a slight initial tangent thinking about what else I could do. I did think of a fortune telling app using Tarot cards, then I thought of a card playing app using Tarot cards (there are a million Tarot games). Then  I thought that was too complicated, so I was thinking of a simple trick-taking game like “The Cow Game“, a simplified version of “Aluette“.

But in the end I thought I wouldn’t go the trouble of writing my own brief and decided on one of the suggested ones:


Goal: Practice OO modelling in Java (unit tests, no UI)

You are required to build an app that allows a Shop to sell goods to a Customer. Stock and items are not important.

The Shop must be able to:

  • Make a Sale
    • The customer funds go down, shop sales go up
  • Give a refund
    • The customer funds go up, shop refunds go up
  • Report on income
    • Total sales minus total refunds

The Customer must:

  • Have a collection of possible Payment Methods:
    • CreditCard (default), DebitCard
  • Be able to select a Payment Method to pay at any Shop
  • Be able to select a Payment Method to recieve a refund onto a given Payment Method

(You may find HashMaps useful for this project)

Project Extensions

  • Add stock tracking

I thought, let’s just go boring. But I had a half hour planning session with Bobby, the other cohort members who is doing this project, and it got pretty complicated pretty quickly.



It’s going to be a challenge, but boring though it sounds, I’m getting a bit excited about working on it.

Maybe another extension could be customer complaints?



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s