LOGISTIC-ISSUE is a console-based Java application developed for COMP50004-K-II - Data Structures and Algorithms. The system models loading goods and managing deliveries for a logistics company using a carefully chosen set of data structures and algorithms. It stores operational data, generates essential outputs such as invoices, and includes documented logic with pseudocode, drawback analysis, and recommendations for future improvements.
-
Priority Queue-Based Loading (Milestone 1)
- Loads packages onto a van using a priority queue
- Enforces a maximum capacity of 13 packages
- Displays package details and delivery order
-
Invoice Generation
- Outputs invoice details when a package is delivered
- Includes customer, address, weight, and price data
-
Shortest Path Routing (Milestone 2)
- Uses Dijkstra’s algorithm to compute shortest delivery paths
- Sorts and displays delivery locations by distance
-
Backup and Delivery Schedule
- Saves computed paths to a backup file
- Reads and prints a categorised van schedule from backup
-
Console Menu Workflow
- Menu-driven options for loading, delivering, listing, and scheduling
- Separate runnable drivers for each milestone
- Java 16: Core language (class file version 60.0)
- Java Standard Library: Collections, I/O, and console input handling
- No External Libraries: Implementation is fully hand-written
- Course: COMP50004-K-II - Data Structures and Algorithms
- Problem Focus: Loading goods and delivery management in a logistics company
- Data Structures: Priority queue, linked nodes, adjacency list graph
- Algorithms: Dijkstra’s shortest path
- Outputs: Invoice generation and delivery schedule reports
- Documentation: Logic explanation, pseudocode, drawback analysis, and future improvement recommendations
- Development Year: 2023
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/supunxiii/logistic-issue.git
-
Navigate to the project directory:
cd logistic-issue/DataStructuresAssignment -
Compile the source files:
javac -d out src/firstmilestone/*.java src/secondmilestone/*.java
-
Run Milestone 1 (Priority Queue):
java -cp out firstmilestone.Driver
-
Run Milestone 2 (Shortest Paths):
java -cp out secondmilestone.Driver
logistic-issue/
├── DataStructuresAssignment/
│ ├── src/
│ │ ├── firstmilestone/
│ │ │ ├── Driver.java
│ │ │ ├── Node.java
│ │ │ ├── Package.java
│ │ │ └── PriorityQueue.java
│ │ └── secondmilestone/
│ │ ├── Dijkstra.java
│ │ ├── DijkstraLinkedList.java
│ │ ├── Driver.java
│ │ ├── Node.java
│ │ └── PriorityQueue.java
│ ├── backup_co-ordinates.txt
│ └── DataStructuresAssignment.iml
└── README.md
This project was developed in September 2023 by:
- Supun Wijesooriya - Developer
Contributions to the LOGISTIC-ISSUE project are welcome! If you would like to contribute, please follow these steps:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git commit -m "Add your commit message" -
Push your changes to your forked repository:
git push origin feature/your-feature-name
-
Open a pull request to the main repository, describing your changes and the purpose of the pull request.
- This is a console-based Java application designed for academic assessment
- The delivery schedule is saved to
backup_co-ordinates.txt - All logic is implemented without external libraries or frameworks
- Outputs include invoice-style summaries for deliveries
For any enquiries or feedback, please contact the developer:
- Supun Wijesooriya: GitHub Profile
- Project Repository: logistic-issue
Designed and developed in September 2023
