Sprint1Final - Moviles20242-Grupo32/MovilesSprint1 GitHub Wiki

1.

a) Selected problem

In the first place, our problem is the food waste in Bogota. In Colombia, according to the National Planning Department (2023), a food loss of 9.76 million tons per year is recorded, of which 3.54 million tons correspond to waste. This poses a problem because it goes against global sustainable development goals and exacerbates the situation of food insecurity. Additionally, nearly one-third of households in the country suffer from moderate or severe food insecurity. Food loss also leads to an increase in prices, resulting in both economic and social problems. This waste not only represents a significant loss of resources but also contributes to greenhouse gas emissions, worsening climate change. On the other hand, when it comes to food establishments such as restaurants, bakeries, and supermarkets, it is evident that between 4% and 10% of their food supplies are wasted. This waste, according to the National Restaurant Association (2023), represents between 2% and 6% of their costs, which, according to the United Nations Department of Agriculture, signifies a substantial loss for the restaurant industry. These percentages not only reflect a loss of value but also an increase in costs that, although not high, could be reduced. Additionally, much of this food is wasted not because it is spoiled, but because it couldn't be sold and cannot be stored again due to health concerns, loss of quality, or storage costs.

b) Proposed solution

To solve this, we want to focus on the food waste produced by restaurants, bakeries and other food establishments. To explain this business model, the term 'extreme hours' is defined, which refers to times of the day when an establishment, based on known demand patterns, knows that a food item will no longer sell or that the ingredients to produce it are nearing expiration. During these extreme hours, food establishments such as restaurants, supermarkets, and bakeries will post their food items. The items would be posted as Surprise Boxes. To explain this concept, imagine there is an Italian restaurant. In these surprise boxes they would include surplus from different elements from their menu, for example 1 slice of pepperoni pizza, 1 piece of focaccia and 1 bowl of salad. It is a surprise because the user would only be able to select the establishment but not the content, as in that way it would be easier for the restaurant to publish in the app and set up the orders. The customer would be guaranteed a certain amount of food, but he/she won't be able to select items from the menu. These boxes would have a discount of 50% on the regular price that all the items would have. Also, there would not be a delivery service to avoid an increase in costs. Therefore, the customer would have to pick up the order. In general, the app's functionalities would include a variety of features designed to enhance user experience and streamline the purchasing process. Users would be able to search for surprise boxes offered by different establishments, which may contain unsold food items at a discounted price. Once they find a box that interests them, they can add it to their cart for later purchase. The app would also allow users to place an order directly through the platform, offering a seamless checkout process. This would include secure payment options to ensure that transactions are both safe and efficient. Additionally, users would have the ability to select their preferred pickup location, making it convenient for them to retrieve their orders. Overall, the app aims to provide a user-friendly interface that simplifies the process of discovering, purchasing, and collecting surplus food items.

c) Revenue model

Regarding revenue, Foodies plans to retain 30% of the price shown to the consumer. This is consistent with the commission that other Food Tech companies obtain from the price shown to the user, such as in the case of Uber Eats. As for the COGS, these consist of the cost of packaging and the logistics of delivering them. They represent 22.2%, resulting in a gross profit margin of 7.8% with respect to the 30% commission. In other words, in general, this margin would be 26.1% with respect to the price shown to the user, a value currently maintained by Uber Eats. To obtain the net profit, Uber Eats statistics were also taken into account. In 2023, the app had net revenue of 37M USD and a net profit of 1.9M USD, indicating a 5.4% net profit margin. This means that expenses amount to 2.4%, which are composed of six categories. First, there is the compensation to the delivery person for an order itself, as well as additional compensations like bonuses. Then, there is the cost of marketing, which initially must represent a significant investment and even a higher expense than the delivery person’s compensation. In 2018, at Uber Eats, 75% of operational expenses were associated with these two categories, amounting to 3.9% of the 30%. Other operational expenses include vehicle maintenance and fuel, accident insurance payments and other unforeseen costs, technology maintenance for the app, and administrative expenses . Together, these represent 1.5% of the commission.

d) Value proposition

We offer people on a tight budget quality meals at lower prices, while also helping to reduce food waste.

Key Elements:

Affordable Quality Meals: By partnering with restaurants, bakeries, and food establishments, we provide high-quality meals at discounted prices. Customers, especially those facing financial constraints, benefit from getting nutritious food they may otherwise struggle to afford.

Reducing Food Waste: Food establishments often face the challenge of unsold surplus items nearing expiration. Rather than throwing this food away, which contributes to the 3.54 million tons of waste recorded annually in Colombia, we offer these items in "Surprise Boxes." This reduces the environmental impact of food waste, such as greenhouse gas emissions that worsen climate change.

Addressing Food Insecurity: With nearly one-third of Colombian households facing moderate or severe food insecurity, our solution bridges the gap by making surplus food accessible. By offering meals at lower prices, we provide a way for households to meet their food needs without the heavy financial burden.

Supporting Sustainable Development: Our approach aligns with global sustainability goals by promoting responsible consumption and reducing food waste. By rescuing food that would otherwise be discarded, we help mitigate the economic and environmental costs associated with waste, from the loss of resources to the higher costs of food production.

2. PAS

3. Context canvas

ContextCanvas-2

4. Personas

a) Regular personas

b) Analytics persona

AP

5. Empathy maps

6. Business questions

Type 1

Q1: On average, during the last week, are the items in the shopping cart loading in less than 15 seconds?

This question is type 1 because it checks the performance of a feature in the app, to inform the developers of any issue with it.

Q2: In the last month what were the most common causes of app crashes when users were browsing available food deals?

This is a Type 1 question because it focuses on app telemetry, specifically looking at crashes and performance issues that are internal to the app. The information will not be presented to the user but will serve the development team in perfecting the application.

Type 2

Q3: On average during the last week, how far is a user from the nearest restaurant offering the surprise boxes?

This question is type 2 because it involves the context of the user and their interactions with the app and the answer is presented to the final user on a map.

Q4: What percentage of users have ordered from a single restaurant more than twice in the past month?

This is a type 2 question because it directly relates to the user’s purchasing behavior and interaction with the app. The information collected from this question can be used to enhance the users daily experience by offering personalized recommendations such as adding frequently visited restaurants to the top of the app. It can also be used to notify users when a favorite restaurant has new food offers or promotions, which directly impacts their interaction with the app, making it more personal and enjoyable.

Q5: In the last month, what percentage of users are located within a 2-kilometer radius of highly rated surprise boxes?

This is a type 2 question because it focuses on improving the user’s experience by providing timely and relevant notifications based on their current location. This information informs the app whether it’s doing a great job bringing together users and restaurants that are close to each other. The answer can also be used to decide the optimal radius for which a user gets notified in case a restaurant in his area has available surprise boxes.

Q6: Over the past month, how many seconds does it take a user to search for, select, and aggregate products to create a new delivery?

This is a Type 2 question because it focuses on user interaction with the app, specifically measuring how efficiently users can complete a task (creating a new delivery). The insights gained from this data can directly inform changes to the user interface or experience, such as optimizing search functionality or streamlining the selection process, thereby improving daily usage for users.

Type 3

Q7: On average during the last week, how many clicks does a user take to be able to place an order (in a hypothetical case, the view where the QR code is displayed)?

This is a Type 3 because it involves analyzing a specific feature of the app, the order placement process, to determine its efficiency and impact on user experience. By examining the number of clicks, the business can identify whether the current design is optimal or if it needs improvement to reduce friction in the user journey.

Q8: In the last month, what percentage of users used the filter feature to search for a 'Surprise Box'?

This question is a Type 3 as it focuses on the usage of a specific app feature, the filter option for searching 'Surprise Box.' By analyzing the usage data, the business can make informed decisions about the feature's relevance and effectiveness. High usage might indicate that the feature is valuable to users, suggesting that it should be maintained or enhanced. Low usage might lead to decisions to improve, promote, or remove the feature.

Q9: In the last month, what percentage of users payed for an order through the Apple pay option?

This is a Type 3 business question because it analyzes the usage data of a specific payment feature Apple Pay. Understanding the percentage of users opting for this payment method directly informs decisions on feature management, such as whether to maintain, update, or phase out the payment option based on its usage and impact on the app’s success.

Q10: How many are the average daily interactions for each feature (search filters, Surprise Box categories, payment options) across all users?

This is a Type 3 Business Question because it involves analyzing aggregated data to uncover patterns or trends related to user behavior. The question seeks to understand the average daily interactions for specific features (search filters, Surprise Box categories, payment options) across all users, which requires data collection, statistical analysis, and possibly identifying correlations. Type 3 questions are typically exploratory, requiring more in-depth data analysis to provide actionable insights for improving user experience or optimizing feature usage.

Type 4

Q11: Currently, in which zone does the tourist segment order the larger amount of food?

This is a type 4 question as this information can be useful for restaurants (3rd party) to understand their customer segments and target their needs and wants.

Q12: Historically, what food categories have been the most popular within the app and how has this popularity evolved across time for each category?

Type 5

This is a type 4 question because the information gathered can be useful for restaurants, health entities, statistical agencies, etc. (3rd parties) to understand their customers/citizens/population and generate valuable insights.

Q13: In the last month, what was the average order value per user, and how many mystery boxes did they order?

This is a type 5 question because it is meant to answer more than one topic from the other four types (type 3 + type 4). Type 3 because the information will answer how popular is the mystery box feature with the users (if it’s not that popular then it may be removed). Type 4 because the average order value per user is valuable information that can be used by restaurants, statistical agencies or other third parties to understand their target public.

Q14: Historically, what do the users that order the most, in terms of monetary value, have in common?

This is a type 5 question because it is meant to answer more than one topic from the other four types (type 2 + type 4). Type 2 because the answer to the question can be used to show recommendations to users based on what other users like them have ordered and liked. Type 4 because the information gathered can be used by restaurants, statistical agencies or other third parties to better understand their target public.

7. VD MAP

VD Map Foodies S1 drawio

VD MAP S1

8. Functional scenarios

Los escenarios funcionales que creamos los estructuramos de la siguiente manera: role, user action, system response, execution context, why it generates value.

FS1:

An environmentally conscious user wants to see the list of available Surprise Boxes in nearby establishments. To do this, they open the app, which first loads the login screen. After logging in, the home screen displays available Surprise Boxes and nearby establishments offering them. This interaction generates value by providing quick access to eco-friendly food options that help reduce food waste. The immediate display of available Surprise Boxes aligns with the user's sustainability values, making it easier for them to make responsible choices.``

Role: Environmental Concern User ``

User Action: User opens the app. ``

System Response: The app loads the home screen, displaying available Surprise Boxes and nearby establishments. ``

Execution Context: The user is on the app's main screen with an active internet connection. ``

Why it generates value: The environmentally conscious user appreciates having quick access to food options that help reduce waste, supporting their values of sustainability. The app’s immediate display of available Surprise Boxes allows them to make eco-friendly choices easily.

FS2:

A work-from-home user wants to add a Surprise Box to her cart. To do this, she selects a Surprise Box from a restaurant’s page, and the app confirms the action by updating the cart icon with the new item count. This interaction generates value by offering a seamless and convenient experience, allowing the user to efficiently plan meals without interruptions during a busy workday.

Role: Work From Home User

User Action: User adds a Surprise Box to their cart.

System Response: The app confirms the addition with a pop-up message and updates the cart icon to reflect the new item count.

Execution Context: The user is on the restaurant’s page with the cart icon visible in the top right corner of the screen.

Why it generates value: This user values convenience. By adding a Surprise Box quickly and receiving instant feedback through the pop-up confirmation, they can efficiently plan meals during their busy workday without leaving their home.

FS3:

A tourist wants to review the items in her cart. To do this, she taps on the cart icon, and the app displays the selected Surprise Box and the total price. This interaction generates value by providing a clear summary of the selected items and the total cost, helping the tourist make budget-conscious decisions while exploring a new city.

Role: Tourist

User Action: User taps on the cart icon to view items.

System Response: The app displays the cart, showing the selected Surprise Box and the total price.

Execution Context: The user is on the cart page, reviewing the selected items.

Why it generates value: Tourists benefit from an easy review of their choices before committing. Seeing the total price in one place helps them make budget-friendly decisions, particularly when traveling in an unfamiliar city.

FS4:

A work-from-home user wants to proceed to checkout. To do this, she accesses the payment section, where the app displays various payment options, including digital wallets like Apple Pay. This interaction generates value by simplifying the payment process, enabling quick and secure transactions that minimize disruptions during her workday.

Role: Work From Home User

User Action: User proceeds to checkout.

System Response: The app presents payment options, including credit card, PayPal, and Apple Pay.

Execution Context: The user is in the checkout process, with payment method options visible.

Why it generates value: The variety of payment methods simplifies the checkout process for remote workers, who may prefer digital wallets like Apple Pay for fast and secure transactions, allowing them to complete purchases without interruptions to their work.

FS5:

An environmentally conscious user wants to confirm her payment. To do this, she completes the payment process, and the app processes it, updating the order status to "confirmed." This interaction generates value by providing peace of mind, as the seamless transaction reassures the user that her purchase contributes to reducing food waste.

Role: Environmental Concern User

User Action: User confirms the payment.

System Response: The app processes the payment, updates the order status to "confirmed," and sends a confirmation email to the user.

Execution Context: The user is finalizing the purchase with an active internet connection.

Why it generates value: This user appreciates seamless transactions and the peace of mind that comes with receiving confirmation. It assures them that they are making a responsible choice to reduce food waste, reinforcing their eco-conscious habits.

FS6:

A tourist wants to know the details of her order after confirming the purchase. To do this, she receives a confirmation message with the pick-up time and location of her order. This interaction generates value by providing clear information on when and where to collect her order, ensuring that the tourist feels confident navigating an unfamiliar environment.

Role: Tourist

User Action: User receives a confirmation message.

System Response: The app displays a success message with details of the order, including pick-up time and location.

Execution Context: The user has completed the purchase and is now viewing the order confirmation screen.

Why it generates value: The clear display of pickup details is crucial for tourists who may be unfamiliar with local practices. It ensures they can retrieve their orders with confidence, enhancing their overall experience in the city.

FS7:

A work-from-home user wants to search for a specific restaurant. To do this, she uses the search bar in the app, which displays results matching her query. This interaction generates value by saving time, allowing the user to quickly find her preferred nearby establishments and make efficient meal purchases during a busy workday.

Role: Work From Home User

User Action: User searches for a restaurant by name.

System Response: The app displays search results matching the user’s query.

Execution Context: The user is using the search feature with an active internet connection.

Why it generates value: The search feature allows users to find their favorite nearby establishments quickly, saving time during their workday and allowing them to make purchases efficiently while working from home.

FS8:

A tourist wants to log into the app. To do this, she enters her credentials, and the app verifies them, logs her in, and redirects her to the home screen, displaying available Surprise Boxes and nearby establishments. This interaction generates value by offering a fast and hassle-free login process, allowing the tourist to quickly access local food deals and enhance her travel experience.

Role: Tourist

User Action: User logs in to the app.

System Response: The app verifies the user’s credentials, logs them in, and redirects them to the home screen, displaying available Surprise Boxes and nearby establishments.

Execution Context: The user is on the login screen, entering their credentials with an active internet connection.

Why it generates value: Tourists need a hassle-free login process to access food deals while exploring. Quick login ensures they can immediately begin browsing local food options, enhancing their travel experience.

FS9:

An environmentally conscious user wants to register a new account. To do this, the app collects the necessary information (name, email, password), creates the account, and logs the user in, redirecting them to the home screen. The user fills in their details on the registration screen with an active internet connection. This interaction generates value by offering a simple and streamlined registration process, encouraging the user to engage with the app’s waste-reduction features and fostering a sense of belonging to a sustainability-driven community.

Role: Environmental Concern User

User Action: User registers a new account.

System Response: The app collects the required information (name, email, password, etc.), creates a new user account, and logs the user into the app, redirecting them to the home screen.

Execution Context: The user is on the registration screen, filling in their details with an active internet connection.

Why it generates value: Registering quickly encourages environmental concern users to engage more readily with the app’s waste-reduction features, helping them feel part of a larger movement toward sustainability.

FS10:

Pablo, a work-from-home user, wants to delete a Surprise Box from his cart. To do this, he removes the item, and the app updates the item count and recalculates the total price. Pablo is on the cart page, managing his selections. This interaction generates value by allowing him to easily modify his order, ensuring that he purchases only what he needs without unnecessary distractions or delays.

Role: Work From Home User

User Action: User deletes a Surprise Box from their cart.

System Response: The app removes the selected Surprise Box from the cart, updates the item count, and recalculates the total price.

Execution Context: The user is on the cart page, managing their selected items with an active internet connection.

Why it generates value: Efficient cart management lets busy remote workers easily adjust their orders, ensuring that they only purchase what fits their current meal needs without extra distractions.

FS11:

Tomas, an environmentally conscious user, wants to increase the quantity of a selected Surprise Box. To do this, he adjusts the item quantity on the cart page, and the app updates the cart, recalculating the total price and item count. This interaction generates value by allowing Tomas to purchase more surplus food, contributing further to waste reduction while enjoying greater savings.

Role: Environmental Concern User

User Action: User increases the quantity of a selected Surprise Box type.

System Response: The app updates the cart to reflect the new quantity of the selected Surprise Box, recalculates the total price, and updates the item count.

Execution Context: The user is on the cart page, adjusting the quantity of items with an active internet connection.

Why it generates value: Increasing the quantity of surplus food purchased helps environmentally concerned users feel they are contributing more to reducing waste, while also benefiting from greater savings.

FS12:

William, a tourist, wants to activate the voice reading feature for Surprise Boxes. To do this, he enables the feature, and the app reads aloud the details, including the restaurant name, price, and pick-up time. William is on the restaurant or Surprise Boxes listing page, using the voice reading feature. This interaction generates value by making the app more accessible, especially for tourists with language barriers or a preference for audio guides, allowing them to browse food options hands-free.

Role: Tourist

User Action: User activates the voice reading feature for Surprise Boxes.

System Response: The app begins reading aloud the details of the Surprise Boxes available, including the restaurant name, price, and pickup time.

Execution Context: The user is on the restaurant or Surprise Boxes listing page and activates the voice reading feature with an active internet connection.

Why it generates value: Tourists who may struggle with language barriers or prefer audio guides find value in the voice feature, as it makes the app more accessible and allows them to browse food options hands-free.

9. Quality scenarios

QS1:

Scenario name Registration request submission
Quality attributes Performance, Responsiveness
App status and context The mobile app is on the registration page, and the client is filling out the registration form under normal operating conditions.
Changes in context The client submits a registration request
System reaction The system confirms successful registration within 3 seconds

QS2:

Scenario name Adding item to the cart
Quality attributes Performance, Responsiveness
App status and context The mobile app is displaying the product details page, and the client is browsing products under normal operating conditions.
Changes in context The client selects an item and adds it to the cart
System reaction The system confirms that the item has been added to the cart within 2 seconds

QS3:

Scenario name Adding a payment method
Quality attributes Reliability, Availability
App status and context The mobile app is on the payment settings page, and the client is entering payment details under normal operating conditions.
Changes in context The client submits the payment method details
System reaction The system confirms that the payment method has been successfully added, ensuring the response is accurate 99.9% of the time

QS4:

Scenario name Restaurant directions request
Quality attributes Reliability, Availability
App status and context The mobile app is on the restaurant details page, and the client is searching for directions under normal operating conditions.
Changes in context The client requests directions to a specified restaurant
System reaction The system provides a map with accurate directions to the specified restaurant, ensuring the response is successful 99% of the time

QS5:

Scenario name Food order confirmation
Quality attributes Reliability, Availability
App status and context The mobile app is processing orders, and the restaurant is reviewing an incoming order under normal operating conditions.
Changes in context The restaurant confirms the food order
System reaction The system confirms that the food order has been received, ensuring the response is successful 99.99% of the time

QS6:

Scenario name Deleting item from cart
Quality attributes Performance, Responsiveness
App status and context The mobile app displays the shopping cart, and the client is managing items under normal operating conditions.
Changes in context The client deletes an item from the cart
System reaction The system confirms the deletion of the item from the cart, with a response time of less than 3 seconds

QS7:

Scenario name Payment Confirmation
Quality attributes Reliability, Accuracy
App status and context The system is processing a payment for items in the cart under normal operating conditions.
Changes in context The user completes the payment process
System reaction The system provides confirmation of payment received to the user in 99.999% of cases

QS8:

Scenario name Address Update Confirmation
Quality attributes Responsiveness, Accuracy
App status and context The system is updating the user's address information under normal operating conditions.
Changes in context The user submits a request to update their address
System reaction The system provides confirmation that the address has been successfully updated

QS9:

Scenario name Order Cancellation Confirmation
Quality attributes Performance, Responsiveness
App status and context The system is handling a request to cancel a food order under normal operating conditions.
Changes in context The user submits a request to cancel their food order
System reaction The system provides confirmation that the food order has been successfully canceled

QS10:

Atributo Descripción
Scenario name Price Update Confirmation
Quality attributes Reliability, Accuracy
App status and context The system is processing a request to update the price of a menu item under normal operating conditions.
Changes in context The restaurant submits a request to update the price of an item.
System reaction The system provides confirmation that the price has been successfully updated.

QS11:

Scenario name Order Status Update Confirmation
Quality attributes Responsiveness, Accuracy
App status and context The system is processing an update to mark a food order as "ready" under normal operating conditions.
Changes in context The restaurant updates the status of the food order to "ready."
System reaction The system provides confirmation that the order status has been successfully updated.

QS12:

Scenario name Order Picked Confirmation
Quality attributes Reliability, Accuracy
App status and context The system is processing confirmation that an order has been picked up under normal operating conditions.
Changes in context The client sends confirmation that the order has been picked.
System reaction The system provides confirmation that the order status has been successfully updated to "picked."

QS13:

Scenario Name High Demand Scalability
Quality Attributes Scalability, Performance
App Status and Context The system is handling a surge in demand during peak hours where multiple users are attempting to order surprise boxes simultaneously under heavy load conditions.
Changes in Context Many users try to place orders at the same time, causing a significant increase in server requests.
System Reaction The system efficiently handles the increased load, ensuring that all users can successfully browse, add items to their cart, and complete purchases without delays or crashes.

QS14:

Scenario Name Server Downtime Recovery
Quality Attributes Availability, Responsiveness
App Status and Context One of the servers in the system goes down unexpectedly during normal operation, causing potential service disruption for some users.
Changes in Context The server hosting a portion of the app's services becomes unavailable, potentially impacting the ability of users to browse or place orders.
System Reaction The system immediately detects the failure and reroutes traffic to backup servers using load balancers. A redundant server takes over without user intervention, ensuring continued access to the app with minimal to no downtime.

10. Ethics

VideoEnCanva

VideoEnGithub