diff --git a/User-stories.md b/User-stories.md new file mode 100644 index 0000000..6aa0d95 --- /dev/null +++ b/User-stories.md @@ -0,0 +1,51 @@ +**Functional Requirements** +_Feature - authentication app user experience_ +### USF1 +As a user, I want the authentication app to notify me if my Estonian ID card is not near the smartphone NFC chip when trying to authenticate, so that I know when I am holding it in the wrong place. +### USF2 +As a user, I want the authentication app to require me to enter a valid PIN code to authenticate or give a signature, so that people who don’t know the PIN codes can’t steal my identity. +### USF3 +As a user, I want the authentication app to give me the option to use biometric authentication instead of entering PIN 1, because it’s more convenient and faster. +### USF4 +As a user, I want the authentication app to automatically close after the authentication process, so that I won't have to close the app myself. + +_Feature - interacting with a website_ +###USF5 +As a user, I want to use the authentication app for authenticating myself on a website in a mobile browser with an Estonian ID card, so that I can log into the test website with my smartphone. +###USF6 +As a user, I want to use the authentication app to give a signature while on a website in a mobile browser with an Estonian ID card, so that I can verify that the functionality works on the test website. +Feature - interacting with other mobile apps +###USF7 +As a user, I want to use the authentication app for authenticating myself in a mobile app with an Estonian ID card, so that I can authenticate in the test mobile app with my smartphone. +###USF8 +As a user, I want to use the authentication app to give a signature in a mobile app with an Estonian ID card, so that I can verify that the functionality works on the test app. +Feature - for developers +###USF9 +As a developer, I want the mobile app to return an error code when problems occur, so that I can handle various situations in my own app or on my website. +###USF10 +As a developer, I want the mobile app project to interact with the test website and the test app, so that I can check whether the authentication system works as promised. + +**Non-functional Requirements** + +###USN1 +As a client, I want the mobile app to be developed for Android phones, because I have more experience with Android development. +###USN2 +As a client, I want the mobile app to have a minimal Android API level 26, because supporting older Android versions is not important for this project. +###USN3 +As a client, I want the mobile app to be web-eID compatible, because the application is going to be used with Estonian ID cards. +###USN4 +As a client, I want the mobile app to use NFC technology, so that I can authenticate myself with my NFC-enabled Estonian ID-card on my NFC-enabled Android phone. +###USN5 +As a developer, I want the app to have detailed documentation so that I can use it to implement these features in my own applications. +###USN6 +As a developer, I want the source code of the mobile application to have comments, so that I can understand the code. +###USN7 +As a user, I want the mobile application to not store data about my ID card after the authentication process, unless asked, so that I don’t have to worry about my data safety. +###USN8 +As a vision impaired user, I want to authenticate myself without being able to see the screen, so that I can also use the app. +###USN9 +As a user, I want the authentication app to open within 10 seconds 99% of the time, so that my experience is comfortable. +###USN10 +As a user, I want the time between inserting the PIN and the recipient receiving the JWT token to be less than 15 seconds 99% of the time, so that I don’t have to wait long. +###USN11 +As a user, I want the application to support Estonian and English languages, so I can use it in the language I’m more comfortable with.