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:
- MOB-7 Create an UML diagram for the authentication app
- MOB-9 Set up a base Android project (empty activity)
- MOB-11 Create UI paper prototype
- MOB-12 Create a view for asking PIN 1 from the user
- MOB-13 Create a view for asking PIN 2 from the user
- MOB-14 Create a view to display user NIN (national identity number) and name
- MOB-15 Investigate whether there exists an NFC library that suits the project
- MOB-16 Implement the NFC library
- MOB-18 Implement asking information from the ID card
- MOB-21 Generate authentication JWT token with the information taken from the ID card
- MOB-24 Implement notifications to the user
- MOB-26 Document error codes
- MOB-33 Set up CI/CD for the project
- MOB-35 Create a view to ask the user for CAN (Card Access Number) and store it in LocalStorage
- 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:
- MOB-21 Generate authentication JWT token with the information taken from the ID card (continued from Sprint 2)
- MOB-13 Create a view for asking PIN 2 from the user (moved from Sprint 2, as the functionality wasn't needed yet)
- MOB-24 Implement notifications to the user (moved to Sprint 3 from Sprint 2, as it wasn't completed yet)
- MOB-37 Implement the option to switch between Estonian and English
- MOB-38 Implement a settings menu for the application
- MOB-39 Implement CAN (Card Authentication Number) saving to the phone
- MOB-40 Reorganizing the entire navigation of the app
- MOB-41 Creating a base for the test app that can launch authentication app and recieve results
- MOB-22 Generate signature JWT token with the information taken from the ID card
- MOB-42 Create test website
- MOB-23 Emit the generated JWT token
- MOB-25 Return error code(s) when an unexpected behaviour happens
- MOB-51 Create two system tests for core use cases
- MOB-48 Retrieve authentication certificate from the ID card
- MOB-50 Retrieve signature certificate from the ID card
Tasks for Sprint 4:
- MOB-45 User can give a signature on the test website
- MOB-27 Implement closing the app automatically after a successful authentication/signature
- MOB-8 Validate and finalize the documentation
- MOB-28 Implement biometric authentication
- MOB-29 Add Google TalkBack option to the project
- MOB-43 Website: Validate the received JWT
- MOB-44 Test app: Validate the received JWT
- 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.