Code Monkey home page Code Monkey logo

rideshare-rails's Introduction

Rideshare Rails

In this application you will build a website to model a small community ridesharing app.

In this implementation we'll be seeding with static data, and also building a tool to allow passengers or new drivers to sign up and add their own data.

As you are using ActiveRecord to access the database compare the methods that are given to those you had to create in the CSV implementation of Ride Share 2.

This project is meant to be exploratory. Take time to try to dive into each piece of Rails (routes, controllers, models, views). This project is built so that you and your partner can create the waves yourself based on the dependencies of the requirements given.

Learning Goals

This project should demonstrate you ability to:

  1. Create multiple related Active Record Models
  2. Create models with validations and methods performing business logic
  3. Craft effective RESTful routing
  4. Work with a partner to create an attractive and functional Rails site
  5. Practice Agile methodology
  6. Use CSV files to seed data into a rails app.

Best Practices

  • Use git relentlessly
  • Pair program on difficult problems and to share learning experiences

Baseline

Before you start writing any code:

  • Review the requirements with your partner
  • Create a Trello board
    • Organize your tasks/stories
    • Discuss who will do which tasks and when you will target completion
      • What things should be done together as pairs vs individually?
    • Organize your tasks/stories into iterations (a.k.a waves)
  • Create a data diagram based on the original data specification

Once the above is complete, this project:

  • Requires a shared repo with your partner as a collaborator
  • Requires you to create a Rails application which
    • Conforms to Rails conventions on naming and inflection
    • Is created by using rails new . you will create a new rails app inside of the fork folder instead of creating a new folder for your rails app
    • Uses Postgresql as it's database.

Your team shall submit a pull request with a link to your Trello board once you are done with the baseline which shall be reviewed before moving onto implementing the requirements

Minimum Requirements

However far you and your partner get, the application should have, at a minimum, the following features:

  • Seeded data in your database from the original CSV files
  • Multiple, related, Active Record models
  • RESTful routing
  • Deployed application to Heroku
  • A "look and feel" that will make you and your partner happy!

Things to Keep in Mind

  1. Try to include useful business logic in your model classes.
  2. You can include nested routes, but avoid routes that are more than 2-levels deep.
  3. Use Semantic HTML
  4. Make good use of partial views
  5. Don't forget validations! (can a trip exist without a driver or passenger...)
  6. You may not be able to get all the user stories done. Prioritize!

User Stories

Overall

  • From any page I can click a menu entry to create a new passenger
  • From any page I can click a menu entry to create a new driver
  • From any page I can click a menu entry to view a list of all passengers
  • From any page I can click a menu entry to view a list of all drivers

Viewing Passengers

  • On the passenger list page I can click on a passenger to see that passenger's details
  • On the passenger's details page:
    • I can see a list of trips that passenger went on
    • Shows the total amount the passenger has been charged
    • Clicking on an individual trip will bring up details for the trip
    • On a specific passenger's page I can edit and delete that passenger
    • When viewing a passenger's details I can add a new trip
      • When creating a new trip
        • An available driver is selected by the server automatically
        • The trip starts with no rating
      • A new trip cannot be created until all that passengers trips are rated.
    • When viewing a passenger's trips you can assign a rating for the trip, 1-5

Investigating Trips

On the trip details page

  • I can view details of the trip and links to the driver and the passenger
  • I can choose to edit and delete details about the trip

Viewing Drivers

  • From any page I can click a menu entry to be taken to the driver index page and see a list of all the drivers
  • On the driver index page I can click on an individual driver to see that person's details
  • On the driver details page, I can see a list of trips that driver made
    • Clicking on an individual trip will bring up details for the trip
    • The driver details page will also show the driver's total earnings (total of each trip minus 15%)
  • The driver list and driver details pages show the driver's average rating
  • On the drivers page I can create, edit and delete drivers

rideshare-rails's People

Contributors

add2point71dots avatar cheezitman avatar janicewilson avatar kariabancroft avatar

Watchers

 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.