Sprint 1 - ISIS3510-202410-Team23/Backend GitHub Wiki
Introduction
In this sprint, we want to address a presented problem and formulate an innovative solution that not only tackles the issue at hand but also contributes substantial value to the stakeholders involved. This sprint focuses on the delivery of a comprehensive documentation, using the design thinking methodology presented in class. You will find below a thorough explanation detailing the selected problem, proposed solutions, revenue model, and compelling value propositions, as well as personas, empathy maps, business questions for further business analytics. As we delve into the sprint's detailed description, our objective is to justify our design decisions with the investigation we did.
Table of Contents
- Selected Problem
- Proposed Solution
- Revenue Model
- Value Proposition
- Problems-Alternative-Solutions
- Context Canvas
- Personas
- Empathy Maps
- Business Questions
- Visualization Data Map
- Functional Scenarios
- Quality Scenarios
- Ethics Video
Selected Problem
Around the university campus, despite numerous lunch options, the lack of a centralized platform slows down the discovery of diverse culinary experiences. The absence of a comprehensive resource makes it challenging for people to explore new places, limits gastronomic variety, and impedes the growth of potentially great establishments. Current methods of promotion, reliant on word of mouth, advertisements, or strategic locations, hinder the community from fully exploring the rich tapestry of available restaurant options.
Proposed Solution
The central idea of the proposed solution to the problem revolves around the community sharing their thoughts at different lunch places around campus through reviews that focus on important aspects of the experience. Through the use of the application, students can find a place on (or near) campus that meets their needs.
Since the success of such an application is based on the information our users provide, the rating experience needs to be as seamless and simple as possible while also capturing the essential data about each spot. First, we will ask students to categorize what they had for lunch at the restaurant they wish to rate, which will help gather data on their culinary offers. Then, students will be prompted to rate the restaurant based on predefined categories that most influence the decision to go to a place or not: waiting time, price, cleanliness and food quality among others. Finally, students can optionally provide a written comment about their experience and include pictures of their meal if they wish to do so.
When a student is deciding where to eat, they can find a browse page where they can quickly find the relevant information about a restaurant: price, distance, food category (vegan, vegetarian, gluten-free, etc). If an option catches their eye, they can find more details about the ratings and reviews it has been given, and its location on a map. Additionally, this detail will include the restaurant’s rating in terms of customer experience (food quality, waiting time, service, cleanliness).
Through our interviews and empathizing process, we saw that people stressed the importance of word of mouth and hoped to have a community-based system to emulate this. This is why we chose to leave out the restaurant owners themselves to avoid their influence on the information displayed (i.e., self-promotion, discounts, etc.)
Finally, as an add-on from the Friday, February 9th class, we discussed some potential smart features, like a recommendation system based on previous reviews the user has given, and automated categorization of the restaurants according to the most common food types that are placed in the reviews (i.e., fast food, vegetarian, italian). Additionally, we thought about context aware features, like a notification system for leaving reviews which prompts the user to leave a review after leaving the place or restaurant they were just at.
Revenue Model
Our revenue model will initially be based only on donations made by other students and supporters of the project, also known as crowdfunding. Crowdfunding involves securing financial support for the project by gathering funds from a broad audience, often through online platforms. This approach is a type of crowdsourcing and falls under the category of alternative finance. We will collect these donations through GitHub's Sponsorship program, because it is the most straightforward method at the moment.
Another possible income could come from gathering data from our users. We can license and sell this data to restaurants/providers in the area (so they can gather feedback about their services) and to people looking to enter the market (to provide insights about the needs and expectations of potential customers). This data will be completely anonymous and will be based on the reviews the users provide, not about them or their preferences.
Value Proposition
Our application empowers students to effortlessly share and discover new dining spots around campus through authentic reviews. Browsing allows students to swiftly access details like price, distance, and food categories, tailored to their preference. We simplify your rating experience by categorizing your meal and providing key insights on waiting time, price, cleanliness, and food quality.
Problems-Alternative-Solutions (PAS)
The PAS diagram serves as a dynamic tool to dissect challenges, explore diverse alternatives, and pinpoint effective solutions for 12 different scenarios. It is also useful for defining the unique value proposition of our idea.
Problem | Alternatives | Solutions |
---|---|---|
“I haven’t eaten well lately, I would love to eat something healthy and plentiful. I don’t know many places around the university that satisfy these requirements.” | “I can check on the RestaurAndes instagram page to find restaurants and read comments made on the posts hoping to find different opinions, but that requires I spend time on social media.'' | “An app that displays a catalog of restaurants near campus that is divided by food categories.” |
“I ate at a restaurant last week and had food poisoning because of a lack of hygiene in the restaurant.” | “I could bring my homemade lunch but the semester is consuming a lot of my time and energy.” | “An app that displays a catalog of restaurants near campus that is divided by food categories.” |
“The place I usually buy a full lunch at for a decent price and good quality recently closed.” | “I can check an Instagram profile created by university students to review restaurants, but it only offers their single opinion and I would like to have broader and more diverse perspectives.” | “A centralized platform where all sorts of students can upload their opinions about different restaurants around campus.” |
“She transferred to the university and doesn't know where to eat because she can’t have things with gluten.” | “She can cook specialized meals at home, but it’s very time consuming and as expensive as buying lunch.” | “An app that can categorize food places based on their ability to feed people with special dietary needs.” |
“I just had a surgery a few days ago and I cannot eat certain types of food, and it’s tedious to check out each restaurant’s menu.” | “I can make food on my own, but it is hard because 1) my schedule doesn’t provide me with enough time to do it and 2) my surgery does not allow me to move around a lot. ” | “A centralized app that provides information on a restaurant’s general offer where users can check the sorts of meals prepared at each place.” |
“I’m a foreign student and I can’t find my bearings just yet, so finding where restaurants are located is hard for me.” | “Use Google Maps, although it is saturated with other information that is irrelevant or overwhelming to me.” | “An app that uses an API that can measure distances and help users with directions.” |
“I’m a simple person, I just want to eat a decent meal everyday. No diet, no special food, just good food. I have one restriction, I don’t want to pay a lot of money for it. I’ve looked around campus, but can’t seem to find a place with decent food at a good price.” | I can ask my friends or in internet forums about “cheap” restaurants around campus.” | “One unified tool where each restaurant has specific labels (for example, “good prices, good food”) and I (or any student) can check for their specific restrictions.” |
“I don’t like carrying cash on me. I usually pay with a card or Daviplata. Lately, I’ve found myself obligated to carry cash because every other restaurant only receives it (or Nequi, which I don’t have).” | “Get comfortable carrying cash.” | “One unified tool where each restaurant has specific labels (for example, “cash only”) and I (or any student) can check for their specific restrictions.” |
“I had a bad experience with my food in a restaurant on campus, as it came out cold. I want to let people know of this occurrence”. | “I can tell my friends, and then they can tell their friends, and so on. This will take a long time and I want people to take into account that the food quality has been poor for me.” | “An app that has a rating for quality of food for restaurants on campus, also include a review system for me to learn of other student experiences” |
“I need to plan my day and that includes how much time it will take for me to lunch.” | “I can risk trying places that look empty or that the line is moving quickly.” | “A tool that lets me know in average how much waiting time students do while waiting for their lunch at a restaurant.” |
“My schedule is always very tight and the time I have daily for having lunch is very limited, therefore I always end up having the same unhealthy fast meals.” | “I can have lunch in a different place always, but this can mean I am either not meeting my deadlines or not being satisfied with the place.” | “An app that has a recommendation system based on my likes and needs, in which I can browse fast and healthy options.” |
“I trust word of mouth blindly for eating at new places, which means I never try new food places on my own.” | “I can check reviews on Google Maps, but those reviews are not balanced and can lead to misinformation since food places can always alter their public image either by paying Google to remove the bad reviews or programming bots for leaving good (and generic) reviews.” | “A democratized application in which people are the ones leaving reviews and are encouraged to do so, so that reviews can reflect reality with high fidelity.” |
Context Canvas
The Context Canvas unveils a panoramic view of the landscape surrounding our campus culinary community app.
Note: if you click on the image you can view a larger version of it.
Personas
Prospective user personas
A Persona is a great method to model a set of potential users in one diagram. We can understand their needs, motivations, pains, and technical aspects. We did 3, one for each potential set of users.
Persona 1
Note: if you click on the image you can view a larger version of it.
Persona 2
Note: if you click on the image you can view a larger version of it.
Persona 3
Note: if you click on the image you can view a larger version of it.
Analytics persona
In this case, we showcase Amanda, an entrepeneur whose new business proposition (a restaurant near campus) could benefit from knowing information in our app.
Note: if you click on the image you can view a larger version of it.
Empathy Maps
To understand some of our potential users (what they see, feel, do and think), we did five empathy maps.
Empathy Map 1
Note: if you click on the image you can view a larger version of it.
Empathy Map 2
Note: if you click on the image you can view a larger version of it.
Empathy Map 3
Note: if you click on the image you can view a larger version of it.
Empathy Map 4
Note: if you click on the image you can view a larger version of it.
Empathy Map 5
Note: if you click on the image you can view a larger version of it.
Business questions
Business questions are queries that organizations and development teams formulate while navigating the ever-changing markets and aiming to produce valuable products or services. These inquiries cover various aspects. When creating an application, comparable considerations emerge in the pursuit of market success. The conclusions drawn from this analytical process subsequently enable us to tackle and resolve these questions, directing strategic initiatives and taking data-driven decisions.
Type 1: App's telemetry
- What features are causing the application to crash? (Regards features that might not be working)
- What is the average loading time per device?
Type 2: Direct user experience improvement
- How often does a user begin a review and leave it unfinished, i.e they close the app or return to home before submitting? (Regards how satisfied users are with the reviewing experience)
- How long (in seconds) does a user spend browsing different restaurants before tapping to see the detail?
- 🆕 How many days have passed since the user last left a review? (e.g. 4 days, then it is suitable to suggest the user to write a new review if they have been to a spot) (This question was changed after the feedback given on the previous question: How many clicks/taps does it take for the user to leave a review?)
- What filter does a user usually add when browsing? (Regarding categorical preferences users)
Type 3: New or deprecated/updated features
- How many people have saved restaurants with the bookmarking feature?
- How often (in a monthly period) has the user left a review for a food option?
- Which core functionalities are being used less than 4 times per week? (Core refers to browsing, viewing details of reviews and leaving a review)
- What section of the review is not being filled? (Regards rating, categorizing food, leaving a comment and adding an image)
Type 4: Benefits from data
- What area has the highest concentration of reviewed restaurants?
- What kind of food are the most reviewed restaurants offering?
Type *: Combination of two or more types
- How many reviews have pictures in them? (Type 3/4)
- What are the highest reviewed restaurants? (Type 2/4)
Visualization Data Map
The VD map allows us to visually represent the relationship between data sources, the processing and aggregation of that raw data into useful information, the types of visualizations that information can be used to generate, and how those visualizations answer our different types of business questions. It helps ensure all components of the analytics system are connected and no important data or processing steps are missing.
Note: if you click on the image you can view a larger version of it.
📌 The VD Map was changed to reflect the BQ changed mentioned above. You can find our previous VD Map here.
Functional scenarios
Functional scenarios form the narrative backbone of an application's user experience, delineating how personas interact with various features. These scenarios provide a comprehensive view of the user's journey through the application. In crafting these scenarios, it is essential to embody the perspective of a persona, considering their unique characteristics, needs, and behaviors.
For the Functional Scenarios, Camilo said we can use the structure presented in the book for the Top Features of the Context Canvas. We include them below for the reviewer’s ease:
Template 1: (need), (expected outcome). (interaction)
Template 2: (precondition), (need), (expected outcome). (interaction)
- I want to see a list of all available spots around campus, so I can get an idea of options for lunch. (Scrolling on the screen)
- Given that I am a vegetarian, I want to filter restaurants so that I only see those offering vegetarian options. (Clicking on the screen)
- As a student with a tight schedule, I want to see the distance between me and a restaurant, so I can estimate how long it will take me to get there. (Scrolling on the screen)
- As a low-budget student, I want to sort spots by average price so that I can identify options within my budget. (Clicking on the screen)
- As a student with limited break time, I want to sort restaurants by their waiting time estimates, so I can grab food quickly between classes. (Clicking on the screen)
- I want to browse the reviews others have left of a spot so I can decide on a lunch spot that fits my expectations. (Scrolling on the screen)
- As a food enthusiast, I want to write a detailed review of my experience at a restaurant so that I can help others make informed choices. (Typing on the keyboard)
- As a new student on campus, I want to see the exact location of a restaurant so that I can identify a place near me. (Clicking on the screen)
- As a student athlete, I want to see what kind of food (categories) a spot offers so I can choose a balanced meal. (Scrolling on the screen)
- As a student, I want to rate restaurants based on relevant categories like cleanliness, quality, waiting time, etc. so that I can provide valuable feedback to other potential customers. (Clicking on the screen)
- I want to share the images I took of the food I bought, so others can gather an idea about the options and their quality. (Using the camera)
- I want to bookmark the spots that fit my needs so that I can easily find them later on. (Clicking on the screen)
Quality scenarios
In this section we describe 12 quality scenarios. These scenarios are crafted to explore various potential situations that may arise during the usage of the application, offering insights into its behavior under different conditions. By examining quality attributes such as accessibility, usability, performance, connectivity, resilience, availability, scalability, security, internationalization, GUI responsiveness, and more, these scenarios help uncover vulnerabilities and enhance the overall user experience.
Scenario | 1 |
---|---|
Scenario Name | Limited Offline Functionality |
Quality Attributes | Eventual Connectivity |
App Status | The user opens the app on their device. |
Changes in the context | The device is not connected to the internet. |
System reaction | The app uses caching mechanisms to store essential data locally, allowing users to access their bookmarked restaurants and cached information even without an internet connection |
Scenario | 2 |
---|---|
Scenario Name | Loss of internet connection |
Quality Attributes | Eventual connectivity, availability |
App Status | The app is fetching spots data from the remote server |
Changes in the context | The device loses internet connection. |
System reaction | The app notifies the user that connection to the server was lost, but that data will be detached as soon as connection is resumed |
Scenario | 3 |
---|---|
Scenario Name | Application rotated |
Quality Attributes | Responsiveness, Usability |
App Status | The user is completing a task within the application (browsing spots, writing a review, etc.) |
Changes in the context | The user rotates their device 90º to landscape mode. |
System reaction | The application will not respond to this change (ie. rotate the screen) because it can only be used in portrait mode. |
Scenario | 4 |
---|---|
Scenario Name | High server traffic |
Quality Attributes | Performance, availability |
App Status | The mobile app is fetching data from the backend. |
Changes in the context | There is heavy traffic and the server is experiencing high response times. |
System reaction | The app shows a loading indicator to the users and retries to fetch the data a set amount of times. If in the end there is a failure, a notification is sent to the user asking to wait while traffic is reduced. |
Scenario | 5 |
---|---|
Scenario Name | Poor Image Loading Performance |
Quality Attributes | Performance, Usability |
App Status | User tries to view images uploaded by other users in restaurant reviews. |
Changes in the context | The app experiences slow image loading times or fails to load images altogether. |
System reaction | The app optimizes image loading processes by compressing images, implementing lazy loading techniques. |
Scenario | 6 |
---|---|
Scenario Name | Unfinished Review |
Quality Attributes | Resilience, Eventual Connectivity |
App Status | The user is filling out a review for a restaurant. |
Changes in the context | Internet connection is lost before the submission of the review is made. |
System reaction | The application stores the review in the local storage, when connection is resumed it sends the request to the backend for its creation. |
Scenario | 7 |
---|---|
Scenario Name | Crash in the application |
Quality Attributes | Usability |
App Status | The application is running and opened on the device |
Changes in the context | A bug or error occurs, causing the application to crash. |
System reaction | The application collects crash data and sends it to the backend service. Additionally, it notifies the user that an error has occurred. |
Scenario | 8 |
---|---|
Scenario Name | Application Language |
Quality Attributes | Internationalization |
App Status | The app has been downloaded in a new device |
Changes in the context | The user only speaks Spanish. |
System reaction | The application offers an option to change the language of the application between English and Spanish. |
Scenario | 9 |
---|---|
Scenario Name | Multi Platform functionality |
Quality Attributes | Consistency |
App Status | Normal status |
Changes in the context | There are different OS in which the app is running (Android and IOS) |
System reaction | The application provides the same functionality to both Android and IOS devices while being also visually similar |
Scenario | 10 |
---|---|
Scenario Name | Critical battery charge |
Quality Attributes | Efficiency, UX |
App Status | The mobile app is running and the battery level is below 20% |
Changes in the context | The device is put in a low power mode to extend the battery duration |
System reaction | The application eliminates the animations that occur within views and reduces the amount of background tasks that are being executed |
Scenario | 11 |
---|---|
Scenario Name | Location Services Unavailable |
Quality Attributes | Reliability, UX |
App Status | User is scrolling for restaurants |
Changes in the context | Access to location services is not allowed, there is no GPS signal or the service is temporarily unavailable |
System reaction | The system notifies the user of the unavailability of this service and is able to provide everything but the distance estimation between users and spot location, which is shown with an indicator as unavailable. |
Scenario | 12 |
---|---|
Scenario Name | Authentication Services Unavailable |
Quality Attributes | Availability |
App Status | User is logging in or creating an account |
Changes in the context | Either the access or the authentication service itself is temporarily unavailable |
System reaction | The system notifies the user of the unavailability of this service, the probable cause and when it is expected to return. |
Ethics Video
You can watch our ethics video here.