Advanced Express Web Application Development will guide you through the process of building a nontrivial, single-page application using Express.
Express is a fast, unopinionated, minimalist, and flexible web application framework for Node.js written by TJ. Holowaychuk. It was inspired by Sinatra , a web framework for Ruby. Express provides a robust set of features for building single, multi-page, and hybrid web applications and has quickly become the most popular web development framework for node. Express is built on top of an extensible HTTP server framework—also developed by TJ. Holowaychuk—called Connect. Connect provides a set of high performance plugins known as middleware. Connect includes over 20 commonly used middleware, including a logger, session support, cookie parser, and more.
This book will guide you through the process of building a single-page application called Vision; a dashboard for software development projects that integrates with GitHub to give you a single-screen snapshot of your software development projects issues and commits. This project will allow us to demonstrate the advanced features Express has to offer and will give us the opportunity to explore the kind of issues encountered in a commercial development and production deployment of a node/Express application.
We will now begin the process of building a Vision application. We will start from scratch with a test-first approach. Along the way, we will explore some best practices and offer tips for when developing web applications with node and Express.
The Vision application will include the following features:
Feature: Heartbeat As an administrator I want to visit an endpoint So that I can confirm the server is responding Feature: List projects As a vision user I want to see a list of projects So that I can select a project I want to monitor Feature: Create project As a vision user I want to create a new project So that I can monitor the activity of multiple repositories Feature: Get a project As a vision user I want to get a project So that I can monitor the activity of selected repositories Feature: Edit a project As a vision user I want to update a project So that I can change the repositories I monitor Feature: Delete a project As a vision user I want to delete a project So that I can remove projects no longer in use Feature: List repositories As a vision user I want to see a list of all repositories for a GitHub account So that I can select and monitor repositories for my project Feature: List issues As a vision user I want to see a list of multiple repository issues in real time So that I can review and fix issues Feature: List commits As a vision user I want to see a list of multiple repository commits in real time So that I can review those commits Feature: Master Page As a vision user I want the vision application served as a single page So that I can spend less time waiting for page loads Feature: Authentication As a vision user I want to be able to authenticate via Github So that I can view project activity
The following screenshot is of our Vision application; it contains a list of projects, repositories, commits, and issues. The upper-right corner has a login link that we will use for authentication:
18.188.90.148