GithubHelp home page GithubHelp logo

esri / geodev-hackerlabs Goto Github PK

View Code? Open in Web Editor NEW
161.0 60.0 79.0 10.14 MB

A place to learn how to build geo apps with the ArcGIS Platform.

License: Apache License 2.0

HTML 83.07% JavaScript 0.67% CSS 2.36% Jupyter Notebook 13.89%
arcgis-platform arcgis-online javascript data design arcgis-js-api geodev

geodev-hackerlabs's Introduction

ArcGIS Geodev Hackerlabs

A place to learn how to build geo apps with the ArcGIS platform.

Welcome

This repository contains short labs that step you through the process of developing applications with ArcGIS. The process described here uses ArcGIS Online and ArcGIS for Developers accounts, tools and services, and does not require the installation of desktop software for most labs. A handful have been reworked as ArcGIS DevLabs.

The process involves three steps:

  1. Data - Prepare data for your apps with ArcGIS Online.
  2. Design - Style maps and layers for your apps with the ArcGIS Online Map and Scene Viewer.
  3. Develop - Use maps and layers in your apps with ArcGIS templates, builders and APIs.

Process

Getting Started

Here's how to get started:

  1. Sign up for a free ArcGIS Developer subscription - Your subscription allows you to download software, register apps, import data, create new services, store maps, perform spatial analysis and more. If you already have an ArcGIS Organization subscription (with at least publisher level permission) or access to ArcGIS Enterprise, that will work too.

Free public accounts and Organizational 'User' accounts are not sufficient to complete the Hackerlabs.

  1. Start the labs - You can complete the labs in order or just pick and choose the ones you want to do. It will be easiest to use the data provided (Portland open data), but you feel free to substitute with your own data and augment the steps where necessary. The labs marked with an * are the minimum labs you need to complete to build your own custom app from ground zero.

  2. Share your work - This is 100% optional, but as you are going through, feel free to share your work with others in this ArcGIS Online Group!

Resources

Here are the resources you will use for the labs.

NOTE: If you are brand new to ArcGIS, we recommend that you use your developer account to sign into developers.arcgis.com to familiarize yourself with the site and then sign into ArcGIS.com to learn how to create your first map.

Labs

The labs start from ground-zero and work through the Data - Design - Develop process. In this case we use Portland open data, but feel free to use your own data to work through and build your own custom solutions. You might find it helpful to follow along with the Hackerlab Slides.

NOTE: Labs marked with an * are the minimum required to build your own app from ground zero. The others are optional.

Let's get started!

Steps

1. Data

Creating and importing data interactively is a fast and effective way to prepare data for both prototype and production app development.

In these labs you will import, create and manage data using the ArcGIS Online and ArcGIS for Developers website and tools. You will also use the map viewer to perform data enrichment, the process of adding social demographic information to a dataset, and spatial analyses, the process of creating new data based on spatial criteria. You will also explore the feature service REST endpoints and use them in a simple web app to access and display spatial data.

ArcGIS Online and Developer Tools

Code

2. Design

Creating web maps with great cartography is one of the most important steps to building effective mapping applications. Styling maps interactively can also be huge time-saver in app development.

In these labs you will use ArcGIS Online and the map viewer to create and style web maps. You will create new maps, explore basemaps, search for layers, use smart mapping to change symbol styles, style popups, label data, show/hide fields, filter data, and more. You will also learn how to save web maps and featurelayers and use the JSON to achieve the same rich cartographic and popup experiences in your own custom apps.

ArcGIS Online Tools

Code

3. Develop

One of the easiest ways to build an ArcGIS map app is to start with a web map.

In these labs you will use the Configurable App Templates, the ArcGIS Web App Builder, and the APIs to build custom mapping apps. You will use the web maps with the Web AppBuilder to create an HTML5 responsive app or AppStudio to build and deploy a native app for iOS and Android. Or you can just build a custom app from the ground up with the ArcGIS JS API, Esri-Leaflet or the ArcGIS Runtime APIs.

Web Map Apps

JS API

The above labs all use the 4.x JS API. If you would rather learn about the 3.x JS API, check here.

ArcGIS API for Python

Esri-Leaflet

Web AppBuilder Developer Edition

Want to share your work?

  1. Login to ArcGIS Online.
  • Search for Geodev Hackerlabs Share > Search Groups.
  • Uncheck Only search in my account/organization.
  • Join the group.
  • Share your own items.

Want to help?

  1. Sign up for a GitHub account (if you don't already have one).
  2. Let us know what works for you and what doesn't in an issue
  3. If you're already savvy with git (or want an excuse to start learning), feel free to fork the repo and send us a pull request! There is lots on the web to help you get started, but we especially like the stuff here.

Data and Terms of Use

Please see www.civicapps.org, developer.trimet.org/gis and http://www.portlandoregon.gov/bts for the data terms of use.

Licensing

Copyright 2017 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE file.

geodev-hackerlabs's People

Contributors

alaframboise avatar andygup avatar araedavis avatar banuelosj avatar dmartine avatar gavinr avatar gavinr-maps avatar jgravois avatar jimbarry avatar jyaistmap avatar mzurn avatar nixta avatar

Stargazers

 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  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  avatar  avatar  avatar  avatar  avatar  avatar

geodev-hackerlabs's Issues

Clarify step 3

For step 3:

  1. In the table of contents, hover over the selected layer and click More Options > Copy

You might want to mention that you have to hover over the three '•••' else, 'More options' will not appear.

Missing fields in PDX Neighborhood layer

The "Style Popups" exercise relies on the PDX Neighborhoods feature service to contain fields with population, income, and age data, but those fields seem to be missing now.

Create a New 3D Scene: "Layer cannot be added"

Text fix

Under Develop, JS API, Add a Vector Tile Layer Basemap exercise, Step 3, first line, says,
"function(Map, FeatureLayer) { "

It should say,
"function(Map, FeatureLayer) { "

Clarification needed in text, pls

While participating in the HackerLab, there was a surprise while working in the Data section, in the REST exercise.
There was no explanation that one could not form a REST service from a KML file. I uploaded a KML instead of, say, a shapefile, and was confused when I clicked on the URL that resulted.

Update all URLs to HTTPS

We live in the future now and all URLs should really be HTTPS if poss.

This raises its head if you are in an HTTPS visit to ArcGIS Online but paste in an HTTP service URL (at least for the Scene Viewer). Chrome and other browsers will throw an error. Sometimes you might not know you're at HTTPS if it happened automatically because your Org is configured to only allow HTTPS access.

@alaframboise: It would also be good to replace HTTP with HTTPS in the pre-made Web Maps that are referenced from the labs. It's really easy to do that with AGO Assistant.

Consider building in unit tests

Use case: when updating to a new level of library, such as the ArcGIS JS API, or making a quick fix or update it would be nice to make sure we aren't breaking anything.

Plus, unit tests + automation is a nice productivity bonus.

Errors when trying to add vector basemap

Getting errors when trying to add vector basemap when following this exercise

geodev-hackerlabs/design/apply_vector_basemap/lab.md

Error
The layer, World Street Map (Night - WGS84), can not be added to the map because its coordinate system or tiling scheme can't be adjusted to align properly with the basemap.

Got the same error when trying other vector basemaps

Public Information Template missing

In the "Create a Template App" exercise, it asks you to choose the Public Information template. But that template doesn't seem to exist anymore(?)

esri leaflet samples need leaflet version bumped

the 'latest' cdn flag in our CDN script tag is now causing an incompatible version of esri-leaflet to be loaded in our samples. time to upgrade to leaflet-1.0.0beta.1

<!-- Load Leaflet from CDN-->
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-1.0.0-b1/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-1.0.0-b1/leaflet.js"></script>

We need a web server tutorial

We need a quick way to:
a. confirm that hacker's machine has a web server installed, configd, and running
b. (if not a) the simplest possible way to get a web server-like thing onto their machine

Fix steps for create authenticated traffic layer

Click My Contents > My Traffic Layer > Advanced Options select Limit Usage and set the checkbox to enable rate limiting to 1000 requests per second.

It is now refresh interval with the newest ArcGIS Online update.

Be clearer about credit usage in create_walk_areas.md

I've had several users overrun their accounts doing this demo. Some tweaks to the content need to be made:

  • Move the note about credit consumption to the top rather then the bottom
  • Add a note about being careful to not overrun credits to step 5.

This should solve the issue.

Orgs can disable Share Everyone permission

Someone in DC at the FSBS Hackerlab was a member of an Org where "Share with Everyone" is disabled.

This is a problem for doing the labs. We just need to mention this so that people can better decide if they should be creating a Developer Account or using their Org account.

Combine 2D and 3D search widget labs

Whichever is chosen as the primary, 2D or 3D, be sure to mention how easy it is to switch between the different types.

Break out searching on a feature layer into a separate lab. That way we have a lab for using the default widget, and another lab for searching against a feature layer.

Consider advertising hackerlabs as Enterprise-ready.

Currently, Hackerlabs are advertised to an ArcGIS Online only audience. Many could also be conducted using ArcGIS Enterprise. Please consider adding a statement in the read-me that many labs can also be accomplished using ArcGIS Enterprise.

I found that a majority from the first two sections are either portal-ready or require just a few additional steps (e.g., hosting a web app locally vs. using online developer sandbox.)

As a starting point, it could be as simple as adding an asterisk in the Getting Started, step 1 like this:

Sign up for a free ArcGIS Developer subscription – Your subscription allows you to download software, register apps, import data, create new services, store maps, perform spatial analysis and more. If you already have an ArcGIS Organizational* subscription (with at least publisher level permission) you can use that too….

*If you are using ArcGIS Enterprise (including Portal for ArcGIS), you may also complete many of the labs as-is or with a few additional steps.

outline for event at UC Berkeley on 1/15

morning

introduction (30 min) - @alaframboise

  1. navigate this repo
  2. navigate developer site (and AGOL)
  3. vouchers

data (1 hour) - @alaframboise

  1. publish dataset from .zipped shapefile
  2. create new empty schema
  3. run drivetime/buffer/etc. analysis in AGOL

design (1 hour) - @alaframboise

  1. use Map Viewer to define advanced symbology on layer

develop (1 hour)

  1. demo publishing templates/wab from Map Viewer - @alaframboise
  2. set up local webserver - @jgravois

afternoon

develop (4 hours)

  1. make an esri leaflet app to share the services created in the morning - @jgravois

Design > Customize Vector Basemap (misspelling on step 7)

On step:

  1. Go to arcgis.com and login if necessary. Click My Content > click the Light Green Canvas tile layer > click UPDATE > Choose File > select the root.json file > UPDATE ITEM.

-----"UPDATE ITEM" is actually called "Update Style File"-----

more python labs

  • add layer to webmap
  • use docker to get started instead
  • save changes webmap?
  • ??

Changing description on meetup.com events

Dave Martinez and I worked on re-writing the description that we post out onto meetup.com so that it better reflects what attendees can expect to do at a HackerLab and why, which will better prepare them, and will better attract those who can learn what we're doing. For example, I removed the requirement that attendees much have a Github account and Git installed. That was setting the wrong impression for those going to HackerLabs and especially those who decided because of it that they wouldn't go or that it wasn't for them. Take a look at the new description. Let's discuss improving it further:

http://www.meetup.com/DevMeetUpNortheast/events/226818553/

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.