Skip to content

Functional Requirements

atodirel edited this page Sep 12, 2022 · 6 revisions
Issues Functional Requirements
FR-1 FR-1. As a shipment company, I want to register as a company, so that I could use the system.
  1. The form for registration should ask
    • Email - unique
    • Company name - unique
    • User name - unique
    • Telephone number - unique
    • Password
    • Confirmation of password
  2. After a successful registration the company is redirected to the login page.
  3. All the registered shipment companies belong to the 'Shipment' group.
FR-2 FR-2. As a goods company, I want to register as a company, so that I could use the system.
  1. The form for registration should ask
    • Email
    • Company name
    • User name
    • Telephone number
    • Password
    • Confirmation of password
  2. After a successful registration the company is redirected to the login page.
  3. All the registered shipment companies belong to the 'Customer' group.
FR-3 FR-3. As a company, I want to login, so that I could use the system.
  1. I can login by providing my email and password.
FR-4 FR-4. As a shipment company, I want to create my route(s).
  1. There should be a form that would allow the creation of a new route
  2. The form should ask for the following information:
    • Type of transportation used on new route.
    • Type of cargos that can be handled by the new route.
    • Itinerary (an itinerary can have as many stops as required; you can call them legs)
    • Each leg of the itinerary should have an estimated time of execution.
    • The creator should select which days of the weeks are available to request the new route (e.g a new route can only be requesting on Mondays and Thursdays, without taking the exact date/time, the reason will be explained later)
    • The maximum volume of goods that can be transported / The maximum weight that can be transported
  3. There is no origin and destination, as these should be deducted from the itinerary.
  4. Each route will have an estimated time of execution, which is calculated from sum of all legs.
  5. Upon successful registration of a new route, the shipment company should see it’s routes in a separate overview.
  6. The defined routes are simply templates, the actual shipments and use of the routes will be created as a separate object.
FR-5 FR-5. As a shipment company, I want to view my routes with the ability to edit them
  1. The routes should be displayed in a tabular form
  2. When editing the route, the same form should be used as for creating, with fields populated with current data.
FR-6 FR-6. As a goods company, I want to view all the routes.
  1. The overview should contain a filter bar (search bar) that allows to perform a search query by types of cargos, origin, and destination of existing routes.
  2. The routes should be displayed in a tabular form.
  3. Each row should contain general information about the routes: Origin, Destination, Cargo types.
  4. Beside general information about the routes, it should also contain the shipment company name which provides the route.
FR-7 FR-7. As a goods company, I want to view a certain route in detail.
  1. The overview for current route should contain the following information
    • Types of transportation used by the route.
    • Types of cargos that can be handled by the route
    • Itinerary description in details
    • Each itinerary leg should have the estimated time printed as well.
    • The available days of week for rent.
    • The estimated amount of time for shipment and delivery.
    • The maximum volume of goods that can be transported / The maximum weight that can be transported
  2. At the bottom, there should be two buttons: request availability and book.
FR-8 FR-8. As a goods company, I want to request availability of a route.
  1. Pressing the request availability button should open a modal with a calendar. Only the dates set on available dates of week should be open, and the occupied ones should be closed as well.
  2. The submitted request should be saved in the DB, and the shipment company should receive an email that X company requested availability on Y date.
FR-9 FR-9. As a goods company, I want to book a route.
  1. When booking a route, the company should provide all the information about the cargo. This should be the cargo’s total weight/volume, the type of cargo (can be multiple), if the cargo is stored in a container or everything has a separate package. The shipment company should know if they’ll need a car which can carry a container, or do they need to provide it.
  2. The company should be able to choose where to deliver the cargo. If none is selected, then the last leg of the route is used. Otherwise, the selected leg is used as delivery leg.
  3. A new object is created (you can use Cargo as the root object for everything related to the delivery of goods) with the information copied from the route, along with the cargo specifications, date, etc. Each Cargo should have a status, and the default status is Analyzing (you can use a better name).
FR-10 FR-10. As a shipment company, I want to view all the availability requests
  1. The requests should be displayed in a tabular form.
  2. The table should contain the company that requested this info, and the date on which this is requested, and the route that was requested.
  3. Two buttons should be present on each row: Sanction & Refuse.
  4. Upon refusing, the request should be deleted, and the goods company that requested the availability should receive an email of refusal.
  5. Upon sanctioning, the request should be deleted, and the goods company that requested the availability should receive an email of approval, along with a link to the details of the requested route.
FR-11 FR-11. As a shipment company, I want to view all the booked routes
  1. The booked routes should be displayed in a tabular form
  2. Each row should contain the booked route, the goods company that booked the route and the date of the booking
FR-12 FR-12. As a shipment company, I want to view a booked route in detail.
  1. All the information about the cargo should be present.
  2. The actions to take upon this booking depend on the status of the cargo:
    • If the cargo is in Analyzing status, it should be possible to either approve or reject the booking.
    • If the booking was rejected, it is deleted, and the goods company receives an email with a comment upon why it was rejected (the comment should be provided when the booking is rejected by the shipment company)
    • If the booking is approved, the shipment company should provide a tracking id, which the goods company will use to track their cargo. After it is approved, the status is changed to Preparing. An email is also sent to the goods company with all the information required to deliver the cargo to the origin point.
    • If the cargo is in Preparing status, the booking can be either canceled or deployed.
    • If the booking is canceled, it is deleted, and the goods company receives an email with a comment upon why it was rejected (the comment should be provided when the booking is rejected by the shipment company)
    • If the booking is deployed, it means the goods company delivered the cargo to the shipment company, it is packed, and the cargo it’s on its way. The status is changed to In Route.
FR-13 FR-13. As a goods company, I want to view all my booked routes
  1. The booked routes should be displayed in a tabular form
  2. Each row should contain the booked route, the shipment company, and the date of the booking.
FR-14 FR-14. As a goods company, I want to view a booked route in detail.
  1. All the information about the cargo and the route should be present.
  2. At the bottom of the page, the company can view all the events about its cargo (it was loaded, it is on its way, it hit the X leg, leaving X leg, etc.)
FR-15 FR-15. As a goods company, I want to receive an email for the most important events.
  1. For example, every time the cargo arrives at a leg or leaves a leg, an email is sent to goods company.
FR-16 FR-16. As a shipment company and a goods company, I want to receive an email when the cargo hit the destination.
  1. The shipment company needs to know when a cargo was delivered so it can send a billing invoice to the goods company.
  2. When the cargo arrives at the destination, the status is changed to Arrived, and on the cargo details, a billing invoice can be uploaded.
  3. If the shipment company has received the money, it can close the cargo, meaning by setting the status to Delivered.

Clone this wiki locally