Registration Client with flutter

Registration Client with flutter

What do we have to start with?

  1. GitHub repository

  2. clientmanager, keymanager, packetmanager and scanlibrary(opencv) modules written in java

Things to start with:

  1. Screen designs

    1. Login (stateless) - the ability to get machine details like name & keys, login form

    2. Settings -

      1. options to choose when to sync data from the server and upload packets to the server.

      2. which network to use - mobile data, wifi or none & data limit.

      3. place to store the packets.

    3. Home -

      1. Registration Tasks (completely depends on process spec and screen spec)

        1. New

        2. Update

        3. Lost

        4. Correction

      2. Manage Packets

        1. sync packet

        2. know the packet status

        3. upload (single / bulk) to the server

      3. Master Data (Only supervisor access)

        1. Display Machine & Center details

        2. Display ID schema & UI spec version & integrity of these JSON files.

          1. if the JSON files are corrupted, need the option to sync

        3. Display metadata of all the entities synced from the server.

          1. Last sync datetime

          2. Number of Entries

        4. CleanUp - option to initiate full sync without losing registration data.

    4. Dashboard (check if this could be rendered based on an HTML template?)

      1. Packet storage status ( disk used and free stats)

      2. Packet creation & sync-upload date-time limit stats

    5. Manage Jobs

      1. Option to alter schedule, trigger check the status of last trigger

  2. Required POC

    1. Flutter framework + MVP + with keymananger java module

      1. Need to document the way to integrate, so that other team members could start on other module integration.

    2. Flutter framework + MVP + DI (we used dagger with native android app v1.0.0)

      1. interface-based dependency injection

    3. Load configuration properties from DB and use it system-wide

    4. Creation of registration form (at runtime) as per the screen-spec.

Note: All the business logic, and DB operations will be part of java modules. and the instances must be injected either into the models/presenter.

Logic in models & presenter should do the:

  1. Filter data based on the logged-in operator and mode of operation(offline/online).

  2. Restrict the operator based on his/her access roles. We support only 2 roles (REGISTRSTION_SUPERVISOR, REGISTRSTION_OPERATOR)

 


We want to support android and browser-based registration clients.

We will follow MVP pattern: View <--> Presenter <- Model

We will have handler abstract classes (Model) Required services will be injected into handler Implementation. LoginHandler - abstract class 1. handle first time login - onboard user 2. handle login - resolve auth-factors (PWD / BIO / OTP) 3. resolve and set the allowed features based on the loggedin operator roles. 4. Give device details - name & public keys 5. Check the device initialization status All the session details to be stored in scopedModel Build scopedModel on operator login 1. userid 2. username 3. roles 4. machine 5. center sessionIdleTime to autologout
Add label