h3. Assumptions
Design assumes that user has minimum provisioned APB with example sync app. Rest of the features will be disabled gradually. I quickly and really really roughly designed Ionic app that is using latest version of React and Web Components.
h3. Showcase App main topic proposition:
We could build on the same concept of tasks, but now allow users to assign them to other users and complete them. This will allow us to showcase Role Based Auth with very minimal effort and development time. We can still show security settings the same way as we done inside showcase. Alternatively we can silently check for some security measures at runtime, but this is less visual. I have tried and security layout we have in current showcase app and it can be reused making this an simple task.
For push we can deliver new push notifications when tasks are created or assigned to user. Users could see all tasks or tasks that were assigned to them (this will showcase subscriptions filtering). This will be complete vision of the app with very small and well defined scope, but also nice flexibility and design that can grow along with our future requirements in future.
h4. Home view:
Home view could have simple introduction and we can dynamically list features we provide (gracefully hiding them) depending on the mobile-config.json we can show things.
!Flow.gif!
Home screen will have side bar that can provide access to menu:
h5. Options:
Manage Tasks - Current view of sync that shows user/all tasks
Assign Tasks - Visible for admin to assign task for users (the same UI but with button to assign task) Enabled when keycloak config is provided. (descoped from the initial work)
User profile - Rendering of profile data we get from keycloak Enabled when security is enabled
Security Settings Page with security options. Enabled when security is enabled.
Push notifications
Push notifications can be used as supplement for subscriptions when application is closed. In future we can even look for unifying this interface by detecting that user is not connected and sending push notification instead - but this is an different topic.
h3. Technical parts
We need to move push and security integration into the new app: Work should be done in current showcase app for sync: https://github.com/aerogear/voyager-ionic-example/
With some portions of code moving from https://github.com/aerogear/cordova-showcase-template
h4. Integration using WebComponents.
To provide reusability and separation between functionalities we can use Web Components. This concept will allow users to reuse implementations that we provide in their apps and clearly see value of each service functionality. For example login page component and user profile can be used in any app as keycloak will provide mostly generic data we can render automatically. It will also wrap implementation details of the app giving developers ability to not only try but also reuse some of the code from the app.
Important! Introduction of WebComponents doesn't mean additional amount of work as we already have them available from ionic. I will be just how additional features and views can be implemented. We get that for free and there is no additional amount of work needed to do it. We can think about it as design pattern used in Ionic apps.
h4. Provisioning services
We should provision all services to avoid duplication of work. |
|