Skip to content
This repository was archived by the owner on Nov 29, 2025. It is now read-only.

savilabs/launchpad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

903 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LaunchPad

This project contains the API and web UI for LaunchPad. See specifics on each directory below:

  • api/ — Rails app that serves a JSON API
  • ui/ — Ember.js web app front-end

Intro

The code that powers LaunchPad are two separate apps in this one single monorepo—a web front-end user interface (a.k.a. UI, front-end) and a back-end API.

The UI app is hosted on Firebase. The API app is Hosted on Heroku.

Development

Development for each app happens in its own directory. Start by following the README in each dir to set up the needed dependencies.

Once everything's all set, the apps can be booted with foreman start

Install foreman with gem install foreman if it's not installed.

Tests

All of the automated tests for the apps can be run with bin/test

The test suite is run before deploying to Production to ensure everything's valid.

There are also app-specific commands that can be run. See the README for each directory.

Cypress is a tool that's configured for end-to-end testing across both the web app and API that better ensures everything works across the full stack.

Download Cypress and open this repo to run the tests. It points to the local development URL by default.

Deploying

There's a deploy script to make creating releases as simple as possible.

Here's an overview of the commands:

  • bin/deploy — deploy to Staging from the current branch
  • bin/deploy -m — deploy, run migrations, and restart the app
  • bin/deploy -r — check out the main branch, create a release tag, and deploy to Production

Any command can be run with the -d flag to output the commands that would be run without actually running them to see what's planned to be run.

In order to be able to deploy the apps, you must install the following tools and sign in:

Heroku

  1. brew tap heroku/brew && brew install heroku
  2. heroku login

Firebase

  1. curl -sL firebase.tools | bash
  2. firebase login

Environments

There are two application environments: Staging and Production.

Staging is a test ground with test data. Staging data is likely to get reset and cleared. It is for testing purposes only, and it is the area where new features should be tested before being pushed to Production.

Production is the live application. It is where users use the app. The Production database gets backed up nightly.

Here are the URLs for the web application environments:

Additional Details

See this Google Doc for more details.

About

Monorepo for the web UI and API

Resources

Stars

Watchers

Forks

Contributors