Sprint 1 - ISIS3510-202402-T13/SeneParking GitHub Wiki

Sprint 1 marks the beginning of our project, where we focus on laying the groundwork for the tasks ahead. During this sprint, the team will concentrate on understanding the project scope, setting up the necessary tools, and planning the initial phases of development. Key objectives include defining the project requirements, outlining the architecture, and starting the initial implementation.

For detailed documentation and deliverables, please refer to the following item list:

Deliverable Sprint 1: Solution context and design

1. Problem and value proposition

Problem

Students at Universidad de los Andes face significant challenges with campus parking. The limited parking spaces result in long wait times, uncertainty about availability, and stress for students trying to make it to class on time. The lack of real-time information on parking availability and the inefficient current system lead to wasted time, frustration, and potentially missed academic opportunities.

Description

SeneParking is a mobile application designed to streamline the parking experience at Universidad de los Andes. It offers real-time parking spot detection, smart access through license plate recognition, and in-app payments. The app also provides navigation assistance, spot reservation capabilities, and special spots for electric cars. By leveraging IoT sensors and user-friendly interfaces, SeneParking aims to reduce search times, minimize stress, and improve parking efficiency (initially in the Santodomingo building with the option of expanding to nearby parking lots) for students, faculty, and visitors.

Value proposal

SeneParking is a comprehensive mobile application designed to revolutionize the parking experience at Universidad de los Andes. It offers a suite of features including real-time parking spot detection, smart access through license plate recognition, in-app payments, navigation assistance, spot reservation capabilities, and dedicated spaces for electric vehicles. By leveraging IoT sensors and user-friendly interfaces, SeneParking aims to significantly reduce search times, minimize stress, and improve overall parking efficiency. The app addresses key pain points such as long wait times, uncertainty about availability, and the pressure of finding parking before class, thereby enhancing the daily experience for students, faculty, and visitors alike.

Revenue model

To monetize its services, SeneParking could charge small transaction fees for parking payments processed through the app and premium fees for spot reservations. A subscription model could offer basic services for free while providing advanced features to paying users. The app could generate additional revenue through partnerships with local businesses, offering targeted promotions to users and earning commissions on resulting transactions. As the service expands, SeneParking could charge inclusion fees to nearby independent parking lots. With user consent, valuable data on parking patterns and user behavior could be monetized for urban planning and research purposes. Lastly, the app could display ads to free-tier users.

2. Problem-Alternative-Solution structure

PAS Diagram 1

Problem: Users do not have access to real-time information about parking lot availability near Universidad de los Andes, causing frustration and time loss.

Alternative: Look for signs that display availability or communicate that the parking lot is full.

Solutions:

  • Sensors and Cameras: Utilize existing infrastructure to provide real-time availability, improving user experience.
  • Integration with payment/registration system: A more economical but less precise option, suited for parking lots without sensors or cameras.

PAS Diagram 2

Problem: Users feel anxious and frustrated because they cannot estimate the wait time in the parking queue.

Alternative: Use personal judgment based on traffic and lines to estimate the wait time.

Solutions:

  • Location and traffic data: Provides real-time estimates, improving user planning but requires constant data access.
  • User manual input: Involves active user participation, similar to Waze, but could lead to inaccuracies.
  • Predictive analysis: Relies on historical data, with accuracy improving as more user data is provided.

PAS Diagram 3

Problem: Users are frustrated by the inability to make advance parking reservations, leading to uncertainty and stress.

Alternative: Offer reservations based on schedules or pay for monthly subscriptions.

Solutions:

  • Online reservation system: Flexible and user-friendly but risks overbooking.
  • Reservations based on schedules: Reduces peak demand but is less flexible and changes each semester.
  • Reservations for priority groups: Ensures availability for key users, providing peace of mind for essential personnel.

PAS Diagram 4

Problem: University users cannot easily access historical data on parking usage, leading to inefficiencies in planning parking.

Alternative: Ask peers or rely on memory to identify high-demand parking spots.

Solutions:

  • Historical database: Allows for detailed usage analysis but requires a robust storage system.
  • Weekly reports: Provides a general overview of parking occupancy, easy to implement but less interactive.
  • Interactive graphs: More engaging and user-friendly but requires more complex development.

PAS Diagram 5

Problem: Users are stressed when no parking is available, as they lack information on alternative parking options nearby.

Alternative: Talk to peers or staff for guidance on alternative parking locations.

Solutions:

  • Information on alternative parking lots: Provides immediate solutions by listing nearby parking options, though these may be less convenient in terms of distance.

PAS Diagram 6

Problem: Users are frustrated because they do not receive real-time notifications about changes in parking availability, causing missed opportunities.

Alternative: Users must manually monitor parking queues or rely on physical signs.

Solutions:

  • Push notifications: Quick and efficient but may become overwhelming if too frequent.
  • Email alerts: Suitable for less frequent users but not ideal for urgent updates.

PAS Diagram 7

Problem: Users have difficulty finding the exact location of an available parking space, leading to confusion and wasted time.

Alternative: Rely on parking staff or physical signage to navigate the parking lot.

Solutions:

  • Digital signage: User-friendly for all but dependent on physical infrastructure.
  • Interactive maps: Intuitive and helps navigation but depends on real-time data accuracy.
  • Numbered parking spaces: Simple to implement and improves navigation, though effectiveness may vary by parking lot layout.

PAS Diagram 8

Problem: Users are unaware of parking rates and payment methods before entering, which can lead to surprise costs and frustration.

Alternative: Check signs at the parking lot entrance, though these may be outdated or hard to read.

Solutions:

  • Payment in the app: Convenient for users but requires trust in digital payments.
  • Display rates and payment methods: Ensures transparency by providing accessible and up-to-date information for all parking lots nearby.

3. Context canvas

ContextCanvasMS4T13-DEFINITIVO drawio

Context Canva PNG (Google Drive)

4. Persona descriptions

Analytics Persona

Analytics

Prospective Persona 1

Prospective1

Prospective Persona 2

Prospective2

5. Empathy maps

Overall Description for All Empathy Maps

These empathy maps represent the key user groups at Los Andes University, revealing their unique parking-related challenges. Together, they provide essential insights for developing a user-centered ParkingApp that meets the diverse needs of students, faculty (university staff), visitors, and individuals with disabilities.

Empathy Map: Felipe (Student)

Description: Felipe is a 21-year-old undergraduate student at Los Andes University, balancing a busy schedule of classes and extracurricular activities. His main frustration stems from the daily struggle to find parking on time, adding unnecessary stress to his academic commitments. His goal is to find a reliable and efficient parking solution that allows him to focus on his studies without worrying about parking availability.

Empathy Map Student

Empathy Map: Professor Sandra (Faculty Member)

Description: Sandra is a 45-year-old professor at Los Andes University, juggling teaching, research, administrative duties and professional career. Time is a critical resource for her, and the current inefficient parking system often causes delays in her tight schedule. Her priority is to reduce stress through timely and accurate parking information, ensuring that she can arrive at her lectures and meetings on time.

Empathy Map Professor

Empathy Map: Luis (Visitor)

Description: Luis, a 35-year-old visitor attending a conference at Los Andes University, experiences anxiety due to his unfamiliarity with the campus layout, particularly the parking facilities. As a first-time visitor, he values clear guidance on parking availability and accessible routes, ensuring he can find his way without stress or delay.

Empathy Map Visitor

Empathy Map: Carlos (Wheelchair User)

Description: Carlos, a 28-year-old wheelchair user, frequently visits Los Andes University for academic and social purposes. His primary concern is the accessibility of parking spaces and campus navigation, as current facilities often lack clear information on accessible routes. Carlos needs a solution that prioritizes accessibility, allowing him to move freely and comfortably throughout the campus.

Empathy Map Person with Disability

6. Business questions

Type 1: App’s telemetry

1. What is the average response time for real-time parking spot availability updates, and does it exceed our target of 1 second?

This focuses on app performance metrics—response time, which is critical for app telemetry.

2. What is the error rate of our real-time spot detection system, and does it fluctuate significantly during peak hours?

This is also a telemetry question because it measures the technical reliability (error rate) of the spot detection system, which is an important performance indicator.


Type 2: Direct user experience improvement

3. How many users successfully found and parked in a reserved spot within 5 minutes of arrival at the university?

This assesses how efficiently users can find parking, which is a direct measure of user experience.

4. What percentage of users activate the in-app navigation feature when approaching the campus parking areas?

This examines a key feature's effectiveness in improving user navigation.

5. On average, how long does it take for a user to complete the parking payment process through the app?

This looks at the user interaction with the payment system, aiming to streamline the process.

6. What is the daily utilization rate of electric-car-exclusive spots?

This checks how specific groups of users (electric car owners) interact with specialized parking features.

7. How many users cancel their reserved parking spots before arrival, and what is the primary reason for cancellations?

This adds another element of user behavior, focusing on why reservations are being canceled, which can lead to improvements in the app’s reservation feature.


Type 3: New or deprecated/updated features

8. Which parking-related feature (spot reservation, real-time availability, or navigation assistance) is used most frequently by our users on a weekly basis?

This question evaluates feature popularity, driving decisions about feature updates.

9. What percentage of users have clicked on the license plate recognition beta feature for automated entry?

It’s important to assess feature adoption during beta testing to decide whether to continue development.

10. Is the usage frequency of parking spots in the Santodomingo building through our app exceeding the parking lot's capacity? Consequently, should we expand to nearby independent parking lots?

This focuses on the scalability of current features based on real-world usage patterns.

11. Which in-app notifications related to parking spot availability or reservation reminders are ignored or dismissed by users most often?

This examines the effectiveness of notifications as a feature and helps guide decisions about modifying or deprecating ineffective alerts.


Type 4: Benefits from data

12. Based on our collected data on peak parking hours and user demographics, which local businesses near campus might be interested in partnering for targeted promotions or discounts to our users?

This explores the commercial benefits of data, like creating partnerships with local businesses.

13. What trends can be identified from data on electric vehicle usage on campus, and how can we use these trends to propose future app features or promotions for EV users?

This builds on the data related to electric vehicle parking and allows the business to explore ways to incentivize or introduce new features for electric car users based on insights.


Type 5: Combination of two or more types

14. How does the implementation of our real-time spot detection system impact both the app's performance metrics (such as server response time and data accuracy) and user behavior patterns (like frequency of app usage and time spent searching for parking)?

This is a combination of app telemetry (performance metrics) and user experience.

15. What impact does the introduction of our app's push notifications for parking availability have on both app performance (e.g., notification delivery time) and user engagement (e.g., parking success rate)?

This combines the telemetry of notification performance with its effect on user engagement, making it a Type 5 question.

7. VD Map

VD Map Final

High Resolution VD Map

8. Functional scenarios

1. Real-Time Parking Availability Check

Category Description
User Action Sofia, a part-time student, opens the SeneParking app as she drives towards campus for her evening class.
System Response The app displays a map of the campus parking areas with real-time availability, showing 3 open spots in the Santodomingo building.
Execution Context The system uses data from IoT sensors to update the parking spot status every 30 seconds. The app interface adjusts to show Sofia's current location and the nearest available parking.

2. Smart Access Using License Plate Recognition

Category Description
User Action Professor Sandra approaches the Santodomingo building parking entrance in her white Toyota Corolla at 8:45 AM for her 9:15 AM lecture. She slows down as she nears the barrier, having forgotten her staff ID card at home.
System Response As Sandra's car approaches, high-resolution cameras capture her license plate number (ABC 123). Within 2 seconds, the system recognizes the plate, matches it to Sandra's faculty profile, and automatically raises the yellow-striped barrier. A digital display at the entrance flashes "Welcome, Prof. Sandra" as she enters.
Execution Context The system's AI-powered image recognition software processes the license plate image in real-time. It cross-references the plate number with the database of registered users, identifying Sandra as a faculty member with parking privileges. The system logs her entry time (8:46 AM), updates the parking occupancy data from 45 to 46 cars, and initiates Sandra's parking session timer for potential billing purposes. It also sends a silent notification to Sandra's app confirming her entry.

3. In-App Payment for Parking

Category Description
User Action Carlos, a visitor attending a campus seminar, ends his 3-hour parking session at 2 PM. He opens the SeneParking app and taps on "End Parking & Pay". He then selects his preferred payment method from the options displayed: saved credit card, PayPal, or campus debit account.
System Response The app calculates Carlos's parking duration as 3 hours and 12 minutes. It displays a breakdown: "Parking Fee: $9.60 (3 hrs @ $3/hr) + $1.20 (12 mins @ $0.10/min) = Total $10.80". After Carlos confirms, the app processes the payment using his stored credit card, showing a loading animation for 5 seconds. A green checkmark appears with "Payment Successful" and a digital receipt number.
Execution Context The system updates the parking transaction database with Carlos's payment details. It generates a PDF receipt and sends it to Carlos's email address on file. The system also sends a signal to the exit barrier control unit, flagging Carlos's license plate as "paid" for the next 15 minutes. When Carlos approaches the exit in his car, the barrier will automatically raise. The parking spot Carlos occupied is immediately marked as available in the system for other users to see.

4. Navigation to Assigned Parking Spot

Category Description
User Action Luis, a new student, arrives on campus at 10:30 AM for his 11:00 AM class. He's reserved spot B24 in the Santodomingo building. After parking in the general area, he taps "Navigate to My Spot" in the SeneParking app.
System Response The app switches to an indoor map view of the Santodomingo building. A blue dot represents Luis's current position. A pulsing green marker shows the location of spot B24. The app provides audio and visual turn-by-turn directions: "Walk straight for 20 meters, then turn right at the elevator bank."
Execution Context The system uses a network of Bluetooth beacons installed throughout the parking structure to determine Luis's precise location. As he moves, his position updates every 2 seconds. The pathfinding algorithm continuously recalculates the optimal route, taking into account any obstacles or closed pathways. If Luis goes off-route, the app automatically recalculates and provides updated directions. Once Luis reaches within 5 meters of his spot, the app switches to camera view, using AR to highlight his exact parking spot.

5. Electric Vehicle Charging Spot Reservation

Category Description
User Action Maria, an eco-conscious faculty member, uses the app at 7:30 AM to find an EV charging spot for her afternoon faculty meeting. She taps on "Find EV Charging" and sets her arrival time for 1:00 PM.
System Response The app shows a dedicated EV charging section on the parking map. Out of 10 total spots, it shows 3 available for Maria's selected time. She chooses spot EV-05. The app displays: "Spot EV-05 reserved from 1:00 PM - 5:00 PM. Charging rate: $0.15/kWh. Estimated full charge time for your Tesla Model 3: 3 hours 20 minutes."
Execution Context The system updates the EV charging spot availability database, marking EV-05 as reserved from 1:00 PM. It initiates a reservation timer, which will release the spot if Maria doesn't arrive by 1:15 PM. The system also communicates with the charging station at EV-05, preparing it for Maria's specific vehicle model. At 12:45 PM, the app will send Maria a reminder notification about her reservation.

6. Parking History and Analytics Review

Category Description
User Action Felipe, a junior student, accesses his parking history and analytics in the app on a Sunday evening. He taps on "My Parking Insights" from the main menu.
System Response The app displays Felipe's parking history for the past month in a scrollable list. It shows a bar graph of his weekly usage: Mon (3hrs), Tue (2hrs), Wed (4hrs), Thu (3hrs), Fri (1hr). A pie chart breaks down his parking by location: 70% Santodomingo, 20% Central Lot, 10% North Campus. The app also shows personalized insights: "You typically park for 3 hours on Mondays. Arriving at 8:45 AM could save you an average of 10 minutes search time based on current trends."
Execution Context The system retrieves Felipe's historical parking data from the last 6 months. It processes this data using machine learning algorithms to identify patterns and generate insights. The system cross-references Felipe's parking habits with overall parking trends and his class schedule. It presents the information in an easy-to-understand format with interactive graphs and charts. Felipe can tap on any data point for more detailed information.

7. Reporting a Parking Issue

Category Description
User Action Ana, a graduate student, notices that the payment machine on Level 2 of the Santodomingo building is displaying an error message at 3:15 PM. She opens the SeneParking app, taps on "Report an Issue," selects "Payment Machine Problem" from a dropdown menu, and adds a photo of the malfunctioning machine.
System Response The app acknowledges Ana's report with a message: "Thank you for reporting this issue. Ticket #1234 has been created." It then shows a status tracker: "Issue reported > Under review > Assigned to technician > Resolved". The current status is highlighted as "Issue reported". The app also provides an estimated resolution time: "We aim to resolve this within 2 hours."
Execution Context The system logs the reported issue in the maintenance database, including the timestamp, location, issue type, and attached photo. It automatically assigns a priority level based on the type of issue. The system triggers an alert to the on-duty maintenance team via their work devices. As the issue progresses through different stages, Ana will receive push notifications updating her on the status. If the issue isn't resolved within the estimated time, the system will escalate it to senior maintenance staff.

8. Switching to Nearby Parking When University Lot is Full

Category Description
User Action Juan, a senior student, arrives at the university at 9:50 AM for his 10:30 AM class, only to find the Santodomingo building parking full. He taps the "Find Nearby Parking" option in the app.
System Response The app displays a list of three nearby partner parking lots with available spaces: "CityParking - 300 meters away - 15 spots - $10.000 per day", "Parqueadero Monserrate" - 500 miles away - 30 spots - $12.000 per day", "QuickParking - 700 miles away - 50 spots - $11.000 per day". Each option includes a "Navigate" button and an estimated walking time to Juan's class location.
Execution Context The system queries its database of partner parking lots within a 1-mile radius. It retrieves real-time availability data from these lots through API integrations. The system then calculates distances and walking times based on Juan's current location and his known destination (derived from his class schedule). It presents Juan with options, ordered by distance. When Juan selects an option, the app integrates with his phone's default map application to provide turn-by-turn driving directions to the chosen lot. The system also sends an anonymized data point to the university's transportation department, logging that a student was redirected to off-campus parking, which helps in future parking capacity planning.

9. Quality scenarios

First quality scenario

Scenario name User attempts to find a parking spot without granting location access.
Quality attributes involved in the scenario Usability
App status and context The app is launched, and the user is on the main screen where they can search for parking spots. The app is designed to use the phone's GPS to suggest nearby parking spots.
Changes in the context (includes what the persona is doing) The user attempts to find a parking spot by selecting the "Find Parking Near Me" option, but they have not granted the app permission to access their phone’s location.
System reaction to the changes in the context The app detects the lack of location access and prompts the user with a message indicating that location services are disabled. It provides two options: 1. Enable Location Services: Redirects the user to the device settings to enable location access for the app. 2. Manual Location Entry: Allows the user to manually enter a location (e.g., city, street) to search for parking spots near that specified location.

Second quality scenario

Scenario name App is running on a device with low memory.
Quality attributes involved in the scenario Performance, Resilience
App status and context The app is active, and the user is searching for parking spots. The device's memory is low due to other running apps or background processes.
Changes in the context (includes what the persona is doing) The user continues using the app while the device’s memory availability decreases.
System reaction to the changes in the context The app detects low memory conditions and optimizes its performance by reducing non-essential background processes, lowering the refresh rate of real-time data, and prioritizing core functionalities to prevent crashes.

Third quality scenario

Scenario name User is in an area with poor or no internet connectivity.
Quality attributes involved in the scenario Connectivity, Resilience
App status and context The app is launched, and the user is trying to find a parking spot while moving through an area with poor or fluctuating connectivity.
Changes in the context (includes what the persona is doing) The user tries to search for parking spots or access map data, but the connection becomes unstable or is lost entirely.
System reaction to the changes in the context The app detects connectivity issues and switches to offline mode, providing previously cached maps and parking data. It also notifies the user about the connectivity status and attempts to sync when the connection is restored.

Fourth quality scenario

Scenario name The app experiences a surge in traffic as many users try to access the service simultaneously.
Quality attributes involved in the scenario Scalability, Availability, Performance
App status and context The app is fully operational, but the backend server is experiencing high traffic due to a large number of users searching for parking spots at the same time.
Changes in the context (includes what the persona is doing) The user tries to search for a parking spot or reserve one, but the server is under heavy load.
System reaction to the changes in the context The app gracefully handles the server load by implementing load balancing, queuing user requests, and providing real-time feedback to users about any delays. It also ensures that critical operations are prioritized.

Fifth quality scenario

Scenario name Device shuts down unexpectedly while the app is in use.
Quality attributes involved in the scenario Resilience, Availability
App status and context The app is actively being used to navigate to a parking spot when the device suddenly shuts down due to low battery or a system error.
Changes in the context (includes what the persona is doing) The user is navigating to a parking spot when the device shuts down unexpectedly.
System reaction to the changes in the context Upon restarting the device, the app automatically resumes the previous session, restoring the user's progress and route information without requiring them to start over.

Sixth quality scenario

Scenario name User interacts with the app in a low-light environment.
Quality attributes involved in the scenario Usability, Accessibility
App status and context The app is being used in an environment with low ambient light, such as a dimly lit parking garage at night.
Changes in the context (includes what the persona is doing) The user attempts to search for parking spots or view the map in low-light conditions.
System reaction to the changes in the context The app automatically switches to a dark mode or low-light mode, adjusting the brightness and contrast for optimal visibility. It also enlarges key text and icons to enhance readability.

Seventh quality scenario

Scenario name App is placed on hold by quick accessing other active apps.
Quality attributes involved in the scenario Resilience, Usability, Performance
App status and context The app is in active use, for example, showing directions to a parking spot, when the user quickly switches to another app (e.g., messaging or call) without closing the parking app.
Changes in the context (includes what the persona is doing) The user accesses another app, such as answering a call or responding to a message, putting the parking app in the background.
System reaction to the changes in the context The app pauses its active operations (e.g., map updates or GPS tracking) and conserves resources while in the background. When the user returns to the app, it resumes from where it was left off, ensuring the navigation or search process continues seamlessly without loss of data or context.

Eighth quality scenario

Scenario name Caching frequent parking spot searches.
Quality attributes involved in the scenario Performance, Usability, Connectivity
App status and context The user frequently searches for parking spots in the same area (e.g., near their workplace or home) while using the app over a period of time.
Changes in the context (includes what the persona is doing) The user initiates a search for parking spots in an area they have searched for multiple times before, potentially during a period of poor internet connectivity.
System reaction to the changes in the context The app utilizes cached data from previous searches to quickly provide the user with parking spot information, even if the current internet connection is weak or temporarily unavailable. The app then updates the information in the background when connectivity improves, ensuring the user receives both fast and accurate results.