Git Product home page Git Product logo

shipping-service's Introduction

Shipping Service API

Build a stand-alone shipping service API that calculates estimated shipping costs. Then, implement your shipping service API into the provided bEtsy application, Petsy.

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
  • Have two Heroku depoloyments, Petsy and Shipping API
  • Shipping API will communicate with Petsy via JSON
  • Integrate the ActiveShipping gem to do shipping-specific logic for you

Project Baseline

Setup both rails applications Before building and implementing your shipping API. One rails app will be the provided Betsy project, Petsy. The other will be from scratch, for your Shipping API.

Baseline Requirements

  • a new Rails 4.2.7 application for your API
    • a Ruby gemset that locks the Ruby version to 2.3.1
    • simplecov for code coverage reporting
  • create a NEW fork from Petsy
    • host your forked Petsy app on Heroku
    • review Petsy code to come up with a basic understanding of the current checkout user flow

Project Expectations

Your API should generate a quote with options of shipping services and thier cost by different carriers. The quote will be based on given addresses and a set of packages. Then, implement your API into Petsy.

Technical Requirements

Your API will:

  • Respond with JSON and meaningful HTTP response codes
  • Allow Users to get shipping cost quotes for different delivery types (standard, express, overnight, etc.)
  • Allow Users to get a cost comparison of two or more carriers
  • 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 Petsy application will:

  • Integrate shipping estimates into the checkout workflow using your 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 actions, Model validations, and Model methods

Added Fun!

  • Allow merchants to view the total shipping costs for all of their products in a particular order
  • Find the seam in Petsy between the shopping and payment processing, and build a payment processing service

shipping-service's People

Contributors

goaskcarmen avatar hamled avatar jnf avatar yaelittle 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.