# SiB App

SiB App is the magic tool that allows the Happy Dev network to thrive in a decentralized way.

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Prerequisites

To install SiB App, you'll need:

* A SIB server (djangoldp>=0.6.32) with the appropriate modules
* A Prosody Server (with [appropriate modules](https://git.happy-dev.fr/startinblox/prosody/custom-prosody-modules/)
* A SMTP Server (optional)
* NodeJS on your machine

Before diving in you have to check your SIB server supports the following LDP packages:

* djangoldp_account: 0.2.24
* djangoldp_circle: 0.1.22
* djangoldp_notification: 0.1.7
* djangoldp_profile: 0.1.4
* djangoldp_project: 0.1.26
* oidc_provider: 'git+https://github.com/jblemee/django-oidc-provider.git@develop'

Those packages are given with the last stable version tested.

Refer to the [documentation to install a SIB server](https://git.happy-dev.fr/startinblox/devops/doc/wikis/install_sib_server) with this configuration.

## Build the application

In order to find your server(s) the client application needs to be assembled with the proper configuration.

Get the code of the SIB app on your machine:

```bash
git clone ...
```

Then create a `config.json` based on your needs. [The documentation](https://git.happy-dev.fr/startinblox/devops/doc/wikis/build_sib_application) explains the details of this file but for convienence a `config.sample.json` exists in the source.

Current Sib App capabilities:

| Component | Required server packages | Required endpoints |
| - | - | - |
| Base | `djangoldp_account`, `djangoldp_profile`, `djangoldp_notification`, `oidc_provider` | `users` |
| Circles | `djangoldp_circle` | `circles` |
| Directory | `djangoldp_account` and `djangoldp_profile` | `users` + `publicDirectory` set to `true` |
| Events | `djangoldp_event` | `events`, `typeevents`, `uploads` |
| Projects | `djangoldp_project` | `projects`, `customers` |

Federated Sib App needs to use `config.sample.federated.json` example.

Then build your new SIB App:

```bash
npm run build
```

The application bundle is in the `dist` folder, ready to be deployed everywhere as a static file.

## Developpers

Serve, watch files & rebuild on change with this command:

```bash
npm run watch
```

## Built With

* [Sib-Core](https://git.happy-dev.fr/startinblox/framework/sib-core/) - An awesome new framework!