Code Monkey home page Code Monkey logo

c3projects--shipping's Introduction

Shipping!- Brenna & Wang

Build a stand-alone shipping service API that calculates estimated shipping cost for an order from another team's bEtsy application.

Learning Goals

  • Develop the ability to read 3rd party code
  • APIs
    • design
    • build
    • test
  • Continue working with JSON
  • Revisit
    • HTTP interactions
    • Testing of 3rd party services
  • Increased confidence in working with 3rd party APIs

Guidelines

  • Practice TDD to lead the development process for Models and Controllers
  • Create user stories and keep the stories up-to-date throughout the project
  • Deploy on Heroku
  • Shipping API will communicate with the bEtsy app via JSON
  • Integrate the Active Shipping gem to do shipping-specific logic for you

Project Baseline

When you've accomplished all of the baseline requirements, please issue a PR back to the bEtsy team's fork. We will review and merge your baseline, but you don't need to wait for that to happen before helping your classmates and moving on to the project requirements.

The baseline requirements are...

  • a ruby-gemset and ruby-version.
  • a new rails 4.2.2 application.
  • rspec setup in document format (hint: use a .rspec config file and the rspec_rails gem)
  • factory_girl included and set up to work with rspec
  • code coverage reporting
  • fork the repo from the original bEtsy team's fork
    • your team will work from branches and issue PRs back to this fork rather than the project master
  • create a preliminary Heroku deployment of the bEtsy project
  • review bEtsy code to come up with a basic understanding of the current checkout user flow
    • feel free to ask the "original" bEtsy team questions, but be sure you are prepared to ask them specific questions. Assume the original developers are on a new team now and are just as busy working on new work as you are.

Expectations

Given shipping addresses and a set of packages, generate a quote for the cost of shipping for these items for a given shipper.

Requirements

Technical Requirements

Your API will:

  • Respond with JSON and proper HTTP response codes
  • Allow Users to get shipping cost quotes for different delivery types
  • Allow Users to get a cost comparison of two or more shippers
  • Log all requests and their associated responses such that an audit could be conducted
  • Have appropriate error handling:
    • When a User's request is incomplete, return an appropriate error
    • When a User's request does not process in a timely manner, return an appropriate error

Your bEtsy application will:

  • Integrate packaging estimates into the checkout workflow to be able to utilize the shipping API
  • Present the relevant shipping information to the user during the checkout process
    • Cost
    • Delivery estimate
    • Tracking information (when available)

Testing

  • 95% test coverage for all API Controller routes, Model validations, and Model methods

Added Fun!

  • Do some refactoring of the bEtsy project you're working on
  • Find the seam in bEtsy app between the shopping and payment processing, and build a payment processing service

c3projects--shipping's People

Contributors

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