Code Monkey home page Code Monkey logo

hub-ready-apps's People

Contributors

ajturner avatar dbouwman avatar jgravois avatar markhamshofner avatar tomwayson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hub-ready-apps's Issues

notes from DevSummit

  • add links in the beginning to other resources that explain what Hub is
  • add a list of the features Hub provides out of the box that would be a waste of time to replicate
  • explain why all the rules. its because our #1 motivation is a consistent, high-quality citizen experience
  • don't tiptoe around it. all the items in our checklist are required.

incorporate MyStreet doc

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"
}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.