Skip to content

A system management for deliveries. System supports concurrent deliveries requests according timeslots constraints. Developed using Node.js + TypeScript, express, fs and external APIs.

Notifications You must be signed in to change notification settings

MaiA14/delivery-managment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Delivery management

A system management for deliveries. System supports concurrent deliveries requestes according timeslots constraints.

Prerequisites

The following technologies should be installed globally

  • Node (preferred version / project version - 14.15.3)
  • ts-node
  • TypeScript
  • Nodemon

Installation

Before running this project install node modules in both server with this command:

npm install

Run Server with the command:

nodemon server.ts

Assumptions

  • Since Holiday API free version supports only in last year data, I consider last year as this year. Upcoming week is current range of dates of last year.
  • address.json is a static json contain 2 addresses for the simplicity of creating timeslots.
  • In order to support concurrency while booking a delivery, processing delivery conatins "pending" status. pendingDeliveries.json works like a queue.
  • Limitation of up to 10 deliveries in a day is reflcated by the number of timeslots range, for simplicity.
  • Available timeslot is a timeslot with less than 2 deliveries.

Scenarios:

  • Book a delivery when timeslot reached to its limit: Image of delivery booking

Image of delivery booking

  • Book a delivery when the address is unsupported: Image of delivery booking

  • Book a delivery - placed successfully (timeslot available): Image of delivery booking

  • Daily deliveries (placed only) Image of delivery booking

  • Mark delivery as completed: Image of delivery booking

  • Weekly deliveries (placed only) Image of delivery booking

  • Structured address: Image of delivery booking

  • Timeslots by address (available only, less than 2 deliveries): Image of delivery booking

About

A system management for deliveries. System supports concurrent deliveries requests according timeslots constraints. Developed using Node.js + TypeScript, express, fs and external APIs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published