Skip to content

Deliverable1

JBaronOsorio edited this page Aug 12, 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. 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.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.

Clone this wiki locally