WB todoMVC MASTER Kata (a work in progress)

comments/suggestions/critiques welcome/collaboration.

Will Barnes
Jul 3, 2017 · 2 min read
// current version - v0.0.1.1

Goal

Document & create a todoMVC kata focusing on clean abstractions, best practices, scalability, and well defined tools.

About the Author

My name is Will. I’ve recently begun winding down my daily involvement in my company. As a result I’ve set myself to the task of completely revamping my web dev skill set.

I’m very interested in the nodejs ecosystem. Will be using the standard todoMVC app as a sandbox to test different tech & best practices.

Update 7/19

OpenAPI3 (aka swagger3) is just about ready for official release. This means steps 1.1–1.x will need to be rewritten soon. The folks over at swagger-api are working hard updating the many swag tools to work with the latest spec.

KATA — WB todoMVC (over engineered)

  1. Document driven apis — Swagger
    [initial steps complete]
    [pausing work on this until tools for OpenAPI3.0 are released]
    ** CREDIT: Inspired by and most pulled from Will Button.
    ** 1.1 install swagger and initialize hello world app
    ** 1.2 run swagger editor & server in mock mode
    ** 1.3 install CORS & implement via app.js
    ** 1.4 define Todo data model, /todo path, and define GET endpoint.
    ** 1.5 define /todo POST endpoint.
    ** 1.6 define /todo/{id} path and define GET endpoint.
    ** 1.7 define /todo/{id} DELETE endpoint.
    ** 1.8 define /todo/{id} PUT endpoint.
    // …. more to come….
  2. Database config & management — PSQL, dotenv, & Knex
    // …. more to come ….
    ** 2.1 create PSQL app user & empty database
    ** 2.2 dotenv install & config with PSQL connect data
    ** 2.3 install knex / knex-migrate
    ** 2.4 init knex-migrate & create Todo table via knex-migrate
    // how does knex-migrate versioning work?
    // …. more to come ….
  3. Middleware & Routing — Bookshelfjs, Expressjs, knexjs (… pending)
  4. Route unit testing — mocha/chai (… pending)
  5. Stress testing — jmeter (… pending)
  6. // Frontend will be some collection of React/Redux tools

Road Map

v0.1.0.0 — in progress

  • Monolith
  • document driven api
  • Database config & management
  • Middle ware w/routing
  • Unit testing your api
  • Stress testing your api
  • Frontend tool selection — React + Redux + additional frontend tools tbd
  • // probably need to write about github for this part of the app develop

v0.2.0.0

  • Deploying to cloud (most likely amazon)

v0.3.0.0

  • Introducing CI (continuous integration)

v0.4.0.0

  • introducing micro-services — most likely going to use Hydra

v0.5.0.0

  • ? database sharding? adding UUIDs to an existing an existing database via knex migrations?

v1.0.0.0

  • final goals to be determined

References

Will Barnes

Written by

An intelligent fool, stubbornly optimistic, relentlessly persistent, tech-cofounder at cProject

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade