Skip to content
/ CaSMM Public
forked from STEM-C/CaSMM

Computation and Science Modeling through Making Full Stack Web App

Notifications You must be signed in to change notification settings

lilyh14/CaSMM

 
 

Repository files navigation

CaSMM

Computation and Science Modeling through Making

Cloud-based programming interface

Review Deploy Staging Deploy Production


Application

client

client is the frontend of the application. It is powered by React and Blockly.

server

server is the web server and application server. It is powered by Node and Strapi.

compile

compile is an arduino compiler service. It is an unofficial fork of Chromeduino.


Environments

The project is divided into three conceptual environments.

Development

Structure

The development environment is composed of five servers. The first one is run with the Create React App dev server. The later four are containerized with docker and run with docker compose.

  • casmm-client-dev - localhost:3000
  • casmm-server-dev - localhost:1337
  • casmm-compile-dev
  • casmm-db-dev - localhost:5432
  • casmm-compile_queue-dev

Running

casmm-client-dev

  1. Follow the client setup
  2. Run yarn start from /client

casmm-server-dev, casmm-compile-dev, casmm-db-dev, and casmm-compile_queue-dev

  1. Install docker

    If you do not meet these requirements docker desktop will not initialize properly. There are some unofficial modifications, however, we recommend installing the docker toolbox

  2. Run docker-compose up from /

    Grant permission to the scripts and server directories if you are prompted

Staging

Structure

The staging environment is a Heroku app. It is composed of a web dyno, compile dyno, Heroku Postgres add-on, and Heroku Redis add-on.

Running

casmm-staging is automatically built from the latest commits to branches matching release/v[0-9].[0-9]. Heroku runs the container orchestration from there.

Production

Structure

The production environment is a Heroku app. It is composed of a web dyno, compile dyno, Heroku Postgres add-on, and Heroku Redis add-on.

Running

casmm is automatically built from the latest commits to master. Heroku runs the container orchestration from there.


Contributing

Git Flow

We will follow this git flow for the most part — instead of individual release branches, we will have one to streamline staging deployment

Git Flow

Branches

Protected

Locked for direct commits — all commits must be made from a non-protected branch and submitted via a pull request with one approving review

  • master - Production application

Non-protected

Commits can be made directly to the branch

  • release - Staging application
  • develop - Working version of the application
  • feature/<scaffold>-<feature-name> - Based off of develop
    • ex. feature/cms-strapi
  • hotfix/<scaffold>-<fix-name> - Based off of master
    • ex. hotfix/client-cors

Pull Requests

Before submitting a pull request, merge the target branch into the working branch to resolve any merge conflicts. Include a description of the changes made.

  • PRs to master should squash and merge
  • PRs to all other branches should create a merge commit

About

Computation and Science Modeling through Making Full Stack Web App

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.2%
  • Less 2.4%
  • Other 0.4%