Project plan - TanelOrumaa/Estonian-ID-card-mobile-authenticator-POC GitHub Wiki

Roles in project

Tanel: Team leader, Developer, Tester

Henrik: Android UI/UX, Requirements Engineer, Documentation

Kevin: Scrum master, Developer, Tester

Lemmo: Product owner, Developer, Tester

Communication means

Main information exchange is conducted through in-person meetings. Specifying smaller details is done over email.

Work process

How and using what materials is the customer going to understand what you are going to build?

The customer has access to the project during the entire process via the open source GitHub repository and we will discuss with the customer what we are building during the in-person meetings as well. During the meetings the customer will see the necessary documentation related to the project (such as UI sketches) and the current state of the working application.

How do you determine that the customer is accepting your solution proposal?

The customer is asked to give feedback when new features are implemented.

How are you going to internally build the accepted solution (who assigns the tasks, who is going to implement it, will the tests be written, will code be reviewed, who is going to verify, who is doing the validation, etc.)

Team leader will assign tasks. All developers will implement the tasks assigned to them. Tests will be written (unit tests and likely system tests). Code can be reviewed by all teams members (two accepts needed per commit to approve it). All members will be responsible for verification Client will do the validation at the end of the sprint (acceptance testing).

When do you consider something ready to be delivered to the customer for review?

After the new features pass the manual and automated testing.

How do you gather feedback from the customer and/or end users?

In face-to-face meetings and via email.

What is the definition of DONE on a task

Tasks can be considered done after a code review is completed (accepted by at least 2 developers) and verification passes.

Scope

Tasks for Sprint 2:

  1. MOB-7 Create an UML diagram for the authentication app
  2. MOB-9 Set up a base Android project (empty activity)
  3. MOB-11 Create UI paper prototype
  4. MOB-12 Create a view for asking PIN 1 from the user
  5. MOB-13 Create a view for asking PIN 2 from the user
  6. MOB-14 Create a view to display user NIN (national identity number) and name
  7. MOB-15 Investigate whether there exists an NFC library that suits the project
  8. MOB-16 Implement the NFC library
  9. MOB-18 Implement asking information from the ID card
  10. MOB-21 Generate authentication JWT token with the information taken from the ID card
  11. MOB-24 Implement notifications to the user
  12. MOB-26 Document error codes
  13. MOB-33 Set up CI/CD for the project
  14. MOB-35 Create a view to ask the user for CAN (Card Access Number) and store it in LocalStorage
  15. MOB-36 Create transitions between views

There is one task out of 15 with a time estimate over 16 hours (MOB-15) (<10%). No task exceeds 40 hours.

Tasks for Sprint 3:

  1. MOB-21 Generate authentication JWT token with the information taken from the ID card (continued from Sprint 2)
  2. MOB-13 Create a view for asking PIN 2 from the user (moved from Sprint 2, as the functionality wasn't needed yet)
  3. MOB-24 Implement notifications to the user (moved to Sprint 3 from Sprint 2, as it wasn't completed yet)
  4. MOB-37 Implement the option to switch between Estonian and English
  5. MOB-38 Implement a settings menu for the application
  6. MOB-39 Implement CAN (Card Authentication Number) saving to the phone
  7. MOB-40 Reorganizing the entire navigation of the app
  8. MOB-41 Creating a base for the test app that can launch authentication app and recieve results
  9. MOB-22 Generate signature JWT token with the information taken from the ID card
  10. MOB-42 Create test website
  11. MOB-23 Emit the generated JWT token
  12. MOB-25 Return error code(s) when an unexpected behaviour happens
  13. MOB-51 Create two system tests for core use cases
  14. MOB-48 Retrieve authentication certificate from the ID card
  15. MOB-50 Retrieve signature certificate from the ID card

Tasks for Sprint 4:

  1. MOB-45 User can give a signature on the test website
  2. MOB-27 Implement closing the app automatically after a successful authentication/signature
  3. MOB-8 Validate and finalize the documentation
  4. MOB-28 Implement biometric authentication
  5. MOB-29 Add Google TalkBack option to the project
  6. MOB-43 Website: Validate the received JWT
  7. MOB-44 Test app: Validate the received JWT
  8. MOB-52 Configure backend for validating JWT

Although we know the scope of the project, some technical details are still unknown, so more tasks can be added to Sprint 4 throughout Sprint 3.