Skip to content

Deliverable1

JBaronOsorio edited this page Aug 28, 2024 · 30 revisions

1. Introduction

1.1 Purpose

parkAI is a project created to ease parking lot management and usage. This allows administrators to have an easier time managing their car park as some tasks will be automatized by our application, and users will benefit from this automation as they only enter or exit the parking while our app counts their time, charges the money to their payment method and shows them the empty spaces

1.2 Scope

Software products

  1. Web Page: This web page will connects all the processes of the application, such as user/vehicles management, empty spaces display and payment

    • 1.1. User / vehicles management: The user creation will be done through a login, and they shall be able to link a vehicle by its license plate. They can add, modify or eliminate a vehicle if it no longer belongs to them. Cars should only have 1 user linked.
    • 1.2. Empty spaces display: Using the information that cameras with AI vision provide about the empty and occupied spaces, this product will be able to display them in the web page to show the users where they can park
    • 1.3. Payment: Users will be able to pay their fee by submitting payment methods. The app will automatically count their time in the car parking and will charge the fee to their payment method
  2. License plate detector: The license plates will be read by implementing AI vision in cameras that will be ubicated in the entries and exits of the parking lot

  3. Empty space detector: Empty spaces should be identified by an algorithm that will take the information from cameras located in different areas from the parking lot

Software Application

Every software product is only a part of the entire project. By connecting them the software will be able to manage parking lots, this will be done by registering users and their vehicles. First the user will enter some information, then it can register at least one valid payment method, and finally he can link a vehicle; this information can be later modified. By using cameras the app should identify the license plate and send it to the webpage, from there the owner of the vehicle (user) shall be identified; then, when the vehicle exits the parking lot and the fee will be charged to the user´s payment method. Should also be able to identify the empty spaces with the cameras and with the algorithm that will be used for this task

Benefits

  • Helps parking lot users to have an easier experience
  • No people needed for this system to operate
  • The project will hold per every car parked using the app a little percentage of the paid fee
  • No tags / identifiers needed for the car, only the license plate
  • With the empty spaces identifier the user knows if there are any spaces available

Goal

  • Build a secure, fast and reliable app that can be used in big scale

1.3. Product overview

1.3.1. Product perspective

ParkAI is a web application designed to assist university students in finding available parking spaces on campus. The system leverages artificial vision technology to detect empty parking spots in real-time and provides this information through a user-friendly web interface.

Developed using the Django framework, the application incorporates TensorFlow for implementing AI models that recognize empty parking spaces. This integration addresses the challenge of identifying available parking spots efficiently.

1.3.2. Product functions

The app will:

  • Register users and create a login for every user registered
  • Let registered users link one or various cars, they can modify, add or eliminate this info later
  • Let registered users submit payment methods
  • Identify the car by its license plate, send the info to the webpage and link the vehicle to the user to make the payment
  • Count the time the car stayed in the parking, and from this calculate the fee
  • Identify empty spaces and display them in the webpage

1.3.3. User characteristics

The users could be:

  • Parking lot owners as admins of the app. because they need to manage their businesses, and our app can help them with that
  • Car owners as users. When they enter a parking lot that uses our app they become users of it

1.3.4. Limitations

  • a) Regulatory policies: parkAI will comply with colombian laws on personal information (Law 1581 de 2012) to ensure legality
  • b) Hardware limitations: parkAI should run smoothly on relatively modern devices. If the user uses the app on older devices / software versions, the app may not work as expected
  • c) Interfaces to other applications: parkAI will use some APIs to communicate with external AI's, if anything goes wrong with this external AI's the program might experience some troubles.
  • d) Parallel operation: As the app could be used by a lot of people at the same time, the server could experience troubles managing all these requests, affecting the service of parkAI
  • e) Audit functions: parkAI will try to save all transactions to have a registry of them for legal reasons, but this can be affected by the database capacity
  • f) Control functions: Error messages and warnings will be implemented in monetary and database transactions to prevent troubles with them
  • g) Signal handshake protocols: HTTP protocol shall be used to ensure the quality of the webpage. The protocol for communicating with the cameras will be decided later.
  • h) Quality requirements: ParkAI will try to achieve 100% reliability. Because we are using money in our transactions the search for high quality, responsive and reliable software will never stop, but we need to understand that we are no experts and might fail sometimes.
  • i) Criticality of the application: parkAI must be in a very stable version for it to be released, managing money and transactions needs a tested, high quality software
  • j) Safety and security considerations: Security measures for transactions will be implemented, we need to assure that the transactions will happen correctly and only when they need to happen. We don't want unexpected charge, as well as charges not happening
  • k) Physical/mental considerations: We want an easy use app, so we will try to make as accessible as possible for everyone. We also want a trusted application, so people can feel tranquil knowing their payment methods are in good hands

1.4. Definitions

APIs:

API is the acronym for Application Programming Interface. It is a contract that defines how can two apps communicate with each other

HTTP:

Hypertext Transfer Protocol (HTTP) is a protocol designed to transfer information on the World Wide Web

2. References

Sample input/output formats

Input

  • Parking Space Request: Users will submit a request through the mobile or web application to check for available parking spaces. This input will include parameters such as the user's location on campus and preferred parking lot.

  • Reservation Request: Users may input a request to reserve a parking space. This will require information such as the desired time, duration of parking, and the specific lot where they wish to park.

  • Vehicle Detection Input: Camera devices installed in the parking lots will continuously capture images to detect the presence of vehicles in parking spaces. This input will be processed by the AI to determine whether a space is occupied or available.

  • User Authentication Input: When users log into the system, they will provide credentials such as username and password. This information will be validated against the stored data in the system’s database.

  • Admin Configuration Input: Administrators will input data to configure and manage the parking system. This may include setting parking fees, managing user roles, and configuring AI detection thresholds.

Output

  • Parking Availability Output: The system will provide real-time data on available parking spaces. This output will be displayed on a map interface within the mobile or web application, highlighting open and occupied spots.

  • Reservation Confirmation Output: After a user successfully reserves a parking space, the system will generate a confirmation message. This output may include details such as the parking space number, reservation time, and a QR code for easy check-in.

  • Vehicle Detection Output: The AI system will output the status of each parking space (occupied or available) based on the input from the camera devices. This information will be updated in real-time and reflected on the user’s interface.

  • User Notification Output: Upon certain actions, such as a successful login or reservation, the system will output notifications to the user. For instance, messages like “You have successfully reserved your parking space” will be displayed.

  • Admin Reports Output: The system will generate reports for administrators based on parking space usage, user activity, and other metrics. These outputs can be in the form of charts, graphs, or tabular data, and will be used to optimize parking management.

Background Information

The parking space monitoring system will be developed using Django as the primary backend framework, with MySQL serving as the database management system. The project will integrate AI APIs to enable real-time detection of available parking spaces through camera devices, enhancing the system’s accuracy and efficiency. For the frontend, HTML, CSS, and JavaScript will be utilized to create a user-friendly interface accessible via both mobile and web applications. The project codebase will be maintained on GitHub, ensuring version control and collaboration among team members.

This project will be initially deployed as a Minimum Viable Product (MVP), meaning that not all functionalities and requirements outlined in the SRS will necessarily be implemented in the first iteration. The MVP will focus on core features such as real-time parking space detection, user reservations, and basic reporting capabilities.

Project requirements will be specified using the Mazo and Jaramillo template, with prioritization guided by the MoSCoW technique. The abbreviations for the requirements categories are as follows:

  • FR: Functional Requirements
  • PR: Performance Requirements
  • UR: Usability Requirements
  • DR: Database Requirements
  • CR: Design Constraints

Problems to Solve

The parking space monitoring system addresses several critical issues faced by the university community related to parking management.

  1. Difficulty in Finding Available Parking Spaces: One of the most significant problems on campus is the time-consuming and often frustrating process of finding an available parking space. Students, faculty, and visitors often spend a considerable amount of time driving around parking lots in search of open spaces, leading to increased stress and wasted time. The system solves this problem by providing real-time information on available parking spots through a user-friendly mobile and web application. Users can check the availability of spaces in different lots before arriving, significantly reducing the time spent searching for parking.

  2. Traffic Congestion within Campus Parking Lots: The search for parking contributes to unnecessary traffic congestion within campus parking lots, particularly during peak hours. This congestion not only delays drivers but also poses safety risks, especially for pedestrians. By enabling users to quickly locate and reserve parking spaces, the system helps to alleviate traffic congestion, promoting smoother traffic flow and a safer campus environment.

  3. Inefficient Use of Parking Resources: Without a system to monitor and manage parking space usage, some areas of the campus may remain underutilized, while others are overcrowded. This imbalance leads to inefficient use of available parking resources. The monitoring system will provide administrators with data-driven insights into parking space utilization, allowing them to optimize the allocation of spaces, adjust parking policies, and improve overall parking management strategies.

  4. Environmental Impact of Vehicle Emissions: The extended time spent driving around in search of parking not only frustrates users but also contributes to unnecessary vehicle emissions. This environmental impact is a growing concern, particularly in efforts to promote sustainability on campus. By reducing the time needed to find a parking spot, the system helps to lower vehicle emissions, supporting the university’s environmental sustainability goals.

  5. Lack of Real-time Data for Decision-making: Administrators currently lack real-time data on parking occupancy and trends, making it challenging to make informed decisions about parking management, future expansions, or policy changes. The system provides continuous monitoring and data collection, offering administrators up-to-date information on parking lot usage. This data can be used to make evidence-based decisions, improving the efficiency and effectiveness of parking management.

  6. Inconvenience in Reserving Parking Spaces: For special events or daily use, users may need to reserve parking spaces in advance, but the current manual or informal processes can be unreliable and inconvenient. The system introduces a streamlined reservation process that allows users to reserve parking spaces through the app, with confirmations and reminders sent directly to their devices. This feature adds convenience and ensures that parking spaces are available when needed.

  7. Inadequate Reporting and Analytics Tools for Administrators: Administrators often struggle with the lack of comprehensive tools to analyze parking data and generate reports that can guide policy decisions. The system will include advanced reporting and analytics tools that provide detailed insights into parking patterns, user behavior, and revenue generation. These tools will empower administrators to make data-driven decisions that enhance the overall efficiency of campus parking management.

  8. User Frustration and Poor Parking Experience: The cumulative effect of the issues mentioned above leads to a poor parking experience for users, causing frustration and dissatisfaction. By addressing these problems, the system aims to enhance the overall parking experience on campus, making it more efficient, predictable, and user-friendly. This improvement in user experience is expected to increase satisfaction among students, faculty, and visitors.

Special Packaging Instructions for the Code and Media

To ensure the security, integrity, and proper deployment of the parking space monitoring system developed with Python, specific packaging instructions must be followed for the code and media. These instructions are essential for meeting security standards, facilitating export, and ensuring smooth initial loading and operation of the system.

Security Requirements

  • Code Encryption: The Python codebase will be packaged with encryption to protect against unauthorized access and tampering. Sensitive data, such as user credentials and API keys, will be managed using environment variables and secure storage solutions.

  • Access Control: The code repository on GitHub will have restricted access, granted only to authorized personnel. Multi-factor authentication (MFA) will be enabled for all contributors to enhance security.

  • Security Audits: Regular security audits and code reviews will be conducted on the Python code to identify and address vulnerabilities before deployment.

Export Requirements

  • Localization: If the system is to be exported to other institutions or regions, the packaging must include documentation and configuration files that facilitate localization and adaptation of the Python code to meet specific legal and operational requirements of the target area.

  • Dependencies Compliance: All third-party Python libraries and dependencies included in the system must comply with export regulations and licensing agreements. Dependency management will be handled using a requirements.txt file to ensure compatibility and compliance.

Initial Loading Instructions

  • Installation Scripts: The initial loading package will include detailed installation scripts, written in Python, to guide administrators through the setup process. These scripts will automate the installation of Python packages and dependencies, as well as configuration of the Django environment.

  • Database Setup: Pre-configured database schemas and initial data sets will be included. Python migration scripts and setup instructions will be provided to ensure proper database initialization using Django’s ORM.

  • API Integration: Instructions for integrating the AI APIs into the Python-based system will be included, covering configuration, authentication, and usage of the APIs within the Django framework.

  • Frontend Configuration: The package will also contain setup instructions for the frontend components (HTML, CSS, JavaScript), along with integration points for the Python backend.

Backup and Recovery Procedures

  • Automated Backups: The packaging will include Python scripts and documentation for setting up automated backups of the system’s database and configurations. These backups will be securely stored to ensure data integrity and availability.

  • Recovery Procedures: Detailed recovery procedures will be provided, guiding administrators in restoring the system from backups in case of data loss or corruption. This will include Python-based scripts for data restoration and system recovery.

3. Specific Requirements

3.1. External Interfaces

Inputs

Name of Item: Parking Space Request
Description of Purpose: To request information on available parking spaces in a specified area.
Source of Input: User input via mobile or web application.
Valid Range/Accuracy/Tolerance: The request must specify a valid campus location; accuracy should be within 10 meters.
Units of Measure: Location coordinates (latitude, longitude).
Timing: Real-time processing.
Relationships to Other Inputs/Outputs: This input drives the query to the backend system and influences the available parking spaces output.
Screen Formats/Organization: Map interface with selectable parking lots.
Window Formats/Organization: Single input field or dropdown for selecting location.
Data Formats: JSON format with location coordinates.
Command Formats: GET request to the API endpoint.
End Messages: Confirmation of request received or error message if location is invalid.

Name of Item: Reservation Request
Description of Purpose: To reserve a parking space for a specified time and duration.
Source of Input: User input via mobile or web application.
Valid Range/Accuracy/Tolerance: Must specify a valid parking space and reservation time; time accuracy to the nearest minute.
Units of Measure: Date and time (24-hour format).
Timing: Real-time processing with immediate confirmation.
Relationships to Other Inputs/Outputs: Affects reservation confirmation output and updates parking availability.
Screen Formats/Organization: Form with fields for time and parking space selection.
Window Formats/Organization: Reservation form with date and time picker.
Data Formats: JSON format with reservation details.
Command Formats: POST request to the API endpoint.
End Messages: Reservation confirmation or error message if space is unavailable.

Name of Item: Vehicle Detection Input
Description of Purpose: To detect vehicle presence in parking spaces using camera images.
Source of Input: Camera devices installed in parking lots.
Valid Range/Accuracy/Tolerance: Detection accuracy should be at least 95% for distinguishing between occupied and available spaces.
Units of Measure: None (binary detection - occupied/available).
Timing: Real-time processing with updates every few seconds.
Relationships to Other Inputs/Outputs: Updates parking space availability output.
Screen Formats/Organization: No direct user interface; used for backend processing.
Window Formats/Organization: N/A
Data Formats: Image files (JPG/PNG) processed by the AI system.
Command Formats: Image upload to the AI processing endpoint.
End Messages: Status update indicating space availability.

Name of Item: User Authentication Input
Description of Purpose: To authenticate users accessing the system.
Source of Input: User credentials via login form.
Valid Range/Accuracy/Tolerance: Passwords must meet security criteria; authentication accuracy should be 100%.
Units of Measure: None (credentials validation).
Timing: Login processing within 4 seconds.
Relationships to Other Inputs/Outputs: Influences access to user features and reservation functionalities.
Screen Formats/Organization: Login form with fields for username and password.
Window Formats/Organization: Separate login window.
Data Formats: JSON format with user credentials.
Command Formats: POST request to authentication endpoint.
End Messages: Success message for successful login or error message for invalid credentials.

Name of Item: Admin Configuration Input
Description of Purpose: To manage and configure parking system settings.
Source of Input: Admin interface for configuration.
Valid Range/Accuracy/Tolerance: Configuration options should be validated against system requirements.
Units of Measure: None (configuration settings).
Timing: Configuration changes reflected within 2 seconds.
Relationships to Other Inputs/Outputs: Affects overall system operation and reporting outputs.
Screen Formats/Organization: Admin dashboard with configuration options.
Window Formats/Organization: Configuration form with input fields for settings.
Data Formats: JSON format for configuration parameters.
Command Formats: POST request to configuration endpoint.
End Messages: Confirmation of configuration changes or error message if invalid settings.

Outputs

Name of Item: Parking Availability Output
Description of Purpose: To display real-time data on available parking spaces.
Destination of Output: User interface on mobile or web application.
Valid Range/Accuracy/Tolerance: Data should be updated in real-time with accuracy within 10 meters.
Units of Measure: Number of available spaces.
Timing: Real-time update within 5 seconds.
Relationships to Other Inputs/Outputs: Generated from parking space requests and vehicle detection inputs.
Screen Formats/Organization: Map interface highlighting available and occupied spaces.
Window Formats/Organization: Dynamic map with markers for parking spaces.
Data Formats: JSON format with availability details.
Command Formats: Response to GET request.
End Messages: Updates on space availability or error messages if unable to retrieve data.

Name of Item: Reservation Confirmation Output
Description of Purpose: To confirm a parking space reservation to the user.
Destination of Output: User interface on mobile or web application.
Valid Range/Accuracy/Tolerance: Confirmation should match the reservation details.
Units of Measure: None (text confirmation).
Timing: Confirmation provided within 5 seconds of reservation request.
Relationships to Other Inputs/Outputs: Based on reservation requests.
Screen Formats/Organization: Confirmation message displayed on the interface.
Window Formats/Organization: Popup or notification window.
Data Formats: JSON format with reservation details.
Command Formats: Response to POST request.
End Messages: “Reservation successful” or error message if reservation fails.

Name of Item: Vehicle Detection Output
Description of Purpose: To update the status of parking spaces as occupied or available.
Destination of Output: Backend database and user interface.
Valid Range/Accuracy/Tolerance: Detection accuracy of 95%.
Units of Measure: None (binary status).
Timing: Real-time update with processing every few seconds.
Relationships to Other Inputs/Outputs: Affects parking availability output.
Screen Formats/Organization: No direct user interface; used for backend processing.
Window Formats/Organization: N/A
Data Formats: Binary or JSON format indicating space status.
Command Formats: Response from AI processing endpoint.
End Messages: Status update indicating space occupancy.

Name of Item: User Notification Output
Description of Purpose: To notify users of system actions such as successful login or reservation.
Destination of Output: User interface on mobile or web application.
Valid Range/Accuracy/Tolerance: Notifications should be accurate and timely.
Units of Measure: None (textual notifications).
Timing: Notification displayed within 2 seconds of action completion.
Relationships to Other Inputs/Outputs: Generated based on user actions and system responses.
Screen Formats/Organization: Notification banner or popup.
Window Formats/Organization: Alert or message window.
Data Formats: Textual data in JSON format.
Command Formats: Response to system events.
End Messages: “Login successful” or “Reservation confirmed” messages.

Name of Item: Admin Reports Output
Description of Purpose: To provide administrators with reports on parking usage and system performance.
Destination of Output: Admin dashboard or report interface.
Valid Range/Accuracy/Tolerance: Reports should be accurate and reflect real-time data.
Units of Measure: Various (e.g., number of spaces, usage statistics).
Timing: Reports generated and updated within 10 seconds.
Relationships to Other Inputs/Outputs: Based on system data and user interactions.
Screen Formats/Organization: Dashboard with charts, graphs, or tables.
Window Formats/Organization: Separate report window or tab.
Data Formats: JSON format for report data; graphical formats (PNG, SVG) for charts.
Command Formats: Response to report request.
End Messages: “Report generated” or error message if report generation fails.

3.2. Functional requirements

FR01: The system shall detect available parking spaces in real-time with an accuracy of at least 95%.

FR02: The system shall provide real-time updates on available parking spaces to users through a mobile app within 2 seconds.

FR03: The system shall recognize vehicle presence in parking spaces using camera devices with at least 90% accuracy.

FR04: After the user makes a parking request, the system shall notify users of the nearest available parking space.

FR05: The system shall support a capacity of monitoring at least 50 parking spaces simultaneously.

FR06: The system shall be able to generate automated billing and payment processing for parking fees within 5 seconds after a user exits the parking lot.

FR07: The system shall be able to detect and differentiate between parked vehicles and other objects with an accuracy of at least 90%.

FR08: The system should provide alerts for unauthorized parking or violations within 10 seconds of detection.

FR09: The system should be able to integrate with the university's existing security system for seamless monitoring and response.

FR10: The system should store and process parking data securely, ensuring data integrity and user privacy.

FR11: The system should provide a visual map of the parking lot, highlighting available and occupied spaces in real-time.

FR12: The system should support multi-language interfaces, offering at least 3 languages (e.g., English, Spanish, French).

FR13: The system should be capable of operating 24/7 without interruption, with automatic failover mechanisms in place.

FR14: The system must be scalable to add additional parking lots or spaces with minimal configuration changes.

FR15: The system must provide administrators with the ability to manually override parking space assignments in case of emergencies.

FR16: The system must allow visitors to select their desired parking duration before arriving.

FR17: The system must notify users of their parking duration and send reminders 10 minutes before their parking time expires.

FR18: The system must track and display the average parking search time for users.

FR19: The system must generate reports on parking space usage trends daily, with the option to view weekly and monthly trends as well.

FR20: The system must offer predictive analytics, forecasting parking space availability based on historical data with at least 80% accuracy.

3.3. Usability Requirements

UR01: The system user interface should respond to user inputs within 5 seconds to ensure a smooth and efficient user experience.

UR02: The parking space availability map shall have an intuitive and visually clear design, allowing users to easily identify open spaces and their locations.

UR03: The mobile app interface must be user-friendly, with key functions (e.g., space reservation, notifications) easily accessible within 2 taps.

UR04: The system interface should be fully responsive and display well on both mobile devices and desktop computers.

UR05: The mobile and web application must be compatible with major operating systems and browsers, including Android, iOS, Chrome, Safari, and Edge.

3.4. Performance requirements

  • PF–01 The webpage shall respond to user POST requests in less than 2 seconds.
  • PF–02 The webpage must be available and operational 99.9% of time during university operating hours, from 6:00 am to 10:00 pm.
  • PF–03 The system must update the availability of parking spots every 30 seconds to ensure that users have access to the most current information.
  • PF–04 The system must be able to handle up to 200 concurrent users without a degradation in performance, ensuring that all users can access the app and its features smoothly even during peak times.
  • PF–05 The system must load the main dashboard and parking availability screen within 1 second for 95% of users to ensure a fast and efficient user experience.

3.5. Logical database requirements

  • The database must ensure that all data entered is accurate and consistent. This includes enforcing constraints such as primary keys, foreign keys, and unique constraints to maintain data integrity.
  • The database must implement robust security measures to protect sensitive user information, including encryption, and access controls.
  • The database must support regular backups and have a recovery plan in place to prevent data loss in case of system failures or other disasters.
  • The database must support data migration processes to allow for easy updates, scaling, or transitioning to new systems without data loss or significant downtime.
  • The database must ensure high availability, with minimal downtime, to provide continuous access to data.

3.6. Design constraints

The app must be compatible with the existing camera hardware installed in the parking areas, which may have specific resolution and frame rate limitations. Additionally, the AI algorithms must be optimized to run efficiently on the available processing power, whether on local devices or cloud servers, without causing significant delays or requiring excessive computational resources.

4. Video

For a detailed overview of the parking space monitoring system, you can watch the following video:

Parking Space Monitoring System Overview

Clone this wiki locally