owenniblock / sparkle

Sparkle Online Event Platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sparkle Web App

Codebase for the Sparkle platform, brought to you by Sparkle, a platform for the most immersive & interactive virtual events.

Getting started

What you will need:

  • A free Firebase account
  • Your favorite command-line interface (e.g. Terminal or zsh on a Mac)
  • Optional: accounts with Stripe, Twilio
  • A little fairy dust

Set Up Your Local Environment

Step 1: Clone the Sparkle Repository

First, clone the repo and cd into it:

git clone https://github.com/sparkletown/sparkle
cd sparkle

Step 2: Install Packages

Install the platform dependencies with npm:

Important npm v7+ is not supported, it will cause issues with our package-lock.json, and you may end up with the wrong dependency versions. Check your current npm version with npm -v.

npm install

Step 3: Set up Firebase project

If you haven't followed through these steps before then you're going to need to set up a new Firebase environment and configure it. That process is a little longer than would fit comfortably in this README, so we split it out for you:

See Firebase setup

Step 4: Start Your Engines

See Start application

Note: You might need to emulate the firebase functions locally before the server can properly start. If you have issues using/editing your actual deployed environment functions, try that.

Step 5: Firebase Emulators

See Firebase Emulators


Part Three: Contribute to Sparkle

Our Git Flow

If you're new to Git / GitHub flows, then you may find these guides helpful:

To contribute to the code base, please follow these steps:

  • fork the repository (note: Sparkle team skip this step)
  • create a new branch from staging
  • write your code
  • create a pull request to merge your branch into staging
  • wait for code review
  • fix any review comments
  • once the review has been finalised, a team member will squash-merge the PR into staging, which will trigger the CI to deploy the staging environment

Then, to deploy to production, a Sparkle team member will:

  • create a PR to merge staging into master with a name such as deploy staging -> master
  • add the 🚀 deployment label
  • copy the commit messages (including the #1234 PR they were made in) and paste it into the PR description after Deploys: (see example)
  • merge (not squash-merge) this 'deployment PR' into master, this will trigger the CI system to deploy to the 'OG production' environment
  • push the master branch to any other environment branches (eg. env/foo) to trigger the CI system to deploy those environments as well

When adding a quick fix to production:

  • create a branch from master
  • code
  • create a pull request on master
  • create a branch from staging
  • cherry-pick the commit
  • create a pull request on staging

Deploying

Deploys are handled by CircleCI.

  • Merging to staging will deploy to staging
  • Merging to master will deploy to production
  • Pushing the master branch to any of our other configured production branches will deploy to that environment

Part Four: Addenda

Sparkle is using Bugsnag! We are proud to be part of Bugsnag's open source program and are glad that Bugsnag supports open source.

Bugsnag Logo

About

Sparkle Online Event Platform

License:GNU Affero General Public License v3.0


Languages

Language:TypeScript 73.9%Language:SCSS 13.8%Language:JavaScript 9.8%Language:Python 1.9%Language:Shell 0.4%Language:HTML 0.2%