Git Product home page Git Product logo

agile-freight's Introduction

CircleCI Build Status Codeship Status for jamesmillerburgess/agile-freight

Agile Freight

Agile Freight is a freight forwarding tool created to demonstrate best practices in agile development. It is the case study used in my video series on YouTube.

agile-freight's People

Contributors

ceciliaburgess avatar jamesmillerburgess avatar

Stargazers

 avatar

Watchers

 avatar  avatar

agile-freight's Issues

Quote Process Issues 2

Quality

  • Set up CI to run for all commits
  • Acceptance tests
  • Set up code coverage to run for all commits

Major

  • Cannot create/edit a customer
  • Cannot send quote via email
  • UNLocation names malformed
  • MDM missing from production database
  • Login/logout needs updating

Minor

  • Status isn't stored in state
  • Expiry date isn't stored in state
  • Subdivision displays in location
  • Could show something generic in cargo for rated quotes
  • Display something else if there are no charges in a group
  • Quote currency selector
  • Scroll to top when clicking submit button
  • Visibility options in email editor
  • Show quote number somewhere
  • Show quote status somewhere
  • Regexp for extracting email addresses
  • Containers total label not pluralized correctly
  • Total columns stretch charge grid
  • Container total label misaligned
  • Disable/default logic for Units input based on rate basis
  • Email table formatting
  • Clearer button indications in list
  • Default text/options if no customers or no quotes
  • No default currency for customer
  • Might be better to write out container types in the quote preview
  • Need subdivision for US and some other countries
  • No indication if location is a port/airport/city
  • No default notes for branch
  • No default email information

Refactoring

  • Break down CSS
  • Use more flex display

Customer Create/Edit

  • Mockups
  • Customer List Screen
  • Customer Create Screen
  • Link Customer Properties to Quote

List Item Design

Stuff to Do

  • Rethink design of list items
  • Remove icon buttons and bring into the detailed view?
  • Single line item combining quotes+shipments etc.?
  • Clearer label 'QUOTE!!!', 'SHIPMENT!!!', with different colors or callout?
  • Generate shipment number
  • Reformat content
  • Re-implement copy quote and create shipment

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • Prettier on all changed files
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Chrome
  • Works on Safari

Add Branch Screen (Admin-Only)

  • Add admin property to users
  • Create two users in fixtures: one admin, one regular
  • Add a branch list screen with admin validation
  • Add a branch edit screen
  • Connect to branch methods
  • Reducer for editing branch name
  • Reducer for loading branch
  • Add edit screen for branches

Quote Process Issues 1

Major

  • Header doesn't appear in quote preview in email editor
  • Font color for disabled container type button
  • Container cargo header row misaligned
  • Container temperature controlled checkbox misaligned
  • Container hazardous checkbox misaligned
  • Container totals misaligned
  • Redirect back to customer after sending email
  • Text alignment in charge name
  • More rate basis options
  • Auto-size notes
  • Save notes
  • Right align unit price
  • Subtotals/totals don't display in edit email
  • Better display of properties in quote list
  • Archive button doesn't do anything
  • Pickup/delivery locationName isn't stored in state
  • Fix UNLocations subscriptions
  • More currency options
  • Charge currency doesn't save
  • No glow around add/remove buttons on focus
  • Display total price on the top of the quote as well
  • Unit price value unnecessary if units = 1
  • Local amount value unnecessary if unit price currency = quote currency
  • Display currency in local amount
  • Display currency in final amount
  • Currency conversion
  • Sort order of quotes

Refactoring

  • Rename components to match process steps

Adjust customer view to include shipments (under quotes?)

Stuff To Do

  • Create wireframe mockup
  • Create visual stub
  • CSS styling for shipments
  • Subscribe to shipment data (minimize loading time)
  • Add sample data to database
  • Adjust react component to display shipments
  • Placeholder data fields for shipment line item
  • Styling for active/inactive shipments

Definition of Done

  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • New business logic separated from view logic
  • History.md is updated
  • Works on Safari
  • Works on Chrome

2 Customer field

Options

  • Easiest version - text field
  • Easy version - cache all customers and put in dropdown
  • Harder version - all customers come via search
  • Hardest version - cache common customers and rest come from async search

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

2 Build link to and stub for shipment editor

Stuff To Do

  • Add route to shipment
  • Split quote and shipment links
  • Build URL for shipment link
  • Render shipment editor stub

Definition of Done

  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • New business logic separated from view logic
  • History.md is updated
  • Works on Safari
  • Works on Chrome

1 Ability to record shipment cargo

Stuff To Do

  • Add description field to shipment cargo
  • Add shipment create method to API
  • Add create shipment button to quote
  • Adjust QuoteListItem to read from 'shipments' instead of 'shipment'
  • Add shipment save method to API
  • Add shipment archive method to API
  • Add shipment buttons to component
  • Link methods to front-end

Definition of Done

  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • New business logic separated from view logic
  • History.md is updated
  • Works on Safari
  • Works on Chrome

Demo

  • Missing package type 'Cases'
  • No way to enter total weight directly
  • Temperature Controlled is misaligned
  • Missing rate basis 'Package'
  • Missing rate basis 'Declaration'
  • Missing rate basis 'HAWB'
  • Default currency for my customer is not 'INR'
  • Units don't populate automatically from the cargo
  • No label as Air/Ocean freight
  • No Incoterms
  • No carrier
  • No chargeable weight

Editor Formatting

Stuff to Do

  • Show/hide containers based on mode
  • Show/hide document buttons based on mode
  • Fix density ratio field width
  • Fix description field height on initial load
  • Add shipment status to reducers
  • Add status logic to buttons on EditShipment
  • Add confirm Meteor Method
  • Update store on callback from Confirm
  • Ability to complete events => change status
  • Adjust breadcrumbs to be meaningful

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

2 Missing information on job: shipper, consignee, etc.

Missing Information

  • Shipper
  • Shipper address
  • Consignee
  • Consignee address
  • Notify party
  • Notify party address
  • Pre-carriage by
  • Vessel
  • Customer reference
  • B/L type

Stuff To Do

  • Add to screen
  • Create reducers
  • Create action creators
  • Connect to components
  • Pass into document creator
  • Get this stuff to save in the shipment collection

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

Link Customers and Users to Branches

  • Convert branch field to Select in customer editor
  • Add edit mode to customers (currently it only creates)
  • Add user profile editor
  • Reducers for user profile editor

5 Basic Air Waybill

Stuff To Do

  • Draw static text
  • Bring existing field values into PDF

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

3 Adjust Cargo component to be isomorphic between Shipment and Quotation

Stuff To Do

  • Create shipment reducer w/ cargo reducer
  • Add description to cargo reducer
  • Refactor cargo component out of quote editor
  • Add display mode to cargo component

Definition of Done

  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • New business logic separated from view logic
  • History.md is updated
  • Works on Safari
  • Works on Chrome

5 Bill of lading generation

Stuff To Do

  • Client-side pdf generator
  • Trigger pdf from button in shipment
  • Convert pdf generator to ES6
  • Split long descriptions between pages if necessary
  • Put some content on pdf

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

1 Add tests exercising component props for new components

Stuff To Do

  • Add tests to EditCargo
  • Add tests to EditShipment (not really needed as there isn't any display logic yet)

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

Branch Collection

  • Create collection
  • Create publication (all branches)
  • Subscribe to publication on load
  • Add method
  • Add a branch in fixtures and hard-code into initial subscription (temporary)
  • Update method

Dependencies

  • Adjust existing branch publication to filter by branch

Low Priority

  • Archive method

4 Ability to record shipment movement

Stuff To Do

  • Add movement reducer to shipment reducer
  • Refactor movement into its own component
  • Add movement component to EditShipment
  • Add date reducers to movement reducer
  • Create DateField component
  • Connect shipment to reducers
  • Create setting for displaying datetime fields in movement
  • Set datetime display to false in the quote editor
  • Set datetime display to true in the shipment editor

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

Filter By Branch

  • Convert filter to Select
  • Default branch filter by user's branch
  • Add filter to reducers
  • Apply filter to customer list

2 Ability to reflect shipment status

Stuff To Do

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

1 Ability to bring quotation information into a shipment

Stuff To Do

  • Modify the shipment.new method to copy quote info

Definition of Done

  • New business logic separated from view logic
  • View layer tests exercise all props combinations
  • All tests passing local
  • All tests passing CircleCI
  • All tests passing TravisCI
  • History.md is updated
  • Works on Safari
  • Works on Chrome

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.