]> git.r.bdr.sh - rbdr/forum/blobdiff - doc/README.md
Start migration to supabase
[rbdr/forum] / doc / README.md
index d3119e050f59b162c6cc6028e91d13449cfb6682..0d14a406a13e2fa6e0a2a4f75bf0ef88470861e9 100644 (file)
@@ -1,88 +1,32 @@
-## Modules
+forum / [Exports](modules.md)
 
-<dl>
-<dt><a href="#module_Forum">Forum</a></dt>
-<dd><p>The Forum class is the main entry point for the backend application.</p>
-</dd>
-</dl>
+# Forum
 
-## Typedefs
+A forum for the year 3000.
 
-<dl>
-<dt><a href="#tForumBackendConfiguration">tForumBackendConfiguration</a> : <code>object</code></dt>
-<dd><p>The main configuration object for the Forum backend. It will be used to
-initialize all of the sub-components. It can extend any property of
-the forum object.</p>
-</dd>
-<dt><a href="#tJWTConfiguration">tJWTConfiguration</a> : <code>object</code></dt>
-<dd><p>Configures the behavior of the JWT token.</p>
-</dd>
-<dt><a href="#tRethinkDBConfiguration">tRethinkDBConfiguration</a> : <code>object</code></dt>
-<dd><p>Information required to connect to the rethinkDB server</p>
-</dd>
-</dl>
+## What you will need to get started
 
-<a name="module_Forum"></a>
+This project uses [node][node] for most of its development processes.
+Once you have node installed according to the instructions there, run
+`npm install` from the root of the project.
 
-## Forum
+For local development serve the page by running `npm run dev` from the
+root of the project.
 
-The Forum class is the main entry point for the backend application.
+This project depends on the [forum server][forum-server], so make sure
+that's running before starting.
 
-| Param  | Type                                                                   | Description                                       |
-| ------ | ---------------------------------------------------------------------- | ------------------------------------------------- |
-| config | [<code>tForumBackendConfiguration</code>](#tForumBackendConfiguration) | the initialization options to extend the instance |
+## Testing
 
-<a name="module_Forum+run"></a>
+You can run tests with `npm test`. The tests use `testing-library`, `pact`,
+and `jest`.
 
-### forum.run()
+Here's some short guidelines:
 
-Initializes the application and starts listening. Also prints a
-nice robotic banner with information.
+- Every component that receives props or changes state should be tested.
+- Test expected outcomes, not implementation details.
+- Avoid mocking unless it's an external call
+- Stores that interact with the API should be tested using pact
 
-**Kind**: instance method of [<code>Forum</code>](#module_Forum)  
-<a name="tForumBackendConfiguration"></a>
-
-## tForumBackendConfiguration : <code>object</code>
-
-The main configuration object for the Forum backend. It will be used to
-initialize all of the sub-components. It can extend any property of
-the forum object.
-
-**Kind**: global typedef  
-**Properties**
-
-| Name              | Type                                                             | Default                         | Description                                                      |
-| ----------------- | ---------------------------------------------------------------- | ------------------------------- | ---------------------------------------------------------------- |
-| [port]            | <code>number</code>                                              | <code>1978</code>               | the port where the app will listen on                            |
-| [staticDirectory] | <code>string</code>                                              | <code>&quot;static&quot;</code> | the path, relative to the project root, where static assets live |
-| [ttl]             | <code>number</code>                                              | <code>180</code>                | the time in seconds that posts remain alive                      |
-| rethinkDB         | [<code>tRethinkDBConfiguration</code>](#tRethinkDBConfiguration) |                                 | the configuration to connect to the rethinkDB server             |
-| jwt               | [<code>tJWTConfiguration</code>](#tJWTConfiguration)             |                                 | the configuration for the JWT authentication                     |
-
-<a name="tJWTConfiguration"></a>
-
-## tJWTConfiguration : <code>object</code>
-
-Configures the behavior of the JWT token.
-
-**Kind**: global typedef  
-**Properties**
-
-| Name       | Type                | Default            | Description                        |
-| ---------- | ------------------- | ------------------ | ---------------------------------- |
-| [duration] | <code>number</code> | <code>86400</code> | the duration of the JWT in seconds |
-| secret     | <code>string</code> |                    | the secret used to sign the JWT    |
-
-<a name="tRethinkDBConfiguration"></a>
-
-## tRethinkDBConfiguration : <code>object</code>
-
-Information required to connect to the rethinkDB server
-
-**Kind**: global typedef  
-**Properties**
-
-| Name   | Type                | Default           | Description                              |
-| ------ | ------------------- | ----------------- | ---------------------------------------- |
-| host   | <code>string</code> |                   | the location of the rethinkDB host       |
-| [post] | <code>string</code> | <code>6379</code> | port where rethinkDB server is listening |
+[node]: https://nodejs.org/en/
+[forum-server]: https://gitlab.com/rbdr/forum-server