esri / hub-ready-apps Goto Github PK
View Code? Open in Web Editor NEWdocumentation for creating civic tech apps that scale
Home Page: https://esri.github.io/hub-ready-apps/2018/devsummit/
License: Apache License 2.0
documentation for creating civic tech apps that scale
Home Page: https://esri.github.io/hub-ready-apps/2018/devsummit/
License: Apache License 2.0
#1
motivation is a consistent, high-quality citizen experienceCurrently the shared theme shows the editor. It's probably more useful to demonstrate the outcome - a shared theme across a few user experiences and then link to the documentation on how to configure the theme.
Video: https://www.youtube.com/watch?v=Z12NgfRyrN4
Slides: http://proceedings.esri.com/library/userconf/devsummit18/papers/dev-int-096.pdf
Or we could deploy the slides (which are in this repo) as gh-pages
Summary of 2017 DevSummit presentation [Building Apps for Hub: Hub-Ready Apps](http://proceedings.esri.com/library/userconf/devsummit17/papers/dev_int_242.pdf):
> The Hub builds smart communities for close collaboration with Governments and Citizens that are driven by focused initiatives. Developers can discover, create, and share data-based applications that improve collaboration through analytics-based decision making. Hub-Ready Apps extend WebGIS so that solutions built by the community are deeply integrated with Hubs. These capabilities include shared themes, indicator awareness, data citation, shared state, and accessibility consideration. When an app is Hub-Ready it can be easily reused and shared across many municipalities by many developers.
The following are draft requirements for hub-ready apps:
1. Shared Themes
1. Data Citation
1. Indicator Awareness
1. Accessibility
1. Shared URL State
1. Connected Apps
1. Global Profile
#### Shared Themes
Ability to pull in and apply agreed upon theming into a child application (e.g. local-perspective) from a parent organization (e.g. Los Angeles).
Further information can be found in the following links.
- [discussion forum in the issues](https://github.com/ArcGIS/arcgis-theme), includes the currently agreed upon [spec](https://github.com/ArcGIS/arcgis-theme/issues/7)
- [within context of our team](https://github.com/ArcGIS/Hub/issues/47 )
#### Data Citation
Easily navigable bibliography within the app itself. Users are able to trackback to data sources.
- [Example search for dataset by Layer URL](https://opendata.arcgis.com/api/v2/datasets?include=sites&filter[url]=http://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Public_Service_WebMercator/MapServer/27)
#### Indicator Awareness
Apps should provide information on which data are required. This makes configuration easier and ensures that data --> application isn't a one-way one-time event, but rather that apps stay up to date with indicator information.
- [Hub suggestion](https://github.com/ArcGIS/Hub/issues/48)
- or [Follow Configurable App specification](http://doc.arcgis.com/en/arcgis-online/create-maps/configurable-templates.htm)
#### Accessibility
- Adherence to [WCAG](https://www.w3.org/WAI/intro/wcag.php)
- Localizable strings.
--------------------------------------------------------------------------
#### Shared URL State
Configurable App Spec notes [URL parameters](http://doc.arcgis.com/en/arcgis-online/create-maps/create-app-templates.htm#ESRI_SECTION1_E383AB1F754746D19C8BF0251D22B54C) but only specifies `webmap=`. Apps should have consistent view state across apps (consistent set of query parameters). These enable bookmarkable links that maintain state of app at the time of tracking the url (extent, contents, etc...) as well as cross-linking between applications. For example, [DC Zoning for an house](http://maps.dcoz.dc.gov/zr16/#l=19&x=-8575669.181649944&y=4707024.994399112&mms=18!26!21!24!22!19!4!8!1!2&dcb=0) should be able to link to the [DC Lead pipe status](https://geo.dcwater.com/Lead/) for that same house or any other app. It should also allow opening apps from external third-party sites
- View: `extent=` or `center=&zoom=` or other?
- Selected feature: `selected=<item_id>:<feature_id>` ?
- Webmap or App configuration: `id=` or `item=` or `item_id=`
#### Connected Apps
Apps can be tagged/indexed in a way that allows them to be easily previewed and viewed from other (similarly connected apps). This requirement combines well with Shared State to allow users to navigate fluidly between applications.
#### Global Profile
Users can login across applications to save favorites, interact with data, act as part of a group, track datasets, etc... A Global Profile allows consistency between apps and a more seamless/fully-featured user experience.
---------------------
#### Additional Information
- More repos to reference:
- https://github.com/ArcGIS/hub
- Please reach out to [email protected], should you have any questions.
This file describes the process a developer can follow to achieve a state of hub-readiness for their application. By matching the following hub ready requirements (described from a high-level [here](https://github.com/Esri/open-streets/blob/master/hub-ready.md)), an application will more seamlessly integrate with the hub.
#### Data Citation
- Create hyperlinks to page that is informing that data represented on the page.
- Dataset, then Feature Service, then Layer is the suggested hierarchy of fallbacks
- These hyperlinks should be automatically generated
#### Shared Themes
- Create Shared Theme
- Portal Path
- Shared Theme JSON
- Open Data Path
- Shared Theme CSS endpoint
- Shared Theme JSON
- Fetch Shared Theme JSON (at either Portal or Open Data endpoint) or Shared Theme CSS (at Open Data endpoint).
- Inject Shared Theme JSON/CSS into the application.
#### Indicator Awareness / Configurable App
- Create a configurable app
- Add item. Type: Web Mapping. Purpose: Configurable. API: Javascript. URL: [whatever your deployed url is]
- Share the configurable app.
- In the settings tab (past overview, and usage) of the app,
- Then create app using a template (see picture)
- Select MyStreet Application
- Select a properly configured web map
- Share with public
- Fix the extent
- Configure away
#### Accessibility
- https://www.w3.org/WAI/intro/wcag.php
- Adhere to - Web Content Accessibility Guidelines (WCAG) 2.0 principles
--------------------------------
#### High Level Steps to Reproduce MyStreet
1. [Create](http://doc.arcgis.com/en/arcgis-online/share-maps/add-items.htm) a Web Map and associated feature layers.
![image](https://cloud.githubusercontent.com/assets/14302394/22866720/03f9e2ac-f149-11e6-974a-6f5f8a350b01.png)
2. Create a Web App which points to the :id from the Web Map above.
The hash should look something like
{
"source": "TheApplication",
"folderId": null,
"values": {
"webmap": "f155264b2b0942daa2c30945b1023675",
"themeId": "283b7cf014394d7fab7b3fd5b4bd6aeb"
}
}
This link to https://github.com/Esri/arcgis-ember-portal-services in the readme gives me a 404.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.