Developping a mobile app for iOS and Android

Заказчик: AI | Опубликовано: 17.03.2026

General Overview The solution described in this specification will allow customers to request deliveries, and the company to manage and fulfill them. The structure will be based on a server orchestrating the data and a mobile application that will be the same for both customers and internal users. Login will differentiate access rights. The server is not in this project, it's another developper which create and manage it. Mobile Application The mobile application will be developed to run on iOS and Android, on most versions available on the market. The application has to run on iOS (iPhone and iPad) and Android devices. Once the application is developed, the complete source code will be provided in full and without limitations. It must be possible to recompile the application without requiring any tools from the mobile application developer. The various API endpoints will be provided during the project. Functionality Authentication The user must be able to authenticate themselves to their account using their email address and password. The user database is hosted on a server at the client's premises; no other external directories are used. Authentication will be performed via a JWT token with automatic refresh. This JWT token will be transmitted with each interaction with the server to validate the user's authentication. Features accessible by group Customer group • Create delivery requests • View the status of their own deliveries • View delivery history • Modify personal information • Change password Driver group • View assigned deliveries • Manage deliveries (change status) • Have the recipient sign the delivery Manager group • Same as the "driver" group • Assign deliveries to drivers • View all orders from all customers • Manage customer, driver, and manager accounts How it works Authentication workflow 1. The user enters their email and password 2. The application contacts the server to verify that the information is correct a. If so, the server returns a JWT token for the connection as well as the user's role code b. If not, the server returns an error code via JSON. 3. The token for push notifications is also delivered at this time. 4. Once authentication is complete, the application is accessible. Account Creation Workflow Only customer accounts are created via this workflow; delivery driver and manager accounts are managed by the administrators. 1. The user enters the following information in the registration form: a. Last Name b. First Name c. Address d. Postal Code e. City f. Email g. Password h. Specify if it is a company. If so, request the company name. 2. The application sends the data to the server, which verifies that all the information is entered and checks if the email address does not already exist. If the email address is already in use or if fields are missing, a JSON error is returned. 3. If everything is OK, the account is created, and a SUCCESS code is returned to the application, but without a JWT token. The user will need to validate their email address and log in to access the application. Password Reset Workflow 1. The user requests a password reset by entering their email address. 2. The application sends the request to the server, which checks if the email address exists and sends a code to be entered in the application to validate the email address. 3. Once this code is entered, the application sends a response. Request to the server to validate that the code is correct. a. If yes, redirect to the new password setting page. b. If no, simply display an error. 4. As soon as the new password is entered, the application sends the new password to the server along with the email and the code received by email. Order Launch Workflow 1. The customer submits a delivery request via a form in the application. They enter: a. The collection location (a checkbox allows the address to be used in the account) b. The delivery address c. The weight of the delivery, divided into 3 categories d. The payment method (Stripe, Twint, or Cash for individuals; invoice for businesses) 2. The order is initiated with the server, and the price is returned with the code SUCCESS (it is not yet displayed in the customer's order history) 3. The order summary is displayed with a button redirecting to payment 4. The customer pays via the payment site 5. Once completed, the application notifies the server that the payment has been made, and the server verifies that the information is correct. 6. If the payment is processed correctly, a SUCCESS message is returned to the customer, and they can now track their order. 7. A notification is sent by the server to the managers to inform them that a new delivery is available. Order Assignment Workflow 1. The manager receives a notification on their application. 2. By clicking on the notification or viewing the list of orders to be completed, they can assign the delivery to themselves or to a driver. 3. The server updates the delivery status and sends a message to the driver. Delivery Workflow 1. The driver receives the notification of the delivery to be completed. 2. They confirm the delivery on their application and go to the pickup point. The customer receives a notification informing them that their delivery will be picked up. 3. The driver takes the delivery into their vehicle and marks the order as "Delivery in Progress." If the payment option is "Cash," the delivery driver collects the delivery fee at that time. 4. During the journey, the customer can track the driver's progress until their arrival. 5. Upon arrival, the driver has the recipient sign a confirmation that the order has been delivered. 6. The order status automatically changes to "Delivered," and the customer is immediately notified via an in-app notification. User Management Managers can manage users, including: • Resetting user accounts • Creating driver and manager accounts (only the first name, last name, and email address need to be entered) Viewing Order History by Managers Managers can view the order history, which includes: • The customer who requested the delivery • The payment method and amount • The different stages of the delivery, including dates and times • The customer's signature