/D2D-iOS-App

An iOS app that connects drivers to other drivers in the same area that allows communication between them.

Primary LanguageSwift

10 vulnerabilities

service-test status

service-test status

11 vulnerabilities

Vulnerabilities

D2D-iOS-App

Short Descritption

The mobile application connects one car driver to another car driver inside a network and allows communication of automated safety and manual, non-safety-related messages between them.

Motivation

Communication amongst car drivers has remained limited, anonymous and one-sided over the past 130 years. Research has found that, when sitting in cars, drivers see other motorists as machines rather than social actors. This results in aggressive and antisocial driving behavior (Baumeister & Leary, 1995; Ratan & Tsai, 2014)

Within the framework of a study, a car driver admitted that instead of honking the horn and getting angry, he would have shown more tolerance if it had been possible to nuance his protest (Sung, Chung, Kim, & You, 2019; Wang, Terken, Hu, & Rauterberg, 2020).

Our Goal:

In order to make the road safer and more sociable, we will make it our first goal to build a working prototype that allows drivers to communicate with each other on the road. Our vision is then to have a platform to develop solutions for supporting, informing and warning the drivers or pedestrians in the allday traffic and to give them more possibilities for social interaction between each other.

The Vision:

Compatibility with the 802.11p DSRC. Autonomous driving vehicles will require a V2X network in order to ensure the car’s safe operation. If we succeed in making the smartphone app’s communication channel compati- ble with the growing V2X network, car drivers who do not own an autonomous vehicle yet, can still become part of and profit from this kind of safety network.

Design Pattern

In order to prevent merge conflicts, prevent double work and prevent stepping on each others feet, we implemented the model–view–controller design pattern. Therefore, we created three main folders, that would follow this logic: Models, Views and Controllers.

All user interfaces are build in the storyboard files. Like building blocks, every storyboard file basically contains one view controller. All files are stored in the folder Views. This enables us to work on individual storyboards both independently and simultaneously.

Features

  • Welcome page and the option to Login or Sign Up:

Bildschirmfoto 2022-04-19 um 12 20 51

  • Login:

Bildschirmfoto 2022-04-19 um 12 21 00

  • Sign Up:

Bildschirmfoto 2022-04-19 um 12 21 05

  • Visual feedback in the sign up process if both passwords match:

Bildschirmfoto 2022-04-19 um 12 22 11

  • Visual feedback in the sign up process if only one passwords matches:

Bildschirmfoto 2022-04-19 um 12 22 06

  • Implementation of Google Maps, location tracking, geofencing and receiving warning messages:

Bildschirmfoto 2022-04-19 um 12 22 44

Bildschirmfoto 2022-04-19 um 12 28 04

Bildschirmfoto 2022-04-19 um 13 00 06

Bildschirmfoto 2022-04-19 um 13 00 23

  • Voice Assistance:

Bildschirmfoto 2022-04-19 um 12 23 06

Bildschirmfoto 2022-04-19 um 12 23 18

  • Chat messaging and multipeer connectivity:

Bildschirmfoto 2022-05-14 um 22 21 29

Bildschirmfoto 2022-05-14 um 22 21 37

Bildschirmfoto 2022-05-14 um 22 21 48

Bildschirmfoto 2022-05-14 um 22 21 55

Code Examples

  • Visual feedback if the password meets the requirements (changing background color of UITextField):

Bildschirmfoto 2021-11-22 um 13 56 04

  • Password strength check:

Bildschirmfoto 2021-11-22 um 14 05 54

  • Implementation of the Location Manager class that retrievs location information in addition to handling all events that get triggered by location changes:

Bildschirmfoto 2021-11-22 um 14 02 26

  • Passing variables from one ViewController to the next using this function:

Bildschirmfoto 2021-11-22 um 14 10 57

Setting up the development environment

  • Install Xcode
  • Execute pod install

Credits

Ahmed Eldably

  • Connecting to Firebase
  • Writing testing routines
  • Authorization and authentication
  • Cryptographically secure pseudorandom number generator
  • Firebase Security

David Korn

  • Setting up Firebase
  • Connecting to Firebase

Stefanie Keichel

  • Implementation of SignUp-Security (checking password strength, visual feedback, hashing password, encrypting messages, security certificate)
  • Implementation of Google Maps and ensuring maximum tracking accuracy
  • Implementation of sound feedback to the driver in case of upcoming traffic warnings
  • Implementation of all storyboards and setting up the infrastructure of those
  • Implementation of getting microphone access and the functionality of the voice assistance that transfers spoken text into the chat
  • Implementation of multipeer connectivity