Slide 1

Slide 1 text

goMake

Slide 2

Slide 2 text

goMake API Jonathan Barton @jellyfishtree - Technical Lead Engineer at McGraw-Hill Education - Co-Founder of goMake

Slide 3

Slide 3 text

Agenda Next steps Q & A 4 API 3 Mobile App 2 Overview 1

Slide 4

Slide 4 text

Students learn by understanding the story behind their interactions with science, math and technology Framework for An Emergent Narrative

Slide 5

Slide 5 text

From bootstrapped launch to scal- able education framework Our Narrative

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Our Team Neha API Sorceress Rick Minister of Containers Jonathan Hardware Czar Isaac Web/UX Nick Content/ Media Baron Matt Design Deacon Jacob Swift Wizard Morris Infrastructure

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Foundations - Project-based Learning Curricu- lum - Standards Oriented (CC) - Open Source (GPLv3) - Space!

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

goMake Container

Slide 12

Slide 12 text

HolyokeCodes @holyokecodes

Slide 13

Slide 13 text

Jacob Bashista @jacobbashista - Swift Wizard jacobbashista.com goMake Mobile App

Slide 14

Slide 14 text

goMake Mobile App

Slide 15

Slide 15 text

100 kPa 400 db 68 Altitude 0 km 2:40:10 Trip Time (42.36008, -71.058880) Callisto Find your Balloon! Enter Call sign You can manually type in your Balloon's call sign or select one from the active list. Callisto Name Status Exeter SS Marcus Active Ended 7/14/16 Ended 6/1/16 Dorothy Ended 2/1/16 goMake Mobile App

Slide 16

Slide 16 text

Neha Abrol @abrol_neha - Software Engineer at McGraw-Hill Education - API Sorceress at goMake goMake API

Slide 17

Slide 17 text

Agenda Overview API Architecture Infrastructure Testing Challenges Data Security 1 2 3 4 5 6

Slide 18

Slide 18 text

Overview The goMake API provides flight related information and real time telemetry for a goMake high altitude balloon and other project launches.

Slide 19

Slide 19 text

Architecture SendBird Chat API Auth0 Authentication API Middleware for Express Validation request headers etc. Mongoose ODM Payload has a Hex String Balloon Latitude Longitude Altitude Temperature Modem Imei# Web Server Express Server Base don Node JS Request w ith Im ei # and LaunchD ate Payload w ith Im ei # & Launchdate Callback U RL Callback URL sent every 2 minutes posting the flight’s Telemetry Request Satellite Modem RockBlock DB Mongo DB Response

Slide 20

Slide 20 text

Infrastructure - Overview - Circle Ci- Continuous integration - Microservices Architecture with Kubernetes on Google Cloud Node Deployment Service Load Balancer ClusterIP Persistent Volume Service Web Server Container Deployment Mongo Container

Slide 21

Slide 21 text

Infrastructure - Choice Considerations 1. Flexibility - Very fine control of compute usage over time. - Scale up and down based on requirements. 2. Cost: Competitive rates for compute and storage. 3. Availability: Relatively easy to deploy highly-available services. 4. Simplicity: Straight-forward API with command line in- terface and Web UI.

Slide 22

Slide 22 text

Testing Strategies and Data Setup Unit Tests - mongoose-mock - mocking mongoose connection. - sinon-mongoose – chained mongoose model methods. - sinon-stub-promise –promises. Integration Tests - http-status - http responses from endpoints. - supertest-as-promise - mocking requests. Data setup-Mock Data - gomake-mock-data – repository published as an npm package to provide mock data. Data setup-Seeders - gulp populate - “populate” task to copy data from json files to mongoDb collection. npm pack- age gulp-mongo populator used.

Slide 23

Slide 23 text

Challenges - Challenge : No information from satellite during course of the flight. - Solution: To give some kind of predictive navigation information based on previous flights‘ data. (Future implementation). - Challenge : Relationship between flight and telemetry, if same satellite modem is used. - Solution : Have flight launch date with IMEI number as a unique identifier. - Challenge : Working with predefined message formats from on- board devices. - Solution : Still trying to figure out the best yet consistent solu- tion for different consumers like using geoJson

Slide 24

Slide 24 text

Data Security - JWT token– transferring claims. - Auth0 API – authentication and authorization. All user related info is going to be stored in Auth0 database. - SendBird Chat – Each user will get their own chat key.

Slide 25

Slide 25 text

Nicholas Kanhai @nkanhai Co-Founder GoMake Master of Module Content & Media goMake Vision

Slide 26

Slide 26 text

To hone our collective experience, intelligence, and skills in order to give back something meaningful to the world goMake Vision

Slide 27

Slide 27 text

www.patreon.com/gomake Short term goal: Target : May 2017 Two Launches Purpose: to fully fund 2 high altitude balloon projects for a group of 10 students with the tech-education group Holyoke Codes goMake Vision

Slide 28

Slide 28 text

Thank You! Twitter: @gomaketeam Instagram: instagram.com/gomaketeam Facebook: facebook.com/gomaketeam