You may start from scratch if you want I have provided you solution to the point I have.
You need to design and implement a prototype for courier service system. The courier service system is mainly about delivering document couriers from one city to another. The courier company operates between cities. It has a transportation network between cities such that any given city is connected to one or more cities in the network. The system shall be flexible such that it allows for addition of new cities and removal of existing cities from the network or make changes to connectivity between existing cities. When adding a new city or modifying an existing city, the system shows a list of existing cities (ordered alphabetically) and prompts to select a city to establish (or delete) a connection to that city. We also need to provide a number which signifies the number of days it will take for direct shipment of documents (once we are connecting a city to another city). Once a customer approaches any branch (city) of the courier company for getting his document delivered to another city, the system first displays a list of existing city (alphabetically ordered) and prompts to select the origin city. Once selected it prompts to select a destination city. On selecting a destination city, the system displays the number of days it will take to reach the destination city (which is the minimum days it should take to reach the destination city from the origin city and may involve transit to one or more cities in between). It then displays the route the courier will take and the cost of the shipment (which is basically SAR 40 * number of days it takes). The system also prompts the user if the courier is urgent or not. If it is urgent it will be processed earlier and SAR 50 will be added extra for this service. Once confirmed, the system generates a shipment number and displays the complete details of the shipment order. Another module of the courier system is responsible for processing the orders. Once the operator selects this option, the system displays a list of unprocessed orders (for each order it shows the shipment number, origin, destination, and if urgent or not) ordered by shipment creation date and time. The system prompts the user to confirm that he wants to process next order. On confirmation, the system processes the next order. A shipment order can be cancelled on request from the customer if it has not been processed already. Note: The next shipment to process is the one which was created earliest. An exception to this is that if a shipment was marked ‘urgent’ then it will be processed first. If there is more than one shipment marked ‘urgent’ then the one which came first is processed first. As soon as an order is processed, its details are saved in the system for inventory and audit. If a manager wants to see the list of processed orders, he/she will select the option to view the processed orders. The system will display the total number of processed orders and prompt the user to select how many of them he/she wishes to see (by providing a number). On providing a number, the system displays that many processed orders (starting from the most recently processed order). At the end of the list, the system will also display the total revenue which is the total cost of all the orders in the displayed list (not the complete list of orders in the system). Important Guidelines:
Cannot use any predefined data structure like array, arraylist etc. no 3rd party as well