44 lines
3.0 KiB
Markdown
Executable File
44 lines
3.0 KiB
Markdown
Executable File
# BRAID v1.3.1
|
|
> Websocket server for the Measure platform
|
|
|
|
[](https://semaphoreci.com/yardstick/braid)
|
|
[](https://codeclimate.com/repos/5dc9919be9fca801620102e9/maintainability)
|
|
|
|
## Essential Information:
|
|
* braid uses [mocha (test framework)](https://www.npmjs.com/package/mocha), [chai (BDD/TDD assertion library)](https://www.npmjs.com/package/chai), [sinnon (spies, stubs, and mocks)](https://www.npmjs.com/package/sinon), [nyc (code coverage calculator)](https://www.npmjs.com/package/nyc) for our unit testing. Get aquainted with these packages to have a smooth unit testing experience.
|
|
* for schema management/validation, braid uses [joi](https://github.com/hapijs/joi/).
|
|
* For web sockets braid uses [ws](https://www.npmjs.com/package/ws)
|
|
* braid uses [typescript](https://www.npmjs.com/package/typescript) for our primary code development because of it's opinionated type management among other things. Get a good understanding of what typescript is, it's benifits, drawbacks, and dev flow
|
|
|
|
## Setting up
|
|
* install [npm](https://www.npmjs.com/get-npm)
|
|
* install typescript globally (`npm i -g typescript`). This is important because it is needed to transpile, so you can run your changes locally (using command `tsc`)
|
|
* run `npm install`
|
|
* download the braid repo into a folder in the same directory as the primary yardstick folder
|
|
|
|
## Building to Docker Hub (**this has been retired, new methodolgy will be outlined soon**)
|
|
* run `./build`
|
|
* when complete you'll see something like this `Your new docker tag: yardstick/braid:tagid`
|
|
* copy this tag id, and in the yardstick `docker-compose.yml` file change the `image` field to have the new tag, for example:
|
|
```
|
|
braid:
|
|
image: yardstick/braid:{add the new tag here}
|
|
environment:
|
|
VIRTUAL_HOST: ysbraid.localhost
|
|
HTTPS_METHOD: noredirect
|
|
```
|
|
* once complete and confirmed to function, create a new PR for the measure repo, with the new tag and await ultimate judgement
|
|
|
|
## Local Development
|
|
* `vagrant up` in the primary yardstick folder
|
|
* run the command `compose stop braid && compose rm braid && tsc && compose build braid && compose up -d` in the braid folder
|
|
* `compose stop` stops the default braid container that `vagrant up` builds
|
|
* `compose rm braid` removes the default braid container
|
|
* `tsc` transpiles the typescript in braid into javascript
|
|
* `compose build braid` builds the braid image based on the latest transpiled javascript files
|
|
* `comopose up -d` starts the braid container based on the files in the braid folder, overriding the default braid build container
|
|
* you can see if braid is running by typing in `https://ysbraid.localhost`
|
|
* to connect to braid you need to use the url `ws://ysbraid.localhost`
|
|
* to test your changes before pushing you can run `tsc && npm test`
|
|
* to check code coverage run `nyc npm test`, we must maintain above 90% code coverage
|