ParvoCure Order System

Your team has been tasked with building a (ficticious) ordering system for a new cure for parvo. Your job is to make sure the system meets these requirements.

Your Specification

Build each of the following pieces of code

  1. Dog Age Calculator

    Input

    • Dog age in human terms

    Output

    • Dog age in dog terms

    Requirements: Take the dog age in “human” terms and convert it to “dog” terms. It should be precise because it will be used in dosage calculations.

  2. Dog Medicine Dosage Calculator

    Input

    • Dog breed
    • Dog age
    • Dog weight

    Output

    • Dosage amount

    Requirements: Can only order 1 dose per month. Dosage Amount = Base Dosage Amount from Breed to Base Dosage Map × Dog Weight + 5.

  3. Discount Calculator

    Input

    • Total_Cost
    • coupons to be applied
    • Dog_Owner_ID

    Output

    • Net_Cost

    Requirements: Medicine Cost − Discounts = Net Cost. A dog owner can only use coupons once per month. Maximum of 2 coupons per transaction. Coupon options are BOGO, 10% Off, and $10 Off.

  4. Shipping Calculator

    Input

    • Dog_Owner_Location

    Output

    • Shipping Cost

    Requirement: Shipping Fee = Net Cost + Shipping Fee from Shipping Fee by Delivery Location chart.

  5. Tax Calculator

    Input

    • Net Cost
    • Dog_Owner_Location

    Output

    • Tax Amount

    Requirement: Tax Amount = Net Cost × Tax Rate from Tax Rate by Delivery Location chart.

  6. Total Cost Calculator

    Input

    • Shipping Cost
    • Tax Amount
    • Net Cost
    • Medicine Cost
    • Discount Amount

    Output

    • Total_Cost

    Requirement: Dosage Amount × X + Tax Amount + Net Cost as Gross Total Cost.

  7. Order History

    Input

    • Dog_Owner_ID
    • Net Cost
    • Tax Amount
    • Shipping Cost
    • Purchase Date

    Output

    • The same data

    Requirement: Persist input.

  8. Your team may ask the Product Manager exactly three clarification questions during the requirements window. Choose them carefully. After the window closes, unresolved details are your team's responsibility: make a reasonable assumption, record it, and test it.

    What you submit

    1. Requirements Risk Log

    At least five risks, ambiguities, contradictions, or missing inputs. Mark the three you chose to ask about.

    2. Design

    A small architecture diagram plus one file/class per subsystem. You may refactor the starter interfaces when a product decision requires it.

    3. Implementation

    A working ordering pipeline.

    4. Tests

    Unit tests for each subsystem and integration tests that exercise the full checkout path.

    Download Python starter

    Download Java starter