Web developer, mapping and geospatial specialist, and problem-solver extraordinaire.
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:
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.
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.
Full Screen See Code
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.
Full Screen See Code
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.
Full Screen See Code
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.
Full Screen See Code
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
Full Screen See Code
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.
Full Screen See Code
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.
Full Screen See Code
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.
Full Screen See Code
This FreeCodeCamp project creates a countdown timer based on the Pomodoro technique of working in 25 minute increments, with 5 minute breaks in between.
Full Screen See Code
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.
Full Screen See Code
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.
Full Screen See Code