/BigBrother

BigBrother an iOS application for an IoT surveilence system

Primary LanguageSwift

BigBrother

BigBrother was the final project for our FIT5140 unit. BigBrother is an iOS application for an IoT surveillence system with motion detection and facial recognition.

What I learned

  • programatically change views depending on different situtations
  • using user defaults to persist values and states like settings
  • using IBInspectables to expose different attributes of UI elements for setting design properties
  • using simple and chaining core animations for better user experience
  • making code more change friendly using extensions, subclassing, defining constants etc

Onboarding Screen:

The onboarding screen is only shown when the user first installs the app. The intro gives the user some details about the functionality of the app. Then it gives the option to scan the bar code that is attached on the box to register the device. Once the device is registered, the user will never see this screen again unless they reinstall the app. The device ID is stored using User Defaults to make it persistent. Picture of a sample barcode is given below.

Login Screen:

Once the device is registered, the user is taken to the login screen where they can log in using their credentials. if they does not have an account they can register for a new account. Used Email/Password authentication in Firebase for this feature

Home Screen:

Once the user has logged in, They are taken to the Home screen from where they have access to all the functionality of the app. Under recent visitor, it will list the last 5 faces detected by the system. When they click on view all, they can go though all the entires. Clicking on any entry will take them to the detail screen. The user can also use the bottom animated menu to access the live stream and also gives them the option to log out

Adding a new face:

If the face detected is unknown, the user will get the option to add that face to the collection

The user just have to enter a valid name to add the new face to the collection.

Once the face it added, the system would recognize the face the next time it detects that face. The facial recognition is done using Amazon Rekognition.