Backend Technologies - TeraLogics/TotalBriecall GitHub Wiki

Bluebird (Open Source)

Bluebird is an A+ promises library. We use it to help create synchronous operations in a completely asynchronous environment.

Chai (Open Source)

Chai is a BDD / TDD assertion library for node and the browser. We use this library with for assertions in our unit tests.

Coveralls (Publicly Available)

Coveralls is a code coverage utility. We use it to verify that our unit tests are covering all of the code we write.

Code Climate (Publicly Available)

Code Climate is a product that analyzes code in your repositories for security issues, known pitfalls, and development standards. We use it to generate a score of the overall health of the code and keep up to date with how the overall health of our code is.

Apidoc.js (Open Source)

Apidoc.js is an API documentation framework that uses JSDoc standards to dynamically generate API documentation. This is ideally a post build step to dynamically generate API documentation; however, in this project the API documentation is baked into the repository. See Backend Design Evolution for more information.

JSHint (Open Source)

JSHint is a community-driven tool to detect errors and potential problems in JavaScript code and to enforce your team's coding conventions. We use it as part of our continuous integration process to ensure that only code that conforms to our teams coding stanrdards is deployed.

David (Publicly Available)

David is a dependency manager. It keeps track of our Node.js dependencies and watches for newer versions. We use this to keep aware of updates to our dependencies so we can have the latest features and security updates.

Express (Open Source)

Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. We use this as our primary web application server to serve our API and web content.

Heroku

Heroku is a leading PaaS solution allowing customers to focus on application development, not the infrastructure behind it. We use this as our PaaS solution. We chose it because of its easy integration with other tools, such as GitHub and Travis CI.

Mocha (Open Source)

Mocha is a feature-rich JavaScript test framework running on node.js and the browser, making asynchronous testing simple. We use this as the core of our unit testing framework.

MongoDB (Open Source)

MongoDB is a document based data store. We use it for session handling and as our primary data store.

New Relic (Paid)

New Relic is a software/system analytics and data collection platform which provides real-time and historical data about your software and system. We use this as a piece of our Continuous Monitoring solution.

Node.js (Open Source)

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient - perfect for data-intensive, real-time applications that run across distributed devices. This is used as our primary application container.

Pingdom (Paid)

Pingdom is a website monitoring tool which keeps track of uptime. We use this as a piece of our Continuous Monitoring solution.

Sinon (Open Source)

Sinon is a library that provides standalone test spies, stubs, and mocks for JavaScript. We use it to help mock objects in our unit tests.

StatusPage.io (Paid)

StatusPage.io is a tool which allows our customer to see an externally hosted status page for the overall health of our site. 'Is the site up?' is the question this solution answers. It provides an easy way for users to get notifications of downtime and a platform for operations to communicate with simple statuses. We use this as a piece of our Continuous Monitoring solution.

Supertest (Open Source)

Super Test provides a high-level abstraction for testing HTTP, while still allowing you to drop down to the lower-level API provided by super-agent. We use this to help mock HTTP objects in our unit tests so we can test our route controllers.

Travis CI (Open Source Hosted)

Travis CI is a hosted continuous integration platform designed to help open source projects test their code. We use Travis CI as our continuous integration solution. It also has other integration which is nice too.

Underscore (Open Source)

Underscore is a JavaScript library that provides many useful, functional programming helpers without extending any built-in objects. We use this as a core piece of our application for general purpose, collection, iteration, and object manipulation.