/whimsy-board-agenda-nodejs

A spike exploring the feasibility of converting the Whimsy board agenda tool from Ruby/Sinatra/Vue to Node.js/Express/React.

Primary LanguageJavaScript

Build Status

Quick Start

To run this, pick from the following:

Updating to the latest can be done as follows:

git pull; yarn install; yarn dev

The (currently modest, but growing) test suite can be run via:

yarn test

Architecture

The server is in src/server.js, with the application logic starting in src/server/router.js. In development mode, the server stores its files in a work directory, and this contains things like svn checkouts and caches. In production this likely will be placed in /srv. At any time, you can blow away the work directory (even while the server is running) and it will promptly be repopulated with fresh data.

In development mode, the client starts in ./src/index.js, again with the main line application logic starting in ./src/client/router.js. In production, the startup entry point is likely going to be different, and will make use of server side rendering.

Client reducers (slight misnomer here, but that's what Redux calls them) maintain a Redux store based on actions that are dispatched. Individual React components (e.g. pages and buttons then subscribe to just the data they need, and update themselves when this data changes.

Developer tools, demo, and documentation

Once you launch the agenda, pressing "D" will bring you to a page where you can access developer tools, documentation, and from there, a demo.

The walk-throughs are also available via GitHub.