This repository was archived by the owner on Jul 30, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
This repository was archived by the owner on Jul 30, 2018. It is now read-only.
High level thoughts [WIP] #104
Copy link
Copy link
Open
Milestone
Description
OK, so just some high level thoughts on what I would initially have expected to be provided in app.
Assumptions
- there is no ordering to these, as in, there is no priority to the features, nor is there any implied importance of each feature
- all features of
appshould reside outside of this repo.appis responsible for stitching these features together. A good acid test for this, is that a developer should be able to writeappthemselves by piecing together functionality from other Dojo 2 repos. appshould be opinionated and help with configuration of common application archetypes, but not contain functionality that we deem to be generic.
Features
[Server interaction]
As an [application developer]
- i want a way to fetch content from a server, and know when the fetch has been completed
- i want a way to accept data that has been pushed from a server
- i want to know when sending data to an endpoint fails
- i want to be able to specify retry strategies
- i want a way to accept data (push and pull) that might be chunked over a transport
- i want a way to store data that has been fetched from a server
- i want to configure serialisation/deserialisation of data that is sent/received from a server
- i want to configure multiple serialisation/deserialisation functions in my app
- i want a way to configure server endpoints and know when these endpoints become un-responsive
- i want to be able to schedule sending data to an endpoint on a periodic basis
[Routing]
As an [application developer]
- i want to be able to configure routes within my application
- i want to be able to fetch subsets of stored data upon route navigation
[Error handling and debugging]
As an [application developer]
- i want to know when runtime errors occur
- i want to be able to send runtime errors to a server endpoint (network permitting)
- i want to be able to run my app in 'dev' mode so that I can debug my code
[Monitoring]
As an [application developer]
- i want to be able to specify monitoring endpoints
- i want to be able to configure monitoring information that is specific to pages/routes/actions and have these messages sent to my monitoring endpoints
- i want to be able to specify multiple monitoring endpoints for my application (user journey analytics, uptime, etc..)
- i want to optionally be able to compress and/or encode monitoring messages
[Performance]
As an [application developer]
- i want to be able to record initial/page specific load times
- i want to be able to send performance statistics to a monitoring endpoint
- i want the initial page load of my application to be as quick as possible
[Offline]
As an [application developer]
- i want my application to load when offline
- i want the user to be made aware that they are offline and that certain features will/won't work
- i want to be able to store user specific data such as
user's nameandavatar
[Authorisation and Authentication]
As an [application developer]
- i want to be able to configure oauth authorisation
- i want to be able to offer multiple 'sign-up' options for my application (including but not limited to facebook, google, github, twitter)..
- i want to be able to pass data about the logged-in user to all server side requests.
[Alternative environments]
As an [application developer]
- i want to be able to deploy my application into containers such as
electron - i want to be able to run 'auto-update' functionality that will notify the user when a new version of my application is available, and if requested by the user, download and install the latest version.
[Misc - higher level 'default behaviours' - more common usage examples then generic functionality]
As an [application developer]
- i want to offer avatar support where a logged-in user's public avatar is fetched from a 3rd party service such as gravatar, and displayed in the application.
- i want to offer 'forgot your password' functionality, with the ability to capture user credentials and send a 'reset password' request to a server
- i want to allow users to be able to change their own password
Metadata
Metadata
Assignees
Labels
No labels