Mobile Test Task

We really appreciate your time and effort spent on this exercise!

Here is what we would like you to do:

  1. Develop a simple mobile application in Flutter.
  2. Capture your thoughts and ideas on how to evolve the application going forward.

Application Requirements

  • The application should provide the ability for users to register in the system. It should be accomplished via a wizard consisting of 4 pages.
  • The wizard should have the following pages: "Landing", "Personal Data", "Make a Selfie", "Summary". image
  • When launching the application for the first time, a user should be navigated to the first page of the wizard.
  • A user should be able to go back to the previous page desirably by swiping from the left to right.
  • Basic validation should be incorporated in the Personal Data page (e.g. only adults are allowed to register, email follows a certain pattern, passpords match and follow basic security rules).
  • Residence is a required parameter, which represents a country from which a user claims to be. Populate it by pulling data off any public service such as https://restcountries.eu/.
  • The "Summary" page will show consolidate the data that was entered in the previous pages.
  • Look and feel of the application should be similar, not identical, to what it is illustrated on the figure above.
  • The application should be structured in a such a way that it could be easily extended to a mid-sized application. There will be several engineers working on it simultaneosly.
  • The application will evolve into a Mobile Wallet application that allows transfering funds between different cryptoledgers as well as working with bank accounts, credit / debit cards, making trades, placing orders to buy ETFs, etc.
  • Please pick a proper state management library and share your ideas if this decision needs to be revisited going forward.
  • Write a couple of tests (unit / widget / integration / etc) to demostrate the approach you would recommend to follow.
  • Preselecting a residence country using geolocation will be a plus.

If you realize that the implementation takes more time than reasonable, please describe all of your thoughts and intentions as described down below.

How to capture your thoughts / ideas

Please create NOTES.md file and write down all of your ideas / suggestions / thoughts.

How to publish the results

Please create a public GitHub repository and make all the changes in there. Once you have finished with the task, please send us a link to that repository. In particular, NOTES.md file may reside in it.