Sprint1 - fedemelo/unitrade-wiki GitHub Wiki
Sprint 1: Deliverable
This page gathers all the work done during Sprint 1 into a written report, focused on the University Marketplace/Bartending App.
Many of the items lead to the respective pages where the work was originally done. This page is meant to be an accessible summary of all the deliverables expected for Sprint 1.
โ Elements marked with a dagger were changed based on the given feedback.
Index
- Sprint 1: Deliverable
1.1. Selected Problem
The selected problem is the University Marketplace/Bartending App. The original description of the problem can be found in the Problems Padlet. Our own description of the problem can be found in the Problem Description section of MS4.
The team agreed to tackling this problem after an extensive thought process. The though process and brainstorming behind it was documented in the Brainstorming Process section of MS2 and Brainstorming Process section of MS3. The decision process is explained thoroughly in the Decision Process section of MS3.
1.2. Proposed Solution
The proposed solution is a mobile application that serves as a University Marketplace/Bartending App. The solution is described in detail in the Solution Description section of MS3 and more succinctly in the Solution section of MS4.
1.3. Revenue Model
The team contemplated different revenue models for the app, taking into account the app's nature, target audience, and features.
Firstly, the team discarded three kinds of revenue models:
- Paid App (One-Time Purchase): Charging upfront would deter students from using the app, especially when free alternatives exist (such as social media groups) and the target audience is price-sensitive, as university students seldom have disposable income.
- Data Monetization: Selling user data would make the app questionable and could become public knowledge, leading to a loss of trust among users.
- Donations: Even though the app could receive donations, these are unreliable and unlikely to generate a consistent revenue stream.
Afterwards, the team decided to adopt a mixed revenue model, composed of:
- Commission for Service: A small percentage of each transaction (5%-10%) will be charged, directly tied to the value provided by the app. This is the main model, as it best aligns with the app's usage.
- In-App Purchases (Freemium): The app will offer premium features like priority when looking for items in high demand for users who pay a subscription fee. This is oriented to students that consistently need specific materials such as electric or electronic engineering students who
- In-App Advertising (Native Ads): As the application is oriented to buy, sell and rent academic materials, external businesses whose target audience is also students may be interested in advertising on the app. The app will only allow native ads, which show up as part of the app's content and are similar to listings from other users, so they don't disrupt the user experience.
In conclusion, the team believes that the mixed revenue model composed of commission for service, in-app purchases, and in-app advertising is the best option for the app, as it is the most aligned with the app's nature and target audience, and it provides a diversified revenue stream that can be adjusted according to the app's growth and user feedback.
1.4. Value Proposition
Buy, sell, or rent academic materials in minutes
UniTrade makes it easy for students to exchange course materials: find what you need, sell your surplus, connect with peers, and get real-time directions for smooth transactions.
Save time, money, and reduce waste.
Explanation:
The above value proposition was designed by the team to be concise and impactful. It is a positioning statement that places UniTrade as the best option for students to exchange academic materials. It highlights the benefits of the app, which are basically saving the student time and money, and helping reduce waste overall. It is directed to the target audience, which are students, and their main pain point, which is the difficulty of finding and exchanging academic materials. The value proposition is unique because it is the only app that is truly convenient, is centered exclusively in academic materials and offers unseen features such as real-time directions for transactions. That makes UniTrade distinctly better than any alternatives, such as open social media groups or other platforms that are not specialized in academic materials.
2. Problem Description Through PAS
The problem is described through 12 Problem-Alternative-Solution (PAS) in the Problem Alternative Solutions section of MS4.
3. Context Canvas
A context canvas is provided for the solution in the Context Canvas section of MS4.
4. Personas
Three prospective personas and an analytics persona were described for the problem. They can be found in the Personas section of MS3 and Analytics Persona section of MS4.
5. Empathy Maps
Six empathy maps, each one corresponding to a prospective user of the app, were described for the problem. They can be found in the Empathy Maps section of MS3.
6. Business Questions
Originally, 10 business questions were formulated: 1 type 1 question, 4 type 2 questions, 3 type 3 questions, a type 4 question, and a type * question. They can be found in the Business Questions section of MS4.
6.1. Additional Business Questions
Four additional business questions are formulated, of types 1, 3, 4, and *.
-
Type 1 question: What is the average response time for listing a new item in the marketplace?
- This question helps monitor the app's performance, particularly the speed of core functions like listing items, which directly impacts user satisfaction.
-
Type 3 question: What proportion of users donโt upload a photo vs. upload a photo from the gallery vs. upload a photo from the camera?โ
- Evaluating user behavior when listing items can inform feature improvements or removals, and optimize both the listing process for the user and the storage use.
-
Type 4 question: Which user demographic, categorized by major, is most likely to sell materials rather than rent them?โ
- This data helps target marketing towards demographics most likely to purchase materials.
-
Type * question: What are the most selected interests when users log in for the first time?โ
- Types covered: Type 2, Type 4.
- Justification: This question helps personalize the app experience by recommending relevant products and services, increasing engagement. It could also be of interest to third parties which are the interests of the app's audience.
7. VD Map
A Visualization-Data map was created on the VD Map Section of MS4 to show the relationship between the questions and the data needed to answer them.
The updated VD Map, considering the four additional business questions formulated, is shown below:
Updated VD Map
The image is high-resolution and can be zoomed in. To take a better look at the image, left-click on it and select "Open image in new tab".
8. Functional Scenarios
โ | User Action | System Response | Execution Context |
---|---|---|---|
1 | The user opens the app and navigates to the login page. The user enters their email and password, then clicks the 'Log In' button. | The system verifies the credentials. If the credentials are correct, the system logs the user in and displays the home page with a search bar, general categories, and a listing of items in card format. | The user has just downloaded the app and wants to access their account to start searching for academic materials. |
2 | The user opens the app and navigates to the registration page. The user fills in their name, email, password and confirms the password. The user clicks the 'Register' button. | The system verifies the information, creates the account, logs the user in, and displays the home page. | The user is a new student at the university and wants to set up an account to buy or rent textbooks for their courses. |
3 | The user is on the home page. The user types the name of the product they are looking for into the search bar and clicks the 'Search' button. | The system displays a list of items matching the search criteria of the user in card format with the name, price and rating. | The user needs a specific textbook for an upcoming class and wants to quickly find available options on the app just for the needed book. |
4 | The user is on the home page. The user clicks on one of the general categories (e.g., "Math"). | The system displays a list of items within that category in card format with the name, price and rating. | The user is going to see a new class and is browsing for general study materials, and wants to explore the available options in the specific category. |
5 | The user finds an item they are interested in on the home page or search results and clicks on it. | The system displays the product detail page, showing the name, star rating, description, and three reviews, along with buttons to see all reviews, the price, and an 'Add to Cart' button. | The user has found a textbook they are interested for a class and wants to read more about it before making a purchase decision. |
6 | The user is on the product detail page and clicks the 'See All Reviews' button. | The system displays a page with all the reviews for the product, showing the name of the reviewer, a star rating, the review and the date of the review. | The user is considering buying a textbook and wants to read all the reviews to ensure it meets their needs so they don't waste money. |
7 | The user is on the product detail page and clicks the 'Add to Cart' button. | The system adds the product to the user's cart and displays a confirmation message. | The user has decided to purchase a textbook and wants to add it to their cart for checkout with other materials for the university. |
8 | The user navigates to their profile and selects the 'Order History' option. | The system displays a list of the user's past purchases in chronological order with the name, price and state. | The user wants to review the textbooks and other materials they have previously purchased. |
9 | The user is on the 'Order History' page and selects the filter option. The user sets the desired date range and applies the filter. | The system updates the list to show only the purchases made within the specified date range. | The user is looking for a specific purchase made within a certain timeframe because he is trying to track their spending on textbooks over the last semester to manage their budget for future course materials. |
10 | The user is on the product detail page and clicks the heart button to add the product to their wishlist. | The system adds the product to the user's wishlist and displays a confirmation message. | The user is interested in a textbook but wants to save it for later consideration. |
11 | The user navigates to the 'Sell' section and selects the option to publish a product. The user enters the product details and selects the option to take a photo. The user uses their phone camera to take a picture of the product and clicks the 'Publish' button. | The system uploads the photo, saves the product details, and publishes the product on the marketplace. The user receives a confirmation message. | The user wants to sell a textbook they no longer need of a class he already took and wants to include a photo to attract buyers. |
12 | After the user completes the purchase of a product, they navigate to the order details page. | The system displays a map with the location and time of the meeting for the exchange. | The user has purchased a textbook for an upcoming class and wants to know where and when to meet the seller to complete the transaction in person without any issues. |
9. Quality Scenarios
โ | Scenario Name | Quality Attributes Involved | App Status and Context | Changes in the Context | System Reaction to the Changes in the Context |
---|---|---|---|---|---|
1 | Losing Internet Connection During App Opening | Eventual connectivity, resilience | The user opens the app to log in or browse products. | The user loses internet connection while the app is loading. | The app displays a message indicating a loss of internet connection and offers a "Retry" button. It also provides limited offline functionality for previously cached data. |
2 | Losing Internet Connection During Product Publishing | Eventual connectivity, resilience | The user is filling out the form to publish a product and clicks the 'Publish' button. | The user loses internet connection during the publishing process. | The app saves the product details locally and notifies the user about the loss of connection. It queues the publication for automatic retry when the connection is restored. |
3 | Low memory on the Phone | Performance, resilience | The app is running with multiple features being used, such as viewing product lists and detail pages. | The phone's memory is heavily used by other apps, leading to memory pressure. | The app saves the current state and gracefully releases memory by clearing non-essential cached data, ensuring smooth operation when the user returns to the app. |
4 | Peak Backend Usage | Scalability, performance | The app is being used by many users simultaneously during peak times, such as the start of a semester. | The backend experiences a high volume of requests, causing potential slowdowns. | The app implements exponential backoff for retries, displays a loading indicator, and informs users of potential delays while maintaining a responsive UI. |
5 | Unauthorized Account Access Attempt | Security, resilience | A user attempts to log in with valid credentials, but another entity tries to access the account simultaneously. | The system detects suspicious login attempts from different locations. | The app prompts the user to verify their identity through two-factor authentication and sends a notification about the suspicious activity. If the user cannot verify their identity, the system temporarily blocks access to the account while allowing the legitimate user to continue their session. A detailed notification is sent to the user about the suspicious activity, including information on the location of the attempts, and offering steps for securing their account. |
6 | Unauthorized Publication Action Attempt | Security, resilience | The user is editing or deleting a previously published product. | An unauthorized entity attempts to edit or delete the publication. | The app checks for proper authentication and authorization. If unauthorized activity is detected, it denies the action, notifies the original user, and locks the publication temporarily if multiple unauthorized attempts occur. |
7 | Using the App on a Low-End Device | Performance, usability | The app is being used on a device with limited processing power and memory. | The device shows signs of lag or slow performance. | The app optimizes resource usage by reducing image quality, limiting background processes, and simplifying animations to ensure usability on low-end devices. |
8 | Using the App on a Large-Screen Device like a tablet | Usability, responsiveness | The app is being used on a tablet or large-screen device. | The user interacts with the app, expecting it to adapt to the larger screen size. | The app adjusts its layout to take advantage of the larger screen, ensuring that UI elements are appropriately scaled and spaced for better usability. |
9 | Using the App During Server Maintenance | Availability, resilience | The app is running while the backend server undergoes scheduled maintenance. | The user attempts to perform actions that require server interaction. | The app displays a maintenance message and provides limited offline functionality, such as viewing previously cached data and queuing actions to be executed once the server is back online. If the user attempts critical actions like publishing a product or completing a purchase, the app notifies them that the action is queued and will be processed once maintenance is complete. |
10 | Ensuring User Privacy During Product Publishing | Privacy, security | The user is filling out the form to publish a product. | The user provides personal information such as contact details. | The app ensures that sensitive information is handled securely, displaying only necessary details to other users and providing options for private communication through the app. |
11 | Using the App in Another Language | Internationalization, usability | The user installs and opens the app on a device set to a language other than the default. | The app needs to display content and UI elements in the user's preferred language. | The app automatically detects the device's language setting and adjusts all text, messages, and interface elements accordingly. If a full translation is unavailable, the app informs the user about the partial translation. |
12 | Using the App in a Dark Environment | Accessibility, usability | The user is using the app in a low-light environment, such as at night. | The screen brightness is too high, causing discomfort. | The app offers a dark mode that adjusts the luminosity and contrast, reducing eye strain and improving usability in dark environments. |