Part I - Build an app
My hope is that you are itching to apply what you’ve learned in the course, especially after the UI lesson, to some project of your own. Perhaps you have something in mind involving your job. For those of you whose job doesn’t provide a suitable project, you should be able to come up with an idea based on some outside interest.
I prefer to keep this project open-ended in terms of requirements to allow you to go in whatever direction you like. However, I will give you one piece of guidance:
Projects that implement knowledge/skills gained from just the topics covered by the course materials will earn a maximum of 90%. The remaining 10% is reserved for efforts that go beyond the course materials.
The kind of "default" project I have in mind is one in which you have some large dataset and develop an app that provides a UI for selecting a subset of that data (e.g., data from a selected state or county). That sort of basic project would definitely need some thought put into how to earn the 10% reserved for "above and beyond" ideas.
- Build an editing app.
- Implement a layer type we didn’t cover (e.g., CSVLayer, KMLLayer, WMSLayer).
- Create your own instance of ArcGIS Server (following instructions from our Cloud and Server GIS course), publish data and/or geoprocessing services on that instance, then develop an app that consumes those services. (The expectations for the app itself would be lowered for a project of this type, given the work that would go into the ArcGIS Server prep. Also, please notify the instructor of your intent to complete a project of this type. There are some behind-the-scenes tasks that we'll need to do for you.)
- Install Collector for ArcGIS on a mobile device, collect data from your property or community, then build an app that displays that data.
- Incorporate functionality from some other JS library, such as charting from D3.
- Use a server-side language like PHP to "scrape" data off of some website.
- Build an app that implements one of the advanced topics below.
- Build an app using a non-Esri platform (e.g., based on the Google Maps or OpenLayers APIs).
Part II - Report on an advanced topic
As we’ve done a couple of times earlier in the course, I’d like you to record a video, this time about some advanced web mapping topic. I’ll provide a list of potential topics you can sign up for, though I’m certainly open to others if you have something else in mind. Just run your topic by me.
Note that many of these topics are discussed in the Guide section of the Esri JS API SDK.
- Secured content/authentication
- Running the API locally
- Benefits of implementing an API key
- Point clustering
- Branding apps with widget CSS
- Building with ECMAScript (ES) Modules
- Adaptive layouts for mobile devices with CSS
- Migrating from version 3.x to 4.x
- Source code version control (e.g., using Github)
- Client-side layers/queries
- Custom widget development with TypeScript
Making sense of these topics requires varying levels of background knowledge, so I suggest you take at least a few minutes to research the topic that interests you most before signing up for it. I have a good idea of everyone's prior experience/abilities and will have that in mind when it comes time to grade your video. If you feel you've been stuck with a topic that's just too difficult for you to report on, please shoot me an email.
Sign up for a topic that interests you in Canvas.
It's possible you'll be able to incorporate your advanced topic into your Final Project app, though that's certainly not required.
Here are some points that you should consider addressing in your video:
- Limit your video to 5 minutes.
- Provide background on the topic so that the viewer has a basic understanding of what you're discussing. (This is not always clear just looking at the topic names.)
- Is there any prerequisite knowledge/skill that someone should have before exploring the topic?
- If applicable, walk through one or more code samples that help to illuminate your topic. The samples might be found in Esri's SDK or elsewhere, such as sites like stackoverflow.
- Cite the resources you consulted in researching your topic.
- Make a recommendation on how interested colleagues can learn more.
This project is two weeks in length. Please refer to the course Calendar, in Canvas, for the due date.
- Upload your Final Project app to your e-portfolio.
- Post a link to your app to the Final Project Submission page in Canvas. (70 of 100 points)
- Post a link to your advanced topic report to the Final Project Discussion Forum in Canvas. (30 of 100 points)
- Complete the Final Quiz in Canvas. (This covers all of the course content and accounts for 10% of your overall grade.)