Giter Club home page Giter Club logo

vmt's Introduction

Virtual Math Teams (VMT) Build Status License: AGPL v3 PRs Welcome

Virtual Math Teams (VMT) provides a collaboration infrastructure for visual math and geometry tools, such as Geogebra and Desmos. To provide this infrastructure, this version uses React.js and Redux.js, express and sockets.io. see 'Installation' below.

License

  • For non-commercial uses, this application is licensed under the AGPL license.
  • Any use of VMT for commercial purposes is subject to and requires a special license to be negotiated with Mathematical Thinking.
  • See VMT license details

Installation (Technologies used)

To provide the colloaboration infrastructure, this application uses a combination of:

Setup for local Development

  1. Fork this repo (instructions)
  2. $ npm install
  3. $ nodemon
  4. open a new console tab
  5. $ cd client && npm install
  6. $ npm start
  7. At this point create-react-app will open a browser window for you and refresh it every time a change is made.

Deployment

To deploy this project to staging or production go to the root level directory and run $ ./deploy.sh <username> <environment> where enviornment = production || staging

Git Rebase Workflow

  1. git checkout master
  2. git pull --rebase upstream master
  3. git push origin master
  4. git checkout -b feature-branch
  5. git add/git commit (on feature branch)
    • To close an issue, add 'closed #[github issue number]' to commit message
  6. git pull --rebase upstream master (on feature branch)
  7. git push origin feature-branch
  8. Submit pull request (your feature branch to upstream master)

More Work to do (Pull Request not accepted)

  • Go to Step 5 in Git Rebase flow.

Pull Request Accepted?

  1. git checkout master
  2. git pull --rebase upstream master
  3. git push origin master

Totally done

  1. git checkout master
  2. git branch -d feature-branch

Troubleshooting

  • git remote -v to see remote origins
  • git remote add upstream https://github.com/mathematicalthinking/encompass.git
  • if existing upstream git remote rm upstream

Helpful links

Desmos API Geogebra API

Testing

We utilize Cypress for end to end testing To run the tests restart the server in test mode npm run test and then in a new console tab npm run cypress

  • NB the create-react-app server still needs to be running on port 3000

Project structure

Frontend (client)

๐Ÿ“ src | -- App.js | -- ๐Ÿ“ Routes | -- ๐Ÿ“ Containers | -- ๐Ÿ“ Layout | -- ๐Ÿ“ Components

There are one million and one ways to structure a react app. I've found the following structure to work well enough.

App.js serves as the entry point of the application and exposes the Redux store and react-router to the rest of the application.

๐Ÿ“ Routes

There are two primary routes. / for guest users and /myVMT for logged in users.

๐Ÿ“ Containers

Containers come in one of two forms. Either they inject props into a component from the redux store. Or they manage shared local (i.e. non-redux) state for two or more react components (or they do both). You can find an example of the former here and the latter here

๐Ÿ“ Layout

The layout directory is for organizing...layouts. Each file roughly corresponds to a page.

๐Ÿ“ Components

The reusable parts of the app live here

Additional notes

This project was bootstrapped with this template refer to its README for additional information regarding the directory structure.

vmt's People

Contributors

danieljkelly avatar okputadora avatar philipwisner avatar tayloredwebsites avatar

Watchers

 avatar

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.