Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thenativeweb/wolkenkit-boards
wolkenkit-boards is a team collaboration application.
https://github.com/thenativeweb/wolkenkit-boards
cqrs ddd event-sourcing javascript nodejs wolkenkit
Last synced: 3 months ago
JSON representation
wolkenkit-boards is a team collaboration application.
- Host: GitHub
- URL: https://github.com/thenativeweb/wolkenkit-boards
- Owner: thenativeweb
- License: agpl-3.0
- Created: 2017-08-30T16:01:54.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-01T09:22:58.000Z (over 1 year ago)
- Last Synced: 2024-07-18T03:44:42.783Z (4 months ago)
- Topics: cqrs, ddd, event-sourcing, javascript, nodejs, wolkenkit
- Language: JavaScript
- Homepage: https://www.wolkenkit.io
- Size: 3.31 MB
- Stars: 249
- Watchers: 15
- Forks: 8
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# wolkenkit-boards
wolkenkit-boards is a tool for collaboratively organizing notes.
![wolkenkit-boards](images/preview.gif "wolkenkit-boards")
It allows you to mount public and private boards and attach notes and images to them. Its backend is powered by [wolkenkit](https://www.wolkenkit.io/).
## What is wolkenkit?
> wolkenkit is a CQRS and event-sourcing framework for JavaScript and Node.js. wolkenkit uses an event-driven model based on DDD to setup an API for your business in no time. This way, wolkenkit bridges the language gap between your domain and technology.
>
> [wolkenkit.io](https://www.wolkenkit.io/)For more details on wolkenkit see the [wolkenkit documentation](https://docs.wolkenkit.io).
## Preparing the application
As wolkenkit-boards uses authentication, you first need to setup an identity provider. In this section we are going to configure [Auth0](https://auth0.com), but you can use any identity provider - as long as it supports OpenID Connect.
### Setting up the identity provider
Now, create an account at Auth0. For your first steps, the free plan is fine, so there is no need to add your credit card right now.
Once you have created your account you need to register a client application that represents your instance of wolkenkit-boards:
- Login to Auth0, which takes you to the dashboard.
- Click `Clients` in the navigation.
- Click `Create client`.
- Select `Single Page Applications`.
- Add `http://local.wolkenkit.io:8080/` to the list of `Allowed Callback URLs`.### Getting the required information
In the view that shows your client, you can find the `Client ID`. Copy its value, you will need it later.
Additionally, you need to get the certificate for your client:
- In the `Clients` view, scroll down, and click `Show Advanced Settings`.
- Scroll to the `Certificates` section and copy the contents of the `Signing Certificate` field.
- Paste the copied content into the `server/keys/auth0/certificate.pem` file.## Running the application
To run a wolkenkit application, you first need to install the dependencies of wolkenkit, such as Node.js and Docker. For this, see the installation guide for [macOS](https://docs.wolkenkit.io/latest/getting-started/installing-wolkenkit/installing-on-macos/), [Linux](https://docs.wolkenkit.io/latest/getting-started/installing-wolkenkit/installing-on-linux/), [Windows](https://docs.wolkenkit.io/latest/getting-started/installing-wolkenkit/installing-on-windows/), or [Docker Machine](https://docs.wolkenkit.io/latest/getting-started/installing-wolkenkit/installing-using-docker-machine/).
### Installing the dependencies
Everything you need to run the backend is preconfigured in the dependencies of the project. Install them using npm:
```shell
$ npm install
```You can now use the local version of the wolkenkit CLI to control the backend. For example to list all the available wolkenkit commands, run:
```shell
$ npx wolkenkit --help
```### Running the backend
Before you can actually start the backend, you need to adjust the `identityProvider` section in the application's `package.json` file. Set its `name` property to the domain of your Auth0 account, so that it looks like this:
```json
"identityProvider": {
"name": "https://.eu.auth0.com/",
"certificate": "/server/keys/auth0"
}
```Finally, now it's time to run the backend. For that, run the `start` command using the wolkenkit CLI from inside the application's directory:
```shell
$ npx wolkenkit start
```### Running the frontend
Once the backend is running you are almost ready to run the frontend. First, change to the `client` directory and install any missing dependencies:
```shell
$ cd ./client
$ npm install
```[roboter](https://github.com/thenativeweb/roboter) is used for build automation. Set the environment variables `AUTH_IDENTITY_PROVIDER_URL` and `AUTH_CLIENT_ID` accordingly, and then run `npx roboter serve`:
```shell
$ AUTH_IDENTITY_PROVIDER_URL=https://.eu.auth0.com/authorize AUTH_CLIENT_ID= npx roboter serve
```After a short time, the frontend is running at `http://local.wolkenkit.io:8080/`. Point your browser to this url, identify yourself, and start to mount boards and pin some posts!
## License
Copyright (c) 2015-2019 the native web.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see [GNU Licenses](http://www.gnu.org/licenses/).