Skip to content
Permalink
Browse files

Update user documentation

  • Loading branch information...
ehmicky committed Dec 13, 2017
1 parent 5563835 commit 4d0e17f1b423a8f7fbdab2d3a06cae35ab0498a2
Showing with 82 additions and 77 deletions.
  1. +1 −54 CONTRIBUTING.md
  2. +1 −9 README.md
  3. +0 −11 ROADMAP.md
  4. +6 −0 docs/dev/README.md
  5. +18 −0 docs/dev/ROADMAP.md
  6. +23 −0 docs/dev/coding_style.md
  7. +27 −0 docs/dev/development.md
  8. +6 −3 docs/dev/terminology.md
@@ -1,54 +1 @@
# Dev server

First `npm install`.

An example configuration is available at `/examples`. To start a server with
that configuration, use either:
- `npm start`: production mode
- `npm run watch`: dev mode.
Auto-reloads, using [Nodemon](https://github.com/remy/nodemon).
Allows debugging in Chrome developer tools, using `node --inspect`.
- `npm run debug`: like `npm start` but using `node --inspect-brk`,
i.e. will put a breakpoint on server start.

A local HTTP server will be spawned at `http://localhost:5001`.

# Testing

There is no automated testing yet.

`npm test` will run linting, using [ESLint](http://eslint.org/)
for general linting,
and also checking code duplication.

# Coding style

We follow the [standard JavaScript style](https://standardjs.com), except
for semicolons and trailing commas.

Additionally, we enforce a pretty strong functional programming style with
[ESLint](http://eslint.org/), which includes:
- no complex or big functions
- no object-oriented programming
- immutability everywhere
- pure functions
- no complex loops or structures

Also we prefer:
- named arguments over positional
- async/await over raw promises or callbacks
- destructuring
- `...object` over `Object.assign()`

# Tooling

We are using [editorconfig](http://editorconfig.org/),
so please install the plugin for your IDE.

# Troubleshooting

- Please use Node.js v9.2.1

# Terminology

See [here](docs/dev/terminology.md)
See the [developer's documentation](docs/dev/README.md).
@@ -1,4 +1,4 @@
[![js-standard-style](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard)
[![js-standard-style](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://standardjs.com/)

This generates a full-featured web API from a
[configuration file](docs/server/configuration/configuration.md#configuration-file).
@@ -59,17 +59,9 @@ This generates a full-featured web API from a
- [plugins](docs/server/plugins/README.md)
- [custom logic](docs/server/configuration/functions.md) can be added in JavaScript

# Missing features

See the [roadmap](ROADMAP.md).

# Usage

You can learn:
- how to run the server [here](docs/server/usage/README.md).
- how to perform client requests against this server
[here](docs/client/rpc/README.md)

# Contribute

See [here](CONTRIBUTING.md).

This file was deleted.

@@ -0,0 +1,6 @@
# Development guide (table of contents)

- [How to start the dev environment](development.md)
- [Coding style](coding_style.md)
- [Terminology](terminology.md)
- [Roadmap](ROADMAP.md)
@@ -0,0 +1,18 @@
Some of the major planned features, by priority order:
- Proper error reporting
- Aggregation queries
- Tasks
- Testing
- HTTPS and HTTP/2
- Static assets
- Compatibility layer
- Orphans handling
- Polymorphism
- Real-time and concurrency conflicts
- Views
- Authentication
- Logging/monitoring dashboard
- Security
- Caching
- Performance optimization
- Client generation
@@ -0,0 +1,23 @@
# Coding style

We follow the [standard JavaScript style](https://standardjs.com), except
for semicolons and trailing commas.

Additionally, we enforce a pretty strong functional programming style with
[ESLint](http://eslint.org/), which includes:
- no complex/big functions/files
- no object-oriented programming
- immutability everywhere
- pure functions
- no complex loops nor structures

Also we prefer:
- named arguments over positional
- async/await over raw promises or callbacks
- destructuring
- `...object` over `Object.assign()`

# Tooling

We are using [editorconfig](http://editorconfig.org/), so please install the
plugin for your IDE.
@@ -0,0 +1,27 @@
# Dev server

First `npm install`.

An example configuration is available at `/examples`. To start a server with
that configuration, use either:
- `npm start`: production mode
- `npm run watch`: dev mode.
Auto-reloads, using [Nodemon](https://github.com/remy/nodemon).
Allows debugging in Chrome developer tools, using `node --inspect`.
- `npm run debug`: like `npm start` but using `node --inspect-brk`,
i.e. will put a breakpoint on server start.

A local HTTP server will be spawned at `http://localhost:5001`.

# Testing

There is no automated testing yet.

`npm test` will:
- run linting, using [ESLint](http://eslint.org/)
- check for code duplication
- check for dead links in the documentation

# Troubleshooting

- Please use Node.js v9.2.1
@@ -1,7 +1,10 @@
# Concepts

This project is rather generic and conceptual, so we define specific words
in order to avoid any confusion
in order to avoid any confusion between similar concepts.

Also we try to enforce using the same words between the code base, the API and
the documentation.

## Users

@@ -30,8 +33,8 @@ Network [protocol](../client/protocols/README.md), e.g. HTTP.
## GraphQL method

`query` or `mutation`. The first is for
[`find`](../client/request/crud.md#find-command) CRUD command, the second for all
others.
[`find`](../client/request/crud.md#find-command) CRUD command, the second for
all others.

## JSON-RPC method

0 comments on commit 4d0e17f

Please sign in to comment.
You can’t perform that action at this time.