Challenge
Since SeaStatus originated as a pre-seed startup, this meant that cost, developer resources, and time-to-market were very important factors in the engineering of a solution. We used popular open-source libraries and frameworks with large support communities wherever possible to save cost, and also decided to go with a cross-platform framework (Ionic) to deliver application versions for web, iOS, and Android primarily using JavaScript to avoid having to develop in 3 separate programming languages. Additionally, because we wanted to launch the application as quickly as possible, we focused on using 3rd party APIs to gather tha marine weather data, and a flexible back-end on Google Cloud to cover the user personalization piece.
Solution
We managed a codebose for both iOS and Android apps that aggregates raw data from NOAA, Darksky, PlanetOS, WeatherFlow, and Worldtides to populate marine weather charts. We also used Amazon CloudFront (CDN) to cache responses for 1 hour to make location data really fast to load. We also built a Ruby on Rails application on Google Cloud to handle the fetching of data that uses delayed jobs (in memory for the fastest response time) to create 4+ jobs to fetch data from different datasets and stores the results in a Firestore database. Finally, we developed cloud functions (Node.js) to schedule push notification reports based on user-selected timezones.