/iKnow-app

Adroid app that keeps track of important privacy and cuber security related events.

Primary LanguageKotlin

iKnow

Android proof of consept application that keeps track of important privacy and cyber security related events.

Notes for teachers

  • As discussed with Peter, there was no sense to use repository layer although it is added and can be found under data/database/repository folder
  • For best experience and testing purposes use API 30
  • Application has fullfilled all requirements >= 5 stars!!

Keywords

Sensors, Material design 3, custom theme, accessibility, broadcast receivers, Service, activity, Intents, Compose, Room, MVVM, clean code, resources, animation, good naming, easy to read code and folder structure, web service, ViewModel, LiveData, State, Coroutine, navigation, Jackson converter, Retrofit, Interceptor, APIs and Libraries, native notification, system service

Table of Contents

Deployment

  • App is compatible for API versions 30 and under
  • Enable fingerprint features in device settings
  • Google Safe Browsing Lookup API requires Google API key which can be created here
  • Create apikey.properties file in the root of the project
  • Inside the apikey.properties file add
SBL_API_KEY="YOUR_API_KEY" 

Features

  • Biometric fingerprint recognition
  • Detection of variety of different broadcast events e.g. Wi-Fi or airplane mode state changed
  • Sorting of the captured broadcast events by type
  • URL address safety check screen
  • Settings screen where user can delete all of the captured broadcast events

Known Bugs

  • User must enable fingerprint in order to use the app
  • Filtering events > Should be dropdown and dynamic
  • Delete all events > Show success message and close dialog box
  • Don't start searching for URL vulnerabilites when TextField is empty
  • Airplane mode event > App crashes on api 31, 32, 33
  • UI improvements > Not symmetric..
  • Reset URL check animation when the URL text is removed from the TextField
  • Warn user if there's no network connection on URL safety check screen

Theme and Usability

  • Custom Material 3 theme
  • Supports light and dark themes
  • Description for screen readers

Tech Stack

Language: Kotlin

Database: Local Room Database

Toolkit: Jetpack Compose

API: Google Safe Browsing Lookup

Version Control: Git & Github

Further Development

  • Frontend for counter of found URL vulnerables
  • Authentication via password
  • Give user a choice to select the way they want to authenticate with
  • Allow user to choose which broadcast events are captured
  • UI improvements
  • Instructions / how to use the app
  • And more...

Screenshots

Login screen

StartScreen

Authentication popup

StartScreen_authenticationDialog

Events screen

Events_All

Notification of a new detected event

Notification_MarkAsChecked

Settings screen

Settings

Delete events confimation popup

Settings_deleteBtnPressed

Safe URL address checked

URL_safe

Vulnerable URL address checked

URL_unSafe

Credits