Ken Doman

Web developer, mapping and geospatial specialist, and problem-solver extraordinaire.


About

Hi, I'm Ken Doman. I work as a GIS Web Developer, creating interactive maps for a number of local and county governments. I'm also a published author, having written the technical book Mastering ArcGIS Server Development with JavaScript for Packt Publishing.

I started working on this and other challenges for Free Code Camp because:

  • I believe in their mission to educate people in web development.
  • Like free food, I won't turn down free certification.
  • I was looking for interesting challenges outside of my profession.

Besides my skills with the big web three (HTML, CSS, and JavaScript), I also know Python, C#, VB.Net, T-SQL, WPF, and ASP.NET. I like learning new things, solving problems, and sharing what I've learned.

Portfolio

Web Mapping

Custom ArcGIS Measurements on Graphics

This project showed how you could extend an existing widget to get some handy functionality. In this case, the extended measuring widget connected into the popup that shows when you click a feature on the map, and lets the user calculate measurements from that feature.

ArcGIS JavaScript API Dojo AMD

Full Screen See Code

A Better StreetView

This was a proof-of-concept utility I put together to find the best Google Static Image for a location. The tool allows you to type in a location (like an address, city, and state), and it will find it through Google Maps API. You can then drag the Pegman around on the Google Map, or drag the StreetView view around to get a better view. When you are satisfied, you can update the static image, and copy the url from the blank at the bottom.

AngularJS Google Maps API Google Static Images API

Full Screen See Code

Modifying LayerList widget to control basemap visibility

Working with multiple layers in a map can be difficult. So, when ESRI released a LayerList control for turning on and off layers, changing layer transparency, and changing sublayers, I was all over it. Finding an issue where the base layer wouldn't show in the list when I used a map from ArcGIS Online was tough. This shows how I worked around the issue and hacked in a basemap visibilty toggle to the control.

ArcGIS JavaScript API Dojo AMD

Full Screen See Code

Determining a point within a polygon

Using clientside geometryEngine tools provided by the ArcGIS JavaScript API, I attempted to find a point within any polygon graphic drawn on a map. This method would draw lines horizontally, then vertically through a drawn graphic, calculate the intersect, then place a point in the middle of the intersecting line. Applications include determing where to trigger a click event to bring up popups for graphics with irregular shapes.

ArcGIS JavaScript API Dojo GeometryEngine

Full Screen See Code

Resizing Graphics to a specific Size

Using a bit of trigonometry and the measuring tools within the ArcGIS JavaScript API's GeometryEngine, I was able to resize any graphic drawn on a map to a specific length or area. Lines could be restricted to specific lengths, and polygons could be restricted to specific areas. A toggle was also added to resize the drawing from the center of the shape, or from the starting point

ArcGIS JavaScript API Dojo GeometryEngine

Full Screen See Code

Free Code Camp Challenges

Weather App

This project uses the Open Weather Map API to collect weather information from your location. Location information derived from Geolocation API, with the host IP location used as a backup. Weather conditions shown in both metric and imperial units, and can be toggled. Also, unique backgrounds coinside with weather conditions.

FreeCodeCamp jQuery OpenWeatherMap API Geolocation

Full Screen See Code

Wikipedia Search

This is a Wikipedia search project for Free Code Camp. You can use a search blank to search for articles on Wikipedia. For the styling, I jokingly copied the look of Google, since they are the king of search engines.

FreeCodeCamp Angular wikipedia API

Full Screen See Code

Twitch Streamers Test

A Twitch TV Streamer service to see which of your favorite Twitch Streamers are online. This uses the Twitch API to access streaming status for a list of accounts, and displays them in a list. If users cancel their account, results will show that account is no longer available. Styling loosely inspired by Twitch's simple color scheme.

FreeCodeCamp Angular Twitch API

Full Screen See Code

Pomodoro Timer

This FreeCodeCamp project creates a countdown timer based on the Pomodoro technique of working in 25 minute increments, with 5 minute breaks in between.

FreeCodeCamp jQuery CSS3

Full Screen See Code

JavaScript Calculator

This project presents a functioning calculator, similar to the desk calculators in many homes and offices. The application lets the user add, subtract, multiply, divide, and mod whole numbers and decimals. Calculator was designed using different CSS3 styling techniques. As a bonus, users can enter numbers from the keyboard instead of typing them in with mouse clicks.

FreeCodeCamp jQuery CSS3

Full Screen See Code

Quote Generator

This project requested a random quote generator where a user could get new quotes by clicking on a button. I expanded the project by adding a self-quizing structure that asks the user to guess if the quote is from Shakespeare, or from the King James Bible. The addition was inspired by radio shows testing callers with these questions.

FreeCodeCamp jQuery Parse.js

Full Screen See Code