technology-stack
v1.0.2
Published
Clarity for all Technology used in DWYL products & client work.
Downloads
3
Readme
Technology Stack
This document describes the full technology stack we are using in dwyl.
If you have any questions please ask
Overview
The following diagram is an overview of our stack:
Note: To edit/improve this diagram: https://github.com/dwyl/technology-stack/issues/1
We have produced a complete beginners guide for each of the components in our stack. (see below)
Open Source Projects We Use
For Us By Us
We craft code to scratch our own itch and everything we do is always Open Source
| Project | Used For | Build Status | Test Coverage | Dependency Status | Tutorial | | --------|----------|:-----:|:--------:|:------------:|-------| | env2 | Loading Environment Variables | | | | learn-environment-variables | | esta | ElasticSearch CRUD | | | | learn-elasticsearch | | hapi-auth-jwt2 | Authentication & Sessions | | | | learn-json-web-tokens | | hapi-error | Human-Friendly Error Messages | | | | hapi-error#why | | hapi-postgres-connection | Postgres Connection Pooling | | | | learn-postgresql | | hapi-riot | Server-side (Fast) Rendering of Riot Tags | | | | learn-riot | | hapi-redis-connection | Simplify Redis Connection | | | | learn-redis |
Note: to update this table, use the script:
generate_dependency_table.js
Dependencies (projects built by people we trust)
- Node.js - the most popular JavaScript runtime for easily building fast, scalable network applications. Lightweight and efficient, perfect for data-intensive real-time apps. http://nodejs.org/
- Hapi.js - A rich web framework for building applications and services. https://github.com/dwyl/learn-hapi
- Socket.io - a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and server. Socket.io lets us send data to/from everyone connected to our app(s) without having to refresh the web page. http://socket.io/
- Riot.js - is the most light-weight user-interface (UI) framework available which is compatible with IE 8/9 and has good server-side rendering (which means pages load faster for slow devices like budget smart phones). see: https://github.com/dwyl/learn-riot
- Redis - the most popular in-memory data store which is essential
for building the fastest possible apps. read more: https://github.com/dwyl/learn-redis - ElasticSearch - the most feature-rich search engine. we use it to find things fast. Learn more: https://github.com/dwyl/learn-elasticsearch
Development Dependencies
We carefully select and only use well-maintained "pure" JavaScript modules in our development toolchain:
- Tape for testing: https://github.com/dwyl/learn-tape
- Istanbul for Code Coverage: https://github.com/dwyl/learn-istanbul
- Pre-commit for ensuring all commits pass strict quality checks before being pushed to GitHub. see: https://github.com/dwyl/learn-pre-commit
- GoodParts "linting" and checking code style is consistent: https://github.com/dwyl/goodparts
- CodeCov for detailed test/code coverage stats https://github.com/dwyl/learn-istanbul#tracking-coverage-as-a-service
- CodeClimate for tracking code quality: https://github.com/dwyl/learn-codeclimate
Continuous Integration
We use and recommend Travis-CI for Continuous Integration (CI). If you or anyone on your team are new to Travis-CI, checkout our beginners guide: https://github.com/dwyl/learn-travis