sdapi2.png

Snow Day API

The Snow Day API was my first real-world API. It powered the Snow Day SMS Service, SMS Service registrations, and the Snow Day Dashboard. The API communicated with DynamoDB for data storage, and Twilio for sending SMS messages.

The API is an impressive project - but unfortunately suffered from feature creep due to the Snow Day Dashboard. Additionally, the API was extremely inefficient - the OpenAPI specification was larger than the API itself.

Lines of code: ~4,500

Languages: Python

Frameworks: Twilio (for SMS messages), DynamoDB (for data storage)

Timeframe: January 2019 - March 2020

The Snow Day Dashboard was used to customize the SMS service in a series of 4 projects encompassing the Snow Day Predictor. Links for other projects can be found below.

Snow Day SMS Service (what the dashboard was customizing)

Snow Day Predictor (web frontend)

Snow Day API (powered the dashboard)

You can view the source code for this project here.

 A sample of the extensive documentation for the API (no wonder the API spec file is larger than the API itself!). This method is one of twenty-two methods that control various aspects of the SMS service, and dashboard.

A sample of the extensive documentation for the API (no wonder the API spec file is larger than the API itself!). This method is one of twenty-two methods that control various aspects of the SMS service, and dashboard.

 The modest homepage for the Snow Day API, which is Bootstrap with the Roboto font applied.

The modest homepage for the Snow Day API, which is Bootstrap with the Roboto font applied.

 An example data return from the Snow Day API. In later versions of the API, I added in rate limiting (mostly as an experiment), so it would return headers for requests total, requests remaining, and when the rate limit period resets.

An example data return from the Snow Day API. In later versions of the API, I added in rate limiting (mostly as an experiment), so it would return headers for requests total, requests remaining, and when the rate limit period resets.