
Project Inspiration
The inspiration for Global Ski Atlas came from the table of ski resorts in the U.S. by Stuart Winchester at Storm Skiing, the collection of ski resort maps at skimap.org, and the winter sport data display of OpenStreetMap at openskimap.org. To learn more about me, please visit witcoskitech.com or connect with me on LinkedIn at @Jonathan Witcoski.
The Problem
I started this project due to the lack of standardized information available for ski resorts. Each resort typically has a custom-made map, often beautiful hand-drawn pieces of art. However, this variability makes it difficult to compare resorts, especially with the advent of multi-resort passes that grant access to numerous resorts within driving distance of my home. To address this need, I decided to create a comprehensive skiing atlas that independently compiles essential statistics such as acreage and the length of ski runs using OpenStreetMap data and QGIS open-source software. This atlas aims to provide clear, standardized information to help skiers make informed decisions about their next destination.
Technical Implementation
In addition to learning QGIS, I also gained experience with Amazon Web Services (AWS) by creating this website. I first built my personal webpage, witcoskitech.com, as part of the Cloud Resume Challenge. I then created this serverless website using various AWS technologies. The ski resort data is hosted in a DynamoDB database and accessed through an API created with AWS API Gateway and Lambda functions.
While the challenge typically involves using JavaScript to directly interact with DynamoDB for a visitor counter, I took a different approach. I use a Google Sheets document to manage the ski resort data, which I then export to a CSV file. This file is uploaded to an S3 bucket, where a Lambda function processes the CSV and updates the DynamoDB table. The website itself is a static site deployed on Amazon S3, with CloudFront providing HTTPS security and a custom domain name. The website uses JavaScript to call the Lambda function, which generates a unique webpage for each ski resort requested. This request is passed through the API Gateway.
Technologies Used
- QGIS: Open-source Geographic Information System for creating standardized resort maps
- OpenStreetMap: Source of geographic data for ski resorts
- AWS S3: Hosting the static website and data files
- AWS CloudFront: Content delivery network for HTTPS security
- AWS Lambda: Serverless functions for data processing and API requests
- AWS API Gateway: Managing API endpoints
- AWS DynamoDB: NoSQL database for storing resort information
- Google Sheets: Data management and organization