GithubHelp home page GithubHelp logo

forage-lyft-starter-repo's Introduction

Starter Repo

__ This repo has everything you need to get started on the program, good luck!

__ Here are some key facts about this program:

You are working as a Back-End Engineer at Lyft. As a Back-End Engineer you collaborate within a larger team made up of software engineering, product, data science, analytics and operations. Your team is responsible for Lyft Rentals. Lyft Rentals provides vehicles for riders who are looking to rent a vehicle for personal use such as a weekend vacation. Throughout the program your team will takeover an unfinished project to: Come up with a clean design for an existing, unfinished component Refactor a messy codebase Write unit tests for your newly refactored system Add new functionality to your system using Test-Driven Development You’ll receive guidance and support at each step of the journey. That being said, to complete this program, it’s advised that you have a baseline understanding of Python.

__ A back-end engineer is responsible for creating the skeleton to ensure a website performs correctly. The focus for a back-end engineer is on:

Back-end logic Database management Application program interfaces (APIs) Architecture Servers As a Back-End Engineer at Lyft in the Lyft Rentals team, you’ll get to work across a range of different problems to ensure that you deliver the world’s most delightful and easy to use car rental experience.

__ The project at hand Lyft is in the process of rolling out a new rental fleet in the hopes of encouraging more connected, sustainable cities across the US.

Your team has inherited an urgent project from a fellow colleague here at Lyft who had to make a pivot to a different project. The colleague was in the process of developing a component that is used by the rental fleet’s new logistics system. Unfortunately that component was only partially completed and your team’s responsibility is to now finalize that component and make it functional.

The component itself is responsible for determining whether cars in Lyft’s new rental fleet should be serviced when they are returned. The work you will do on this component will be carried through the each of the tasks within this program.

Before we begin, let’s understand the criteria that the component must consider.

Criteria for car servicing Whether or not a Lyft rental car should be serviced depends on two factors at the moment:

The engine; and The battery. Each of the three types of engines has its own criteria for determining when it should be serviced. The same applies to each type of battery.

The current service criteria are as follows:

    <Service criteria>

Capulet Engine Once every 30,000 miles Willoughby Engine Once every 60,000 miles Sternman Engine Only when the warning indicator is on Spindler Battery Once every 2 years Nubbin Battery Once every 4 years

There are five car models in Lyft’s fleet, each with a different engine-battery combination. These are outlined below:

Calliope Capulet Engine Spindler Battery Glissade Willoughby Engine Spindler Battery Palindrome Sternman Engine Spindler Battery Rorschach Willoughby Engine Nubbin Batte Thovex Capulet Engine Nubbin Battery

These service criteria will change somewhat frequently in the future, and new car models are bound to be added to the fleet. This is an important consideration throughout the program.

With this in mind, it’s very important that the component is extensible and easy to modify, so new service criteria can be added quickly and efficiently. Just today, you learned that the system must also take tires into account when determining if a car should be serviced in the future.

Tacking this functionality onto the current system would be difficult and messy - instead, you have been instructed to take the time to refactor the codebase prior to making the change. The first step of this process is to draft up a new (clean) system architecture that will allow for the seamless inclusion of the new functionality. Your task is to draft and submit a class diagram that maps out how the system will be reorganized.

Now we understand this background information, let’s get started with the task.

forage-lyft-starter-repo's People

Contributors

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