Skip to content

A web app for reporting and sharing avalanches in a three-dimensional, interactive view

Notifications You must be signed in to change notification settings

jamiesampey/avyeyes

Repository files navigation

AvyEyes screenshot

AvyEyes is a web application for reporting and sharing avalanches in a three-dimensional, interactive view.

The typical AvyEyes use case is as follows:

  1. Backcounty Bob is out skiing with his friends (in the backcountry of course) and triggers an avalanche
  2. Bob comes home and goes to http://avyeyes.com where he creates an avalanche report by drawing the avalanche path perimeter in the 3D view and entering the avalanche details (standard SWAG fields and free form comments), including pictures he took of the slide
  3. Bob submits the report and receives a confirmation email with the unique eight-character report identifier
  4. Bob then shares the unique report URL (http://avyeyes.com/8charUID) with anyone he wants to inform of the slide


AvyEyes is online at http://avyeyes.com

A few example reports:

The Code:

Server-side API code is written in Scala and runs in the Play Framework. Tests are written in Specs2 with Mockito for mocking and ScalaCheck for test object generation.

The AvyEyes client is a pure ES6 Javascript React project which makes heavy use of Google's Material-UI library. The 3D view is provided by CesiumJS. The AvyEyes client is an NPM project that uses Babel to transpile React JSX, and Webpack to organize/build/optimize the Javascript.

AvyEyes is deployed in AWS as an Elastic Beanstalk app with a Postgres RDS instance providing persistence and S3 providing file storage.