flow.ci Weekly Mashup 7 — Nightwatch.js, Node.js, PHP, Android, Docker, DevOps, and JS Highlights

This week, we cover functional testing with Nightwatch.js, building a web server, Wire for Android, building a Telegram bot with PHP, creating a URL shortener with node.js, and more in development related topics.
JavaScript Functional Testing with Nightwatch.js
The purpose of functional testing is to ensure that an application is acting as expected from the user’s perspective. Numerous scenarios are recreated and tested, such as logging into a platform, uploading a picture, or to sending a message to a friend. Nightwatch.js is a node.js powered end-to-end testing framework that allows to create scenarios and run them automatically by a browser. You can learn how to install, configure, write test cases, and improve your tests for nightwatch.js from sitepoint.com’s new tutorial.
Build Your Own Web Server
It is commonly known that every time you visit a website you access a web server. Even though we communicate with web servers countless time a day, most of us don’t know how they work and maybe never thought of building their own. With Black Bytes recent snippet-rich tutorial you can take matters into your own hand and learn how to build your own web server. The tutorial includes:
- What an HTTP request looks like
- How to listen for connection
- How to parse requests (break requests down to smaller components)
- Preparing and sending the response
- How to Avoid path traversal
Visit the Black Bytes site and build your own!
How to Build and Deploy Your Own Wire Client for Android with flow.ci

Last month, the secure messaging service Wire has gone open source and encouraged users to build compatible clients. In a CI sense, we have already joined in. We forked the Wire Android client (used the original code), built it on flow.ci, deployed it to fir.im beta app distribution platform. Read the tutorial here.
Build URL Shortener with Node.js, MongoDB, and Hapi.js
URL shortener services started to appear on the web in the early 2000’s and have become popular with the rise of Twitter and other services with a low character limit. In their recent guideline, Codetuts provides a detailed walkthrough to build a URL shortener app with node.js, MongoDB, and Hapi.sj and deploy it to Heroku. Read the tutorial and check out the sample repository on Github.
Scaling Constraints of Languages
Choosing the right language for the different type of services and server applications can be quite challenging. Developers often lean towards choosing languages that they are more familiar with. However, selecting the languages to use should be based on the technical nature of the application that you are planning to develop. Kore Nordmann reviewed the pros and cons of PHP, Node.js, Go, and Java from a scaling aspect.
Make a Telegram Bot with PHP

Chat bots are a great trend this year, from Facebook to Slack all major platforms supporting it in one form or another. Telegram is no different, it also has a powerful open bot API. If you want try making your own follow this step-by-step tutorial from tutsplus.com. The article will help you learn:
- Creating a bot with BotFather
- Connecting to Botan Analytics
- Creating an SSL Webhook
- Building a Database
- Choosing PHP Library
- And Add the Bot to a store.
Tear Down the Dev Silos

The duality of development and operations are often cited as a major obstacle for organizations walking down of the rocky road of DevOps. However, the complicated but fundamental relationships among development teams are often overlooked. Large organizations usually build their teams around single products or features. While collaboration inside a team (silo) is normally fairly smooth, integrating features from another team’s product could be a nightmare. TechBeacon’s article discusses how to tear down barriers between development teams to build a happier and healthier organization.
Analyze Docker projects on Github with BigQuery

You might know that public projects on Github can be analyzed with BigQuery, which is a fully managed big data analytics platform from Google. In a post on Java Bien! blog, David Gageot explains what method he used to count and analyze the Docker projects on Github.
flow.ci is a hosted continuous integration and delivery service, designed for teams who need a flexible and scalable solution but prefer not to maintain their own infrastructure. In flow.ci, development pipelines or automation workflows are simply called flows. In a flow, every step is a plugin that can be added by two clicks. You can add as many steps to your flow as you need, and there is no time limit on builds.