Skip to content

leorsd/FEUP-ESOF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UPark Development Report

Welcome to the documentation pages of UPark!

This Software Development Report, tailored for LEIC-ES-2024-25, provides comprehensive details about UPark, from high-level vision to low-level implementation decisions. It’s organised by the following activities.

Contributions are expected to be made exclusively by the initial team, but we may open them to the community, after the course, in all areas and topics: requirements, technologies, development, experimentation, testing, etc.

Please contact us!

Thank you!


Business Modelling

Product Vision

Making student commutes stress-free with real-time parking insights at the University of Porto.

Features and Assumptions

High-Level Features

  • User authentication: Create an account linked to an email address and personal information.
  • Parking lot selection: Choose a parking lot from a list of all the university's parking lots.
  • Availability display: View the availability of the selected parking lot as a percentage.
  • Interactive Parking Lot Map: View an interactive map displaying available parking lots, allowing users to easily locate and select a parking spot based on real-time data
  • Security notifications via chat: A chat where you will receive messages from the parking lot security about any information regarding your car.
  • Sort by avaliability: Sort parking lots by availability.
  • Favorite parking lots: Add a specific parking lot to a favorites section.
  • Security Alerts: Parking security can send real-time messages to users regarding their vehicle, such as incidents, parking violations, or important updates.

Assumptions of dependencies

  • Internet Connectivity.
  • Firebase for database management and user authentication.
  • Google Maps API.

Elevator Pitch

🚗 UPark – Smarter Parking for a Smarter Campus 🏫

Finding parking on campus shouldn’t be a daily struggle. UPark is an intelligent parking management app designed for the University of Porto community, making campus parking hassle-free, efficient, and secure.

With real-time parking availability, instant vehicle notifications, and easy incident reporting, students can park faster and worry less. Security officers can monitor parking areas seamlessly and send alerts directly to vehicle owners, eliminating mass emails and improving response times.

No more guesswork, endless searching, or unnecessary stress—just smart, effortless parking at your fingertips.

🚀 UPark – because parking should be the easiest part of your day!

Requirements

User Stories

In this project, the requirements were documented as User Stories, to prioritize user's needs and goals rather than focusing on technical details. This approach allows the requirements to be shorter, easier to understand and easily adaptable to changes.

The User Stories used in this project are present in a Scrum Board, that also contains user interface mockups, acceptance tests and an estimate of the value and effort, for each one of the user stories.

The link to our GitHub Project that constains the Scrum Board can be found here.

Domain model

The UPark application serves two user types: University of Porto security officers and students. Security officers can notify students about events related to their cars, while students can only receive these notifications. Both have access to information about the university's parking lots and a city map of Porto, which displays their locations.

  • User - Stores personal information about users.
    • Security Officer - Inherits user information and includes a unique security ID.
    • Student - Inherits user information and stores student details along with their car plate.
  • Message - Represents a notification sent by a security officer to a student.
  • Parking Lot - Maintains real-time information on its occupancy rate.
  • Map - Displays the locations of the parking lots.

Architecture and Design

Logical architecture

The UPark system is structured into the following components:

  • UPark Interface: Manages user interactions, UI components, and state management for a seamless experience, including parking lot selection, availability display, and favorite parking lots.

  • Business Logic: Handles core system functionalities such as parking availability checks, sorting by availability, and integration with Google Maps.

  • UPark Database Schema: Defines the structure of the database, storing user profiles, parking details, favorite parking lots, and security chat messages.

  • Google Maps API: Provides geolocation and interactive map visualization.

  • Firestore: Manages real-time updates for parking availability, cloud storage, user authentication, security alerts, and data synchronization across devices.

Physical architecture

The Physical Architecture of UPark outlines how the system’s software components are deployed across different physical nodes, including mobile devices, cloud services, and external APIs.

Students’ Smartphones - UPark Application (Flutter): A mobile application that allows students to access UPark services, including selecting parking lots, viewing availability, and receiving security alerts.

Security Officers’ Smartphones - UPark Application (Flutter): A separate interface within the same UPark mobile application, enabling security officers to send messages and alerts to students about parking-related issues.

UPark Application Server

  • UPark UI: The main user interface for managing interactions between students, security officers, and the parking system.
  • Account Services: Handles user authentication and account management, ensuring secure access.
  • Availability and Parking Logic Services (Dart): Manages real-time parking availability updates and selection logic.
  • Security Chat Service (Dart): Facilitates real-time communication between security officers and students regarding parking-related notifications.

Google Cloud Services

  • Google Maps API: Provides map-based parking lot selection and navigation.
  • Firebase Authentication API: Ensures secure login and user authentication.
  • Firestore API: Manages real-time data storage, including user accounts, chat messages, and parking lot availability.

Vertical prototype

During Sprint 0, we successfully implemented the initial features we envisioned for our app, including fully functional register and login pages using Firebase Authentication and Firestore. We also developed a bottom navigation bar, enabling navigation between different pages. Additionally, we integrated the Google Maps API, ensuring its compatibility for various use cases in upcoming sprints.

Even though the Messages, Profile, Favorites, and Home pages are already visible in the bottom navigation bar, these pages are currently empty and do not yet include any functionality.

Here are some screenshots of our first prototype:

Project management

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published