Git Product home page Git Product logo

5calls's Introduction

5calls

This is where development of the 5calls.org frontend happens. Please check the issue list, pull requests and contributor guidelines before starting work so we can ensure you're not duplicating work! We're all volunteers and want to treat the time you dedicate to the site with respect. Ping @make5calls on Twitter with your email to get an invite to our Slack.

Table of Contents

Development

To make display changes, you likely won't need to handle the application server, and can instead rely on the production version of 5calls, running at 5calls.org -- more on this below.

The front end is written in Javascript using the Choo framework. The application server back end -- for data processing -- is written in Go.

5calls requires Node.js and Go version 1.7+. If you are on a Mac you'll need to install XCode and the CLI tools as well.

Front End

Front end requirements must first be installed with:

npm install

To start developing:

npm start

This command will:

  • compile front end static assets
  • spin up an HTTP server for serving the site files on port tcp/8000.
  • watch and recompile front end files when any changes are detected

To package assets for deployment:

npm run deploy

This command also builds the assets, applies additional transforms on the assets (such as minification of the JavaScript sources), but does not watch for changes.

To turn on/off debug mode, which adds some reset buttons throughout the interface, run the following in your console:

localStorage['org.5calls.debug'] = 'true' // turn on debug mode
localStorage['org.5calls.debug'] = 'false' // turn off debug mode

Application Server

If you'd like to help us work on the backend code as well (written in Go), please reach out to join our Slack!

Quality Assurance

JavaScript Unit Tests

JavaScript unit tests are written using Mocha and Chai and run in the Karma test runner. You must have the Google Chrome browser installed to run them.

Run the unit tests with:

npm test

If you are working on JavaScript code, you can make the tests automatically re-run whenever you change a relevant file with:

npm run test:watch

End-to-end Integration Tests

End-to-end (e2e) integration testing is done using Selenium with Mocha and Chai using the WebdriverJS API.

To run the e2e tests:

  1. Start the front end application in a command window with the npm start command.
  2. In a second command window run the tests using the command npm run test:e2e.

JavaScript Linting

Linting of the 5 Calls JavaScript code is done using ESLint with rules defined in .eslintrc.json. The following command runs ESLint: gulp eslint

Contributor Guidelines

For the guide to contributing to this repository, please see CONTRIBUTING.md file.

Contributors

Other Client Projects

5calls's People

Contributors

agjohnson avatar beausmith avatar benjaffe avatar bernardwang avatar blip-lorist avatar bradfitz avatar buddhamagnet avatar capndesign avatar cdoremus avatar colemancollins avatar dektar avatar ejlangev avatar greggraf avatar jadametz avatar jameshome avatar jasonm avatar josharian avatar mr0grog avatar nickoneill avatar oderby avatar rboyce avatar schraj avatar zachgawlik avatar

Stargazers

 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.