Flow

To describe user interaction flow, the Smartphone Apps and/or ad-hoc web pages will be referred to as User Agents.

Registration

A user can begin the registration process by entering at least an e-mail address, a full name, and a password into a User Agent.

The platform receives this data and creates a User entity. If configured to do so, the platform then sends an e-mail message to the address entered by the user, with a confirmation link that must be visited in order for the user entity to be confirmed.

If the link is not visited within a configured timeout, the entity is anonymized and, at a later date, removed from the database.

Once the user is confirmed it may not yet be able to access transportation resources on the system - the User Agent will have to guide the user into entering details about required data, e.g. driving licenses or season passes (the License Documents).

Password Recovery

If a user forgets its password, it can begin a password recovery process to set a new one.

At the beginning of the password recovery process the user will have to insert its username to send the reset request.

After that the platform will send a message (by default via e-mail) to the user, containing an hyperlink to a form to insert the new password. After confirming the form, if the password is compliant to the platform’s rules and is different from the previous password the new password is stored and the user can perform the login.

Contact Data Update

A user can update its contact information via the User Agent.

After inserting the new contact data (both email and mobile phone number) the platform will send a message to the user (by default through the involved contact channel). Clicking on the link the user will confitm the update to the contact data.

Request a Transportation

Whenever a user wishes to request a transportation, the User Agent will guide the gathering of all required data.

Once all data from the user has been gathered (i.e. pick-up and drop-off places and times, ad-hoc filters) the User Agent can submit a Transportation Request on behalf of the user.

Once a TR has been successfully posted, the User Agent receives the GUID of the entity. With this, the User Agent can ask for the proposed Movement Authorities that can fulfill the request.

On the server side, as soon as the TR is received, it is passed on to all registered modules, so that they can calculate and propose all the applicable MovAuths.

Proposed MovAuths are shared among all modules, so each can integrate data within the MovAuths proposed by others. For example, the Business module may integrate cost estimation data inside MovAuths that are proposed by the Vehicle Sharing module.

Once the User has decided to pick one of the proposed MovAuths and confirms that action on the User Agent, the MovAuth is confirmed on the platform and is ready to be used to start one or more trips.

Performing a Trip

Via the User Agent, the user confirms the start of the trip. This may require interactions with devices in the proximity of the user, such as Bluetooth devices, or may require the use of an online platform.

Once the interactions have been performed the Trip is created and, as soon as the connection allows, is synchronized among all participants (the platform, on-board devices, smartphone apps).

The synchronization is periodically repeated to integrate further data that may have become available or have been calculated during the trip. With these synchronization, the platform integrates and reconciles data from all sources, to ensure eventual consistency.

At the end of the trip, the user confirms the action on the User Agent. A closure event is recorded, and the entity is synchronized once more among all participants. The platform keeps trying to synchronize until all devices have reported a successful closure; then the trip data is calculated for the last time and the trip is marked as confirmed.

A trip confirmation by the platform triggers the cost calculation, if the module is enabled, and will result in the user account being debted of the calculated amount.