I created a website feature that visitors use to locate any one of 30,000 ATMs from a nation-wide network.
While monitoring what people are searching for on the credit union’s websites, I noticed that many people were searching for an ATM in locations throughout the country. At the time, the websites didn’t have any ATM locations on it so their search results would be empty.
So I created a way for that information to be listed on the website in a searchable format. I also created a way that people could search and view ATM locations on a map.
ATM Location Database
Because the Co-Op ATM API system was a little slow at retrieving results and I wanted to be able to search for ATMs by GPS coordinates instead of zip code, I created a program that would download ATM listings from the Co-Op network’s API at night. It would store the results from that API in a local database.
There are approximately 30,000 ATMs in the Co-Op network and I knew I shouldn’t query all zip codes in the country every night. So I programmed it to query their API for only a few hundred zip codes every night. I also programmed it to delete any ATM entries that hadn’t been found in the API’s results for a few months.
With the database in place, I programmed some template pages on the public websites to generate a page for each state, city, and ATM location. This would allow the website’s search engine to crawl these pages and then present them in the search results if users searched for them.
Each ATM page displays a map showing the ATM’s location, the address of the location, what hours the ATM is accessible (if applicable) and a button to get directions to the location.
I created a page that shows the location of any ATM in the map’s view. The user can scroll around on the map and it displays any ATMs that are available in the area that was scrolled to.
To make it easier for search engines to find the ATM pages, I included microdata for each ATM in the page’s markup.
I was the only developer on this project. I came up with the idea and implemented it myself. I created the database, developed the solution, moved the solution to test and then production environments, scheduled the synchronization program, and launched the solution on the public websites.
I knew the credit union was a part of the Co-Op network – a series of ATMs that were free to credit union members to use. I found that the Co-Op network offered API that would return a list of ATMs in a given zip code.
So I came up with a C# console app program that synchronizes the Co-Op network ATM data with a database I created to store all of that data locally. I could run that program every night to synchronize a few zip codes at a time with the database.
Then I created a new controller on the credit union’s public website to retrieve that database data by state, city, and individual ATM. I created some views to display that data and integrated Google Maps and driving directions.
After testing it, I showed it to managers to get approval and then launched it out on the public websites.
The system contains nearly 30,000 ATMs and shared branch locations. It is used every day by website visitors to find ATMs near them.