====== Revised requirements for Trucks For You ====== ===== Hirer use cases ===== ==== Register and login ==== - Hirer inputs phone number - If there are no previous records with the phone number, then the number is recorded into a new profile. - System records the input and sends an OTP to the phone number - The system prompts the hirer for the OTP - The hirer enters the OTP. - The system verifies the OTP. - If the OTP is incorrect, the hirer is told about it and given another chance. - If the OTP is correct, then the hirer is confirmed as a registered user. - If the hirer exits the app before keying in the correct OTP, then the hirer account is considered provisional. - After the entry of correct OTP, the system generates a token that is used by the app for all further communication on behalf of this hirer. This token is sent to the app. - The app stores the token and uses it in all further communication. - The system checks if the profile has a name. - If the profile doesn't have a name yet - The hirer is prompted. - The hirer enters name - The system saves the hirer's name - The hirer is redirected to wherever he/she was before login. ==== Request for a truck ==== - The hirer inputs the following conditions. - Start city - End city - The earliest date on which goods are ready for loading - The latest date on which goods should be delivered - Load weight in tonnes - Type of truck: open, closed, container - Based on the hirer's conditions, the system generates suggestions. The suggestions do not point to individual trucks, but rather a combination of conditions that have been met. Each suggestion has the following field. - Date on which the truck will leave the start city. - Date on which the truck is expected to reach the end city. - Type of truck - Tonnage of truck - Normal tariff considering smooth delivery. The actual tariff will change based on events that happen during the trip and the delivery. Note that this tariff is calculated based on the load requested by the hirer and not the capacity of the truck, if a truck with a lower capacity is usually available with the system. - The hirer chooses one of the suggestions. - The system asks for the complete addresses of the source and destination facilities. - The hirer enters the complete addresses. - The system records the hirer's criteria and choice of suggestion. An SMS is sent to the hirer's number, informing them that a truck will be ready for their trip shortly. - The hirer waits for intimation about a truck. ==== Response to hire request ==== - If the system does not have any trucks ready for the hirer, then a regret SMS is sent to the hirer. - If the system has a truck ready, then the system creates a confirmed trip and the following details are sent to the hirer. - Truck's registration number. - Driver's name. - Driver's phone number. - A hyperlink to the detailed page for the truck. - A hyperlink to the detailed page for the driver. - A hyperlink to confirm / cancel the trip. - A message saying that the trip must be cancelled within 3 hours. Otherwise the trip is assumed confirmed. ==== Driver's detailed page ==== - The hirer can see the following details about a driver. - Full name - Passport photo - Photo of the driving license - Phone number, if the driver has been assigned to any trip requested by the hirer. ==== Truck's detailed page ==== - The hirer can see the following details about a truck. - Registration number - Photo - Photo of RC book ==== Truck state intimation ==== - The hirer is sent SMS messages whenever the state of the truck's trip changes. - The truck has arrived at the source facility for loading. - The truck has finished loading and weighing. The tare weight and gross weight are sent. - The truck is on the route. - The truck has arrived at the destination facility. - The truck has finished loading. The gross weight and tare weight are sent. ==== Request to pay ==== - The system marks a trip as done. - If there are any unresolved disputes, the tariff amount is revised. - An SMS is sent to the hirer with the following details. - The total amount to be paid. - A hyperlink to the invoice, where a breakup is given along with the GST. - A link that takes the hirer to the payment gateway for payment. ==== Payment ==== - The hirer opens the payment link. - The hirer is redirected to the payment gateweay. - The hirer pays the required tariff. - The payment is accepted and a receipt is shown. - The payment status of the trip is marked as paid. ===== Driver use cases ===== ==== Login ==== - During induction, a driver's phone number and name are already created by the admin. - The driver enters phone number. - The system checks if a driver with that phone number has been inducted. - If not so, then the driver is not allowed to log in. - An OTP is sent to the driver's phone number, while a provisional token is generated for the driver and sent back in the response. - The driver's app enters the OTP into the OTP field. - If the OTP generated by the system does not match the one entered by the driver, then the authentication is unsuccessful. - The following things are fetched: - The driver's profile: name, phone number, photo, driving license number. - The truck's profile: registration number, type, capacity, photo - A list of trip suggestions that are applicable for the that driver. ==== Get a list of applicable trips ==== - Driver gets a list of requested trip suggestions for which he/she is eligible. Each trip has the following details. - Start city - End city - Date of start of trip - Date of end of trip - Tonnes of goods to carry - Tariff - The driver can see the details of a particular trip. the details are: - The full address of the loading point - The full address of the unloading point ==== Actively reject a trip ==== - The driver actively chooses to reject a trip. - The system deletes the trip from the list of trips for that driver. ==== Pick a trip ==== - The driver requests assignment to a trip. - If the trip is not already taken, it is assigned to him/her. - The system records the assignment and sends a notification to the hirer. ==== Get trip confirmation ==== - The hirer of a trip chosen by the drive confirms the trip. - The trip status is marked as confirmed. - An SMS is sent to driver to notify confirmation of the trip. ==== Update trip status ==== - The driver can update the status of a trip as it progresses. Here is what he can update. - Truck has reached loading point. - The truck has loaded. The driver will also input the tare and gross weights. - Truck has started on the route. - Truck has reached unloading point. - Truck has unloaded. ===== Admin use cases ===== ==== Login ==== - Admin can log in using either phone number of email. - A verification is sent based on the entry of identity. In both cases, an access token is generated. - An OTP is sent if the identity is phone number. - An email with verification link is sent if the identity is email. - The OTP and verification token in the request are checked against the ones generated by the system. - For a mismatch, authentication is denied. - The admin is taken to the home page. ==== Add a truck ==== - The admin adds the following details about a truck - Registration number - Type of truck: open top, closed top, container - Capacity in tonnes - Photo of truck - Photo of RC book - If the truck with registration already exists, then the admin is asked whether to overwrite. ==== Add a city ==== - The admin can add the following details about a city - City name - If the city with the same name is already found, the the admin is asked whether to overwrite. ==== Add a truck type ==== - The admin can add a new truck type by its name. ==== Add a driver ==== The admin adds new drivers to the system when they are hired. The following details are added. - Name - License number - License expiry date - Photo - License photo ==== Hide truck ==== The admin can hide a particular truck if it is currently not available for a trip online. ==== Hide truck type ==== The admin can hide a particular truck type if the company won't ==== Hide city ==== The admin can hide a city if it is currently not serviced ==== Hide driver ==== The admin can hide a driver if that driver is not going to take a trip for a long time. ==== Create and assign trip ==== If the admin comes to know about a booking that was taken over phone, they'll need to add a new trip manually and assign it to a truck. The fields are the same as the corresponding ones in hirer truck booking. ==== View a list of truck suggestions for a trip request ==== Similar to hirer ==== Manually select a suggestion for a trip request ==== Similar to hirer ==== See the list of trucks that fit a suggestion ==== The admin can see the list of trucks that fit the conditions of a suggestion. Here are the fields the admin can see at a glance - Truck registration number - Driver name - Driver phone number - Date leaving loading city - Date reaching delivery city ==== Manually create a hirer ==== The admin enters the following fields to create a hirer - Name - Phone number ==== Assign a truck to a trip ==== - The admin assigns a truck to a trip - The hirer receives an SMS for the assignment of the trip. ==== Confirm a trip ==== - If a hirer agrees to the truck specifications assigned to him/her, then the admin confirms the trip. - Both the driver and the hirer get a confirmation with the following data: - Start city - End city - Trip start date