3.2. UML Diagrams

3.2.1. Overview

An overview of this inventory system is illustrated by the following UML diagrams.

For more information about UML diagrams, please see any of these links.

3.2.2. Scan QR Code

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Scan QR Code)
User --> (Use)

note right of (Use)
The response from the Warehouse System
determines the next screen presented.
end note

note as N3
Label includes a QR code and a box number.
end note

(Scan QR Code) .. N3

N3 ..(Use)

(Use) .. (New Box)

(Use) .. (Existing Empty Box)

(Use) .. (Existing Filled Box)

(New Box) .. (Checkin)

(Existing Empty Box) .. (Checkin)

(Existing Filled Box) .. (Checkout)

(Existing Filled Box) .. (Move Box)

(Existing Filled Box) .. (Consume Box)

@enduml

Scan QR Code Use Case

@startuml
User -> SmartPhone: Activate QR Code Scanning Application
User -> SmartPhone: Scan QR Code on box
SmartPhone -> Website: Lookup the QR Code URL
Website -> Database: Request box information
Website <- Database: No box record
Website -> User: Present fill box screen
Website <- Database: Empty box record
Website -> User: Present fill box screen
User -> Website: Choose location, product and expiration
User -> Website: Submit choices for validation
Website -> Database: If valid choices, update db
Database -> Website: Confirm update
Website -> User: Confirm success
Website <- Database: Filled box record
Website -> User: Present consume or move box choices
User -> Website: If choice is to consume box
Website -> Database: Update db to empty box
Database -> Website: Confirm change to box
Website -> User: Confirm box was consumed
User -> Website: If choice is to move box
Website -> User: Present location choices
User -> Website: Make new location choices and submit
Website -> Database: Update location information for box
Database -> Website: Confirm change to box
Website -> User: Confirm box was moved

@enduml

Scan QR Code Sequence Diagram

3.2.3. Checkin

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Checkin)
User --> (Use)

note right of (Use)
See the Checkin Sequence Diagram
for the steps for checking a box
into the inventory system.
end note

note "User has filled, sealed and labeled a box." as N2
(Checkin) .. N2

note as N3
Labels include a QR code, the product,
year of expiration and optionally the
part of the year (e.g. quarter it expires)
end note
N2 .. N3

N3 ..(Use)
@enduml

Checkin Inventory Use Case

@startuml
User -> SmartPhone: Activate QR Code Scanning Application
User -> SmartPhone: Scan QR Code on box
SmartPhone -> Website: Lookup the QR Code URL
Website -> Database: Request box information

Website <- Database: Return box information
Website <-- Database: or create empty box record\n and return it
Website -> SmartPhone: Present (usually) empty box info

User -> SmartPhone: Enter product
User -> SmartPhone: Expiration year\n(maybe partial year)
User -> SmartPhone: Box location
User -> SmartPhone: Touch checkin button
SmartPhone -> Website: Send box information
Website -> Database: Store information entered
Website <- Database: Return confirmation
SmartPhone <- Website: Present confirmation
User <- SmartPhone: User verifies confirmation visually
@enduml

Checkin Inventory Sequence Diagram

3.2.4. Checkout

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Checkout)
User --> (Use)

note right of (Use)
See the Checkout sequence diagram for
the steps for checking out a box of inventory.
end note

note "User finds a box containing product to be removed from inventory" as N2
(Checkout) .. N2

N2 ..(Use)
@enduml

Checkout Inventory Use Case

@startuml
User -> SmartPhone: Activate QR Code Scanning Application
User -> SmartPhone: Scan QR Code on sealed box
SmartPhone -> Website: Lookup the QR Code URL
Website -> Database: Request box information

Website <- Database: Return box information
Website -> SmartPhone: Present (usually) filled box info

User -> SmartPhone: Touch checkout button

SmartPhone -> Website: Send request to checkout box
Website -> Database: Send checkout request
Website <- Database: Check box out of inventory and save history
SmartPhone <- Website: Present checkout confirmation
User <- SmartPhone: User verifies confirmation visually
@enduml

Checkout Inventory Sequence Diagram

3.2.5. Move Box

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Move box)
User --> (Use)

note right of (Use)
See the Move box sequence diagram for
the steps for checking in a box of inventory.
end note

note "User has new location information ready" as N2
(Move box) .. N2


N2 ..(Use)
@enduml

Move Box Use Case

@startuml
User -> SmartPhone: Activate QR Code\nScanning Application
User -> SmartPhone: Scan QR Code on sealed box
SmartPhone -> Website: Lookup the QR Code URL
Website -> Database: Request box information

Website <- Database: Return box information
Website -> SmartPhone: Present (usually) filled box info

User -> SmartPhone: Touch move box button

SmartPhone -> Website: Send request to move box
Website -> Database: Send request to move box
Website <- Database: Retrieve box info and return
SmartPhone <- Website: Present box info and\nnew location blanks
User <- SmartPhone: Display box info and\nnew location blanks
User -> SmartPhone: Verify box information and\nenter new location
User -> SmartPhone: Touch update box\nlocation button
SmartPhone -> Website: Send new box\nlocation information
Website -> Database: Send new box\nlocation information
Website <- Database: Return new box\nlocation confirmation
SmartPhone <- Website: Display move confirmation
User <- SmartPhone: Visually confirm move
@enduml

Move Box Sequence Diagram

3.2.6. Fill a Pallet

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Checkin)
User --> (Use)

note right of (Use)
See the Fill Pallet Sequence
Diagram for the steps for
checking a pallet into inventory.
end note

note as N2
User has filled, sealed\n and labeled a number
of boxes and wants to put them all on a pallet.
end note
(Checkin) .. N2

note as N3
User has also decided what location in the warehouse
that the palled will be placed once the boxes have
been loaded on the pallet and checked into inventory.
end note
N2 .. N3

N3 ..(Use)
@enduml

Fill Pallet Use Case

@startuml
User -> Smartphone: Enter URL for Inventory System
Smartphone -> User: Show initial Inventory System screen
User -> Website: Bring up Fill Pallet screen
User -> Website: Identify the location to hold the pallet
User -> Smartphone: Scan QR code of a box
Smartphone -> Website: Send box number to website
Website -> User: Present information about box
User -> Website: Enter product and expiration info
User -> Website: Indicate that box will go on pallet
Website -> Database: Add this box's info to temporary table
User -> Website: Repeat scanning QR codes until done
User -> Website: Go to Pallet Done screen and confirm
Website -> Database: Transfer info from temp table to box table
Database -> Website: Db confirms all boxes updated
Website -> User: Confirm that all boxes have been updated.
@enduml

Fill Pallet Sequence Diagram

3.2.7. Move a Pallet

@startuml
(Warehouse\nInventory\nSystem) as (Use)

User -> (Checkin)
User --> (Use)

note right of (Use)
See the Move Pallet Sequence Diagram
for the steps for moving a pallet
from one location to another in
the inventory system.
end note

note as N2
User has filled, sealed and labeled a number
of boxes and wants to put them all on a pallet.
end note
(Checkin) .. N2

note as N3
User has also decided what location in the warehouse
that the palled will be placed once the boxes have
been loaded on the pallet and checked into inventory.
end note
N2 .. N3

N3 ..(Use)
@enduml

Move Pallet Use Case

@startuml
User -> Website: Choose Move Pallet Screen
User -> Website: Identify "From" location of pallet
Website -> User: Confirm count of boxes at that location
User -> Website: Identify "To" location
Website -> User: Confirm count of boxes at that location - if any
Website -> User: If any boxes at the "To" location, ask if merging
User -> Website: Confirm move (or merge, if appropriate)
Website -> Database: Update the locations of all the "From" boxes
Database -> Website: Confirm updates are complete
Website -> User: Present confirmation of move
@enduml

Move Pallet Sequence Diagram

3.2.8. TBD

More diagrams will be needed in the future.