ToyCity 3: Inventory Edition

Project Overview

Great job generating the last few reports. Your boss was able to use the data you prepared for her to identify some problems with how the company was being run. And now, business is booming. In the short amount of time you've been learning Ruby, you've already added value at ToyCity. Keep it up.

She's got another project for you. After reviewing your reports, your boss has decided that the inventory system needs to be redone from the ground up.

Now, she knows that's a pretty big task, so all she's looking for right now is a proof of concept. Show her that you can use your new object-oriented skills to get a prototype up off the ground.

For this project, you'll be creating a way to keep track of product inventory, customer data, and transactions. These are the same types of problems you'll commonly be solving when working on a larger-scale web-app.

Why Does This Matter?

Keeping large amounts of data organized is one of the number one challenges web developers address on a daily basis. The general organization of this project loosely reflects the structure of a tool called ActiveRecord, which is used frequently as a Ruby on Rails developer.

As you work through this project, think about real-world parallels in web apps you may already be familiar with. How might they organize their data? Which objects might they have?

Completing this Project

You should have completed all the necessary steps for finishing this project in ToyCity 3: Inventory Edition. Before submitting, ensure your program returns the correct values for all sample data provided, including:

  • Products, customers, and transactions initialize properly
  • Class methods for all and find (and its variants) work as expected for each class
  • Instance methods for products work as expected
  • Errors return when needed for each class
  • The purchase instance method for customers is properly implemented

Additionally, the following requirements have been met:

  • The project is submitted using GitHub, with regular commits
  • A reflection has been included in the top level directory
  • Code follows proper style and naming conventions

Submitting Your Project

Before submitting your project for evaluation, we recommend that you check that each of the following is true:

  • Your program runs without any errors
  • You are proud of your project and its output
  • You completed your project according to the instructions
  • You checked your project against the rubric
  • When you feel ready to submit, use the blue 'Submit Project' button below!