Park My Ride

The goal of the project is to create a proof of concept system for a Smart City service that will communicate parking availability to our mobile app users. The scope of our project is to develop a system that will allow Park My Ride mobile app users to view and monitor current available parking in the parking lot adjacent to The Innovation Den in Coeur d'Alene, Idaho.
=Problem Definition=
==Background==
===Value Proposition===
Finding parking is always a concern in urban areas, especially at popular sites. As small towns grow, parking that was once easy to come by becomes more and more difficult to find, but people’s schedules don’t change. Team Double AA’s project, Park My Ride, will solve this parking issue at The Innovation Den in downtown Coeur d’Alene, Idaho.
It is difficult to find parking at The Innovation Den. So much so that many people won’t bother looking and will instead park blocks away in nearby neighborhoods that don’t have the parking restrictions of downtown proper. Park My Ride will provide a mobile interface for users to monitor available parking at The Innovation Den in real time so that they can navigate to available parking or avoid a full parking lot with confidence.
Park My Ride is a project that can continue to grow. Starting with the implementation of this project’s single building prototype system, Park My Ride could expand to the entire downtown Coeur d’Alene, or to even larger scopes were the project to be pursued after Team Double AA’s graduation.
Monetization potential of Park My Ride services are multi-fold. Park My Ride mobile use could be monetized first by mobile banner ads, and as a paid service in areas where paid parking is prevalent. As a mobile user, the ability to find the least expensive and/or closest available parking would be a desirable paid service. Monetization can also come from the businesses whose nearby parking is monitored by Park My Ride. There is value for a business owner in the ability for potential customers to know when parking is available near their business. Monetization in this manner could be scaled based on a business’s willingness to invest, such as by providing parking analytics to the business about the parking zones in their vicinity, or by providing additional features, such as a plugin that can be used by the business to display available parking directly on their website. These monetization features are outside the scope of Team Double AA’s Park My Ride project, however these are worthy considerations for assessing the project’s value due to future expandability.
===Project Summary===
For the Park My Ride project, we will be mounting cameras on the roof of the Innovation Den to monitor available parking. These cameras will periodically take photos of the parking lot adjacent to the Innovation Den. We will utilize photo analyzing software to determine where the available parking spaces are within the parking lot. This information will be sent to all Park My Ride mobile app users via push notifications. The mobile app will visually display the the available parking spaces within the parking lot, and how long it has been since this data was acquired.
===Goals===
- Use camera units mounted on the roof of The Den to take periodic photographs of the parking lot adjacent to The Innovation Den in downtown Coeur d'Alene, Idaho.
- Offload the analysis of these photographs to the cloud based Google Vision API service.
- Utilize the data provided by the Google Vision analysis to determine available parking spaces and locations within the parking lot.
- Push parking availability updates to the Park My Ride Mobile App.
- The Park My Ride mobile app will be available for Android and iOS, and will show users what parking spaces are available at The Den in real time.
==Deliverables==
===Camera Units===
The camera units will periodically take photos of their associated parking zones and send these photos to the server for analysis. The camera units will be housed in weatherproof boxes and charged via solar panels. In addition to taking photos with the camera contained in the boxes, we will be tracking the health of the box. We will be monitoring the current and voltage of both the solar panels and the battery. We will also be checking the temperature and humidity within the box. This information will be sent to the server where it can be used for both maintenance and to adjust the rate of photos being taken if necessary for preserving battery life.
===Server===
The server will be housed within the University of Idaho in the Innovation Den basement. It will receive the photos from the camera boxes as well as all the temperature and humidity inside the box, and health status of the solar panels and batteries. The health of the camera units will be analyzed on the server, and the rate of photos being taken will be adjusted accordingly to preserve the camera units' power. The server will interface with the Google Cloud Vision API for photo analysis, receiving back object localization data for each photo. This data will be further analyzed on the server to determine relative positions of available parking within each serviced parking zone. After available parking data is finalized, this information will be pushed to subscribed mobile app users for real time parking availability updates.
===Mobile App===
There will be a mobile app available on Android and IOS. A user will be able to see how many parking spots are available on each of the two streets adjacent to The Innovation Den (Lakeside Avenue and Fifth Street) and how long it has been since the last analyzed photo was taken so that the user knows the freshness of the data.
=Specifications and Requirements=
==User Interface Requirements==
Users should be able to view information about the parking availability at The Den by opening the Park My Ride mobile app. No menu navigation shall be required to access this parking data.
Parking availability information should be accessible through a mobile app. The Park My Ride server will push notifications when parking availability changes, and upon launching the mobile application, a visual will display showing the number and location of parking spaces within the parking lot adjacent to The Den.
While the Park My Ride mobile app is open, any notifications pushed from the server will automatically update this display.
==Camera Unit Requirements==
===Physical Requirements===
The camera units should be capable of performing in all weather conditions present throughout the year in downtown Coeur d’Alene. 
They should be heavy enough to prevent movement from wind forces.
They should be able to take photographs, and have sensors for detecting internal and external temperature.
===Camera Lens Requirements===
The camera lenses should be capable of capturing the entire parking zone on the camera’s side of The Den.
===Mounting Requirements===
The system for mounting the camera units should allow for adjusting angle/position of camera without having to completely remove and remount the camera unit.
This will be important for initial positioning when setting up the final system.
===Software Requirements===
The camera units shall be able to connect to the internet using The Den’s wifi.
The software installed on the camera units shall be responsible for taking periodic photographs of the camera unit’s associated parking zone, as directed by requests from the server. 
The software should also interface with the sensors on the camera unit for tracking external and internal device temperatures for reporting unit health information.
The software shall be able to send these photographs and current unit health information to the server for processing.
==Server Requirements==
===Camera Unit Interface Requirements===
The server shall make requests to each camera unit periodically based on analyzed health of the camera units. 
The server will accept photographs and health data from the camera units.
===Photo Analysis Requirements===
The server shall utilize the cloud service Google Vision API to analyze the photographs obtained from the camera units.
The data obtained from the Google Vision API will then be processed by software on the server to determine available parking spaces within the parking zones on Lakeside and 5th street adjacent to The Den.
===Mobile App Interface Requirements===
When parking spaces have been updated from analyzed photos, the availability will be pushed out to mobile Park My Ride applications utilizing the Google Firebase API.
==Mobile App Requirements==
===Functionality===
Subscribe to the Park My Ride Firebase project for receiving push notifications containing parking data updates.
When app is opened and when a notification is received, update parking availability visualization within the app.
===User Interface===
Visually display The Den and adjacent parking lot.
Identify currently available parking spots within the parking lot.
Display time since current parking availability was analyzed.
=System Design=
==High Level System Overview==
At a high level, the Park My Ride system is composed of camera units that provide photos and health information to the Park My Ride Server. The server sends photos to the Google Vision API for analysis, and then takes that analysis and transforms it into usable parking information which is sent to Park My Ride mobile app using Google Firebase.
==Camera Units==
Each camera unit is controlled by a Raspberry Pi with programming to capture and send photographs of the monitored parking area to the server for processing. In addition to these photographs, the camera units are capable sending information about their battery health as well as solar panel, temperature, and humidity data.
==Server Side API==
The Park My Ride server side API is the body of code that does the majority of the work of the service. Upon receiving a new photo from a camera unit, the server will, with the help of the Google Vision API, determine which parking spaces within the photo are occupied. After this photo processing step, the server will take the information of parking availability and send this information as a push notification to all Park My Ride mobile app users who can then view in real time current parking space avail ability.
 
==Park My Ride Mobile App==
The Park My Ride mobile app is the only user facing component of the Park My Ride service. With the Park My Ride mobile app, users will receive real time push notifications whenever parking availability has been updated. A user can then open the mobile app and view a visual display of the parking area that will indicate which spaces are empty.
=Team Members=
	Alex Parenti
Major: Computer Science
Hometown: Coeur d'Alene
Graduation Date: Spring 2019
Email: pare6831@vandals.uidaho.edu
	Amanda Ward 
Major: Computer Science
Hometown: Coeur d'Alene
Graduation Date: Spring 2019
Email: ward4006@vandals.uidaho.edu
=Additional Documentation=
Park My Ride Data Privacy Statement
Project Schedule
Presentations