Giter VIP home page Giter VIP logo

oo-betterlyft's Introduction

BetterLyft™

Deliverables

You are building an app for a Lyft/Uber competitor. The models that you will use for your application are: Passenger, Driver, and Ride.

Domain Modeling

  • A Passenger has many rides
  • A Driver has many rides
  • A Ride belongs to a passenger and a driver

Always start by drawing out the relationship either on a whiteboard or piece of paper. Think about how each of these models will be connected. From there then begin writing code.

Deliverables

We'd like for you build out the following methods for each class. As you work, we want to make sure we are testing our code every step of the way. We've made a file for you to test out your methods. You can run the command ruby tools/console.rb and it will run that file, along with all of the variables or actions you declare in the tools/console.rb.

Passenger

A Passenger should be initialized with a name as a string. After the Passenger has been initialized, it shouldn't be changed.

  • Passenger#name
    • Returns the name of the passenger
  • Passenger#rides
    • Returns an array of Ride instances that this person has been on
  • Passenger#drivers
    • Returns an array of Driver instances that this person has rode with
  • Passenger#total_distance
    • Returns the floating number that represents the total distance the passenger has travelled using the service
  • Passenger.all
    • Returns an array of all Passengers
  • Passenger.premium_members
    • Returns an array of all Passengers who have travelled over 100 miles in total with the service

Ride

A Ride should be initialized with a driver (as a Driver object), a passenger (as a Passenger object), and a distance (as a float i.e. 3.2). The distance refers to miles.

  • Ride#passenger
    • Returns the Passenger object for that ride
  • Ride#driver
    • Returns the Driver object for that ride
  • Ride#distance
    • Returns the distance of the ride
  • Ride.average_distance
    • Returns the average distance across ALL rides

Driver

A Driver should be initialized with a name as a string.

  • Driver#name
    • Returns the driver's name
  • Driver#passenger_names
    • Returns an array of all Passengers' names a driver has driven. The names should be unique (no repeats).
  • Driver#rides
    • Returns an array of all Rides a driver has made
  • Driver.all
    • Returns an array of all Drivers
  • Driver.mileage_cap(distance)
    • Takes an argument of a distance (float) and returns an array of all Drivers who have driven over the mileage

oo-betterlyft's People

Contributors

maxcell avatar yberdysh avatar

Stargazers

 avatar

Watchers

 avatar  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.