This topic requires you to build a parcel tracking system. There are a number of typed of user listed and each will need to access different screens.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd
:
customer1
customer2
courier1
courier2
Users need to be logged in to access any functionality. There should be a Send parcel button on the Homepage. This takes the user to a screen where they enter the details of the parcel they want to send. They need to provide the following information:
- The sender's postcode.
- The destination postcode.
- A slider to select the parcel weight in Kg, max 20Kg.
- The name of the recipient.
- A multiline textbox to enter the full address.
When the parcel is added, the following extra information needs to be stored in the database (without prompting the user for it).
- The username of the person sending the parcel.
- The date and time the parcel was added.
- The parcel status (set this to
not-dispatched
. - A unique tracking number (letters an numbers).
To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using.
The Homepage should list the packages added by the logged-in user. This should include:
- The name of the recipient.
- The destination postcode.
- The date and time added.
- The parcel status.
Now the courier logs in. On their homepage they see a textbox where they enter the tracking number for a parcel. This needs to match a parcel that has the status of not-dispatched
or it throws and error and asks for the tracking number again.
If it finds a match it changes the status of the parcel to be in-transit
. This status should be reflected on the homescreen of the person sending the parcel.
The parcel details now appear on the courier's homepage but only for the parcels he has entered a valid tracking number. Each parcel on this page has been accepted by that particular courier and not yet delivered. For each parcel they should see the following:
- The name of the recipient.
- The destination postcode.
- The weight of the parcel in Kg.
- How many hours have elapsed since the parcel was added to the system.
Now lets complete the delivery process.
When the courier arrives at the destination address they scan the parcel (enter the tracking number into the box on the Homepage again). If the tracking number matches an item on the homescreen the courier is taken to the Delivery Screen where they enter:
- The name of the person accepting the parcel.
- An uploaded signature from the recipient.
In addition to the data entered by the courier, the system should automatically capture and store:
- The current date and time.
- The current location (longitude and latitude).
- The parcel status should now be changed to
delivered
which means this should be flagged up on the homepage of the person posting the item.
You are required to build a series of tracking pages so that:
- The courier has a list of all the parcels they are yet to deliver, displaying the tracking number, address, postcode and date posted.
- There should be a manager role who has access to a screen that lists all the couriers with parcels still to deliver, showing the name of courier and the number of parcels still undelivered.
- Clicking on one of the couriers should display the list from point 1 for that courier.
- They should also see a list of the parcels that have not been picked up by the courier with the one posted earliest at the top of the list. Any parcel that has been waiting for longer than 48 hours should be flagged.
- They should also see a list of delivered parcels with the most recent delivery at the top. Each should show the tracking number, name, address and postcode.