#Title: Rental App
###Type:
- Lab / Homeowrk
###Time Required:
- 2 hours+
###Prerequisites:
- Ruby
- Hashes & Arrays
- Blocks
- OOP
- Multi-file project (require_relative)
###Objectives:
- Practice creating and initializing objects
###Activity: As a class, you will be creating an app that models the rental process. The premise is that "Owners of buildings can rent apartments to potential tenants". This app should be created using a code-along style.
- Ask students "What types of objects might you have in an app that manages rentals?"
- Settle on a list that includes building, person, and apartment
- Ask students "What types of things will each of these do (verbs)? Or what will define them (nouns)? And what type will each be?"
| Building - attribute | type |
|---|---|
| address | string |
| style | string |
| has_doorman | boolean |
| is_walkup | boolean |
| num_floors | integer |
| apartments | array of apartment objects |
| Apartment - attribute | type |
|---|---|
| price | decimal |
| is_occupied | boolean |
| sqft | integer |
| num_beds | integer |
| num_baths | integer |
| renters | array of person objects |
| Person (assume tenants or prospective tenants) | type |
|---|---|
| name | string |
| age | integer |
| gender | string |
| apartment | apartment object |
- Write attr_accessors for each object
- Write initialize methods for each object
- Write to_s methods for each object
- Write a main.rb file that allows you to build and add new objects
###Explanation
- This is a multi-file project that has a main file for working with the objects, and each class as separate files. Students are expected to build this from ground-up, and perhaps starting with the main.rb file.
###Specification:
- n/a
###Post-mortem:
- What worked?
- Student misunderstandings?