Delivery Application

Note: This web page is only a preview to the repository on github.
To see the Delivery Application source code CLICK HERE!

🤔 What is the purpose of this application?

This project written in Java language and Spring Framework, represent Implementation of a Delivery API containing the following functionality:

💬 Timeslot
A delivery window containing start time, end time and supported addresses.

👉 The two sources below will be fetched in order to validate the timeslots:
• A local static json file named courierAPI.json is loaded when the program is starting. This file contains the available timeslots for the upcoming week.
• Courier timeslots that fall on holidays will be excluded.
For this part I have used HolidayAPI.

👉 Each timeslot can be used for 2 deliveries.

💬 Delivery
Contains status & selected timeslot. Business capacity - the system supports up to 10 deliveries per day. To make sure that the system supports 10 deliveries per day, I used Github's library named Bucket4j.

💬 Address
I have used Geoapify API to locate correct addresses into an object that holds the address data (such as: street, line1, line2, country, postcode, etc...).

Extra Details
NOTE: This program is really simple, at this moment the program does not support concurrent requests. These days I am working on a new project to upgrade this one by using Spring WebFlux To handle concurrent requests.


To see the source code
please CLICK HERE!