GithubHelp home page GithubHelp logo

joshvar88 / smc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sagemathinc/cocalc

0.0 2.0 0.0 165.97 MB

SageMathCloud's complete current source code repository -- use SMC at

Home Page: https://cloud.sagemath.com

License: GNU General Public License v3.0

Python 18.28% CoffeeScript 45.29% Shell 0.61% Makefile 0.06% Nginx 0.03% TeX 0.06% JavaScript 31.20% HTML 3.42% CSS 1.03% Jupyter Notebook 0.01%

smc's Introduction

logo SageMathCloud (SMC)

A collaborative web-based interface to Sage, IPython, LaTeX and the Terminal

Website

Development/install

  • git clone https://github.com/sagemathinc/smc -- copy repo
  • cd smc/src
  • npm run install-all -- build
  • npm test -- run test suite (expected failures if your clock is not UTC)
  • install.py all --compute --web -- build and install some parts system-wide for development use
  • See INSTALL.md for more details.
  • Docker: https://github.com/sagemathinc/smc/tree/master/src/dev/docker

Contributors

Active contributors

  • William Stein, SageMath Inc and University of Washington -- founder; everything
  • Harald Schilly, Vienna, Austria -- everything
  • Tim Clemans -- fontend work
  • John Jeng -- frontend work
  • Hal Snyder -- backend Python-related work
  • Simon Luu -- frontend work (chat)
  • Todd Zimmerman -- screencasts
  • Greg Bard -- updating the FAQ; documentation

Past contributors

  • Jon Lee, University of Washington -- frontend work, history viewer
  • Rob Beezer, University of Puget Sound -- design, maintenance
  • Nicholas Ruhland, University of Washington -- frontend work, tab reordering and resizing
  • Keith Clawson -- hardware/infrastructure
  • Andy Huchala, University of Washington -- frontend work, bug finding

Copyright/License

SMC is 100% open source, released under the GNU General Public License version 3+:

Copyright (C) 2014 -- 2016, SageMath, Inc.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Build Status: Testing and Coverage

We test SMC via Travis CI. Here are the results:

DevOps note: The relevant files are:

  • .travis.yml - to tell travis-ci what to do (two modes: client and server)
  • smc/*/test/mocha.opts - defaults for running mocha
  • smc/package.json - the "scripts" section (overwrite mocha reporter, only call coveralls when on travis-ci, etc.)

ARCHITECTURE

  • Client -- javascript client library that runs in web browser
  • Load balancer/ssl -- HAproxy
  • Database -- RethinkDB
  • Compute -- VM's running TCP servers (e.g., sage, console, projects, python3, R, etc.)
  • Hub -- written in Node.js; primus server; connects with everything -- compute servers, database, other hubs, and clients.
  • Storage -- Snapshots of project data
  • HTTP server -- Nginx
  • admin.py -- Python program that uses the paramiko library to start/stop everything
  • The Cloud -- Google Compute Engine

Architectural Diagram

   Client    Client    Client   Client  ...
     /|\
      |
   https://cloud.sagemath.com (primus)
      |
      |
     \|/
 HAproxy (load balancing...)HAproxy                  Admin     (monitor and control system)
 /|\       /|\      /|\      /|\
  |         |        |        |
  |http1.1  |        |        |
  |         |        |        |
 \|/       \|/      \|/      \|/
 Hub<----> Hub<---->Hub<---> Hub  <-----------> RethinkDB <--> RethinkDB  <--> RethinkDB ...
           /|\      /|\      /|\
            |        |        |
   ---------|        |        | (tcp)
   |                 |        |
   |                 |        |
  \|/               \|/      \|/
 Compute<-------->Compute<-->Compute <--- rsync replication  to Storage Server, which has BTRFS snapshots

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.