Go to file
Thom Werring a15e24e901 Package cleanup 2024-03-26 22:27:41 +01:00
.husky Chore: Enabled autoformat code on commit 2024-03-23 13:27:25 +01:00
database/entrypoint Added Authentication 2024-03-26 21:32:33 +01:00
src Added open api docs 2024-03-26 22:27:24 +01:00
tech-assignment-data@89136dcd85 Updated submodule 2024-03-26 21:33:06 +01:00
tests Added final tests 2024-03-26 21:45:07 +01:00
.dockerignore Added Authentication 2024-03-26 21:32:33 +01:00
.env Added .env 2024-03-26 21:50:57 +01:00
.eslintrc.js WIP: Implemented tests & processed tracking information 2024-03-26 18:23:40 +01:00
.gitignore Added Authentication 2024-03-26 21:32:33 +01:00
.gitmodules Added data samples as submodule to project 2024-03-23 15:03:06 +01:00
.prettierrc Initial commit 2024-03-23 13:23:59 +01:00
Dockerfile Added Authentication 2024-03-26 21:32:33 +01:00
README.md Added Authentication 2024-03-26 21:32:33 +01:00
docker-compose.yml Added open api docs 2024-03-26 22:27:24 +01:00
nest-cli.json Initial commit 2024-03-23 13:23:59 +01:00
package-lock.json Package cleanup 2024-03-26 22:27:41 +01:00
package.json Package cleanup 2024-03-26 22:27:41 +01:00
requests.http Added Authentication 2024-03-26 21:32:33 +01:00
tsconfig.build.json Chore: Renamed test directory to e2e-tests for added clarity 2024-03-23 14:09:33 +01:00
tsconfig.json Moved tests 2024-03-26 18:47:55 +01:00

README.md

MyFreight Assessment

Receiving Tracking information

When receiving Tracking information, the following steps need to be completed to process the data

flowchart TD
    receiveTracking(["Receive Tracking"])
    findContainerAndShipment["SELECT container JOIN Shipment"]
    updateShipment[/Update shipment\]
    isArrivingSoon{{"Is arrival estimate between now and now + 24h?"}}
    hasArrived{{"Is arrival estimate <=now?"}}
    isDelayed{{Is arrival estimate > original arrival + 24h?}}
    sendNotification[/Send notification\]

    
    receiveTracking -- "`
    **Tracking data**
carrierName:**string**
destinationUnLoCode:**string**
departureDate:**string[_datetime_]**
arrivalDateEstimate:**string[_datetime_]**
containerNumber:**string**
`" -->  findContainerAndShipment
    findContainerAndShipment --> |WHERE containers.containerNumber = :trackingData.containerNumber| updateShipment
    updateShipment --> isArrivingSoon & hasArrived & isDelayed
    isDelayed -->|set delayed flag| sendNotification
    hasArrived  --> |set has arrived flag| sendNotification
    isArrivingSoon -->|set is arriving soon flag| sendNotification
    
%%    isArrivingSoon -->|yes| sendArriveSoon

Possible improvements

  • Sending the actual notification, there should be a more general way to setup notifiers
  • Moving some variables to config files
    • when is a shipment "arriving soon"
    • database credentials (via an .env)
    • mock date