- Java 8 or higher
- MySQL
- IntelliJ IDEA or any other Java IDE
- Maven
- Git
- install the following dependencies in the
pom.xml
filexml
- Clone the repository
- Open the project in your favorite IDE preferably IntelliJ IDEA
- create a database in MySQL with the name
deliver_management
- Run the
deliver_management.sql
file in thesrc/main/resources
folder to create the tables and insert some data - Run the
Main
class in thesrc/main/java
folder to start the application - You can now register and login as a customer, scheduler or driver
- You can create a new delivery as a customer, assign a delivery to a driver as a scheduler and view your deliveries as a driver
- You can also generate a Word file with all assignments for a specific day as a scheduler
- You can also view the list of missions you have already completed as a driver
- You can also modify your email address, password, cell phone number, and, if applicable, truck-related information as a user
- You can also view the list of all deliveries sorted by date as a scheduler
- You can also select products from a predefined list in the database as a customer
- You can also specify the quantity in Kg, choose a delivery date, and provide the delivery address as a customer
- You can also assign routes to drivers, where a route consists of destination points as a scheduler
- You can also view the list of missions assigned to you as a driver
- You can also view the list of missions you have already completed as a driver
- You can also generate a Word file with all assignments for a specific day, including a justified title and detailed mission information as a scheduler
- You can also modify your email address, password, cell phone number, and, if applicable, truck-related information as a user
- You can also view the list of all deliveries sorted by date as a scheduler
- You can also select products from a predefined list in the database as a customer
- You can also specify the quantity in Kg, choose a delivery date, and provide the delivery address as a customer
- You can also assign routes to drivers, where a route consists of destination points as a scheduler
- You can also view the list of missions assigned to you as a driver
- You can also view the list of missions you have already completed as a driver
- You can also generate a Word file with all assignments for a specific day, including a justified title and detailed mission information as a scheduler
- You can also modify your email address, password, cell phone number, and, if applicable, truck-related information as a user
This mini project aims to contribute to the development of a goods delivery application for customers, schedulers, and drivers.
- Upon launching the application, a window prompts the user to either register or authenticate.
- Registration allows users to input their email address, password, cell phone number, and role (customer, scheduler, or driver).
- If the user is a driver, additional information such as truck registration number and truck capacity in Kg is required.
- Authenticated users can modify their email address, password, cell phone number, and, if applicable, truck-related information.
- Customers can select products from a predefined list in the database.
- They specify the quantity in Kg, choose a delivery date, and provide the delivery address.
- Schedulers can access a list of all deliveries sorted by date.
- They have the ability to assign routes to drivers, where a route consists of destination points.
- Schedulers can generate a Word file with all assignments for a specific day, including a justified title and detailed mission information.
- There is an optional question regarding the use of the Google OR-Tools library for automatic daily journey planning.
- Drivers can view the list of missions assigned to them.
- They can also view the list of missions they have already completed.
- The database management system used should be MySQL.
- The programming language used must be Java.
- Code should be pushed to the designated repository at the end of each session.
Feel free to ask if you have any specific questions or need further clarification on any aspect of the project!