README.mdView |
---|
| 1 | +# Craftworks todomvc |
| 2 | + |
| 3 | +## stack |
| 4 | + |
| 5 | +- task runner: [npm scripts](http://substack.net/task_automation_with_npm_run) |
| 6 | +- client bundler: [browserify](https://github.com/substack/browserify-handbook) |
| 7 | + - es6/jsx transform: [babelify](https://www.npmjs.com/package/babelify) |
| 8 | + - css transform: [sheetify](https://www.npmjs.com/package/sheetify) |
| 9 | +- utility functions: [lodash](http://lodash.com/docs) |
| 10 | +- directory structure: |
| 11 | + - `/app/` |
| 12 | + - symlink `/app` to `/node_modules/app` |
| 13 | + - e.g. |
| 14 | + - `/app/package.json` |
| 15 | + - `/app/client.js` |
| 16 | + - `/app/server.js` |
| 17 | + - `/app/thing/schema.js` |
| 18 | + - `/app/thing/service.js` |
| 19 | + - `/app/thing/client.js` |
| 20 | + - `/app/thing/routes.js` |
| 21 | + - `/app/thing/views/thing-list.js` |
| 22 | + - `/app/thing/views/thing-list.css` |
| 23 | + - `/app/thing/tests/views/thing-list.js` |
| 24 | + - `/app/list-view/index.js` |
| 25 | + - always require top-down (`require('things/schema')`) instead of relative. |
| 26 | + - `/config/{ NODE_ENV }.js` |
| 27 | +- configuration: [feathers-configuration](https://www.npmjs.org/package/feathers-configuration) |
| 28 | +- data model: [tcomb](https://github.com/gcanti/tcomb) |
| 29 | +- database: [knex](https://www.npmjs.com/package/knex) |
| 30 | +- data validator: [tcomb-validator](https://github.com/gcanti/tcomb-validation) |
| 31 | +- api service: [feathers-knex](https://www.npmjs.com/package/feathers-knex) |
| 32 | +- api authentication: [feathers-authentication](https://www.npmjs.org/package/feathers-authentication) |
| 33 | +- api transport: [primus](https://www.npmjs.com/package/primus) |
| 34 | +- api client: [feathers-client](https://www.npmjs.com/package/feathers-client) |
| 35 | +- client async actions: [redux-thunk](https://www.npmjs.com/package/redux-thunk) |
| 36 | +- client actions: [redux-tcomb](https://www.npmjs.com/package/redux-tcomb) |
| 37 | +- client action-types: [create-action-types](https://www.npmjs.com/package/create-action-types) |
| 38 | +- client reducers: [redux-tcomb](https://github.com/gcanti/redux-tcomb) |
| 39 | +- client getters: [reselect](https://www.npmjs.com/package/reselect) |
| 40 | +- client store: [redux](https://www.npmjs.com/package/redux) |
| 41 | +- client router: [redux-router](https://www.npmjs.com/package/redux-router) |
| 42 | +- client views: [react](https://www.npmjs.com/package/react) |
| 43 | +- client forms: [tcomb-form](https://github.com/gcanti/tcomb-form) |
| 44 | +- tests: [ava](https://www.npmjs.com/package/ava) |
| 45 | + |
| 46 | +refs: [0](http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html), [1](http://blog.workshape.io/the-3ree-stack-react-redux-rethinkdb-express-js/) |