GIS Web API City of Richmond

This web API utilizes ArcGIS Server, ASP.NET MVC, ASP.NET Web API, Entity Framework, Ninject, Bootstrap, and more to provide enterprise-wide GIS data integration with other IT divisions. It is a collection of smaller RESTful API modules that expose GIS data, including real-time metadata, map generation, geocoding, and access to geodatabase items.

Each module within the API provides domain-specific functionality and includes documentation extracted from the C# code, live samples, and sample syntax.

This is the most recent work that I've completed and the best example of the type of work I currently perform (API design). It is a large-scale multi-layered architecture that is built upon Inversion of Control principles and a modular plug-and-play framework that was developed in-house.

The following are individual components of the GIS Web API:

Auto-complete Geocoding

The geodata module provides access to specific geodatabase information such as addresses. The module is self-documenting by extracting XML code comments from the API controller's documentation.

Sample

Static Map Generator

This web utility demonstrates the use of the Map Images module by allowing a user to specify parameters to submit to an AJAX request in a user friendly interface.

Sample image

Metadata Retrieval

The metadata module demonstrates real-time retrieval of geodatabase metadata.

Snow Plowing Status Map City of Richmond

This is a public web application built using ASP.NET MVC and the ESRI JavaScript API to provide the public with a map of snow plowing status during winter events. City employees edit snow routes using the application to indicate progress during an event (unfortunately, this editing is restricted to city employees). It uses an ArcGIS Server Feature Service to perform the editing.

Address Research and Reporting City of Richmond

This internal Silverlight application is based on the City of Richmond's GIS Web API and is designed to give city staff the ability to research questionable addresses and report any issues with them. The application uses an internal token-based security system to authenticate the submission of issues throught the REST API.

GIS Team Administration City of Richmond

This is an internal web application built using ASP.NET MVC, Entity Framework, and Bootstrap to allow the city's enterprise GIS team to manage various aspects of their web-based applications. Some examples of functionality include maintaining an inventory of applications and related web services, viewing error logs, ArcGIS Server administration, and hosting of a Visual Studio extension gallery as well as a Nuget feed.

MPACT Web Mapping Application City of Richmond

 Git  Source  JavaScript  CSS  HTML

This is an internal web application built using ASP.NET MVC, Entity Framework, ESRI JavaScript API, and Knockout.js that displays SeeClickFix reported issues for a given time period. It's purpose is to give city officials a reporting tool for the city's MPACT project.

JavaScript

The main JavaScript file used in the application is shown below. It contains elements from ESRI's JavaScript API as well as bits of Knockout and jQuery.

CSS/LESS

I prefer to use LESS to compile my stylesheets. Here is the LESS file for the MPACT application.

HTML

Most of my web applications are built using ASP.NET MVC on the back-end. I generally prefer the Razor syntax.

Visual Studio Web Application Templates City of Richmond

 Git  Source  JavaScript  CSS  HTML

These web application templates are for use within Visual Studio 2010+ and are designed for rapid application development by City of Richmond application developers. They are built using ASP.NET MVC, Bootstrap, Entity Framework, ELMAH, Ninject, ESRI JavaScript API, and a variety of JavaScript plugins.

JavaScript

The main JavaScript files used in the templates are shown below. The first is for the map template and the second for the basic template.

CSS/LESS

I prefer to use LESS to compile my stylesheets. Here are the LESS files for the templates.

HTML

Most of my web applications are built using ASP.NET MVC on the back-end. I generally prefer the Razor syntax.

Recovery Act Data System Federal Highways Administration

I assisted with this application by providing some Silverlight tooling such as the navigation controls and basemap selectors. Another Silverlight application that I was involved with was an updated version of the above link that was internal to the FHWA. Screenshots of this application are below.

Bootstrap Themes Personal

 JavaScript  CSS  HTML

I build themes built using Bootstrap 3 that are intended to be sold online. Because this is a commercial product I have decided to not make the source available. However, the major parts of the application can be found below and you can always view source on the theme itself (although the JavaScript and CSS are minified).

JavaScript

The main JavaScript file used in the theme is shown below.

CSS/LESS

I prefer to use LESS to compile my stylesheets. Here are the LESS files for the templates.

HTML

Because the theme is composed on several different views, the entire rendered output is displayed in this gist.

Silverlight Table of Contents Control Personal

This is a control for use with ESRI's Silverlight API that I created pre-ArcGIS Server 10 when they introduced legends in the REST API. While it's debatable as to whether a map should even have a TOC a fair number of people found this to be useful.