Event

Introduction

This document describe how public event should be managed by the client and the server. The main goal of this document is to manage an event by allowing the users to know who is participating at the event and who is invited.

The main feature of an event are:

  • Know who is invited

  • Know who is participating

  • Where is the event

  • When is the event

  • Who can chat in the event

Solution description

For the best possible experience the solution is to use an XMPP Buddy, this Buddy is in charge of creating the event and manage the configuration of the event. Basically an event is just a MUC Light group with a special configuration.

After every buddy action the server send the new configuration to the occupants.

Installation guide

See buddies installations guide for TotalJs XMPP Cluster .

Configure on both services the same sequelize’s config file ./config/config.json for datasource connection properties.

Orchestrator

Repo url

git@git.webmonks.org:monktalk/message-orchestrator.git#event-buddies

Execute migrations launching command on the project dir: sequelize db:migrate

Start script

Example of script for Orchestrator module:

// ===================================================
// FOR PRODUCTION
// Total.js - framework for Node.js platform
// https://www.totaljs.com
// ===================================================

const options = {};

options.ip = '0.0.0.0';
options.port = parseInt(process.argv[2]);
options.config = { name: 'event-orc-ciamic' };
// options.sleep = 3000;

process.env.NODE_ENV = 'development';
const clientName = "event-buddies";
console.log('Starting Monk Message Orchestrator for ['+ clientName +'] module..');

const MonkMO = require('../app.js');
const ActionsManager = require('../apps/');

let monkMO = new MonkMO(clientName);
require('total.js').http('release', options);
// require('total.js').cluster.http(5, 'release', options);

Service

Repo url

git@git.webmonks.org:monktalk/monks-buddy.git#event-buddies

Execute migrations launching command on the project dir: sequelize db:migrate

Start script

Example of script for Orchestrator module

// ===================================================
// FOR PRODUCTION
// Total.js - framework for Node.js platform
// https://www.totaljs.com
// ===================================================

const options = {};

options.ip = '0.0.0.0';
options.port = parseInt(process.argv[2]);
options.config = { name: 'event-ciamic' };

// options.sleep = 3000;
process.env.NODE_ENV = 'development';

var MonksBuddy = require('../services/MonksBuddy.js').MonksBuddy;

var clientName = "events_xmpp_ciaoamici-svil.monksoftware.it";
var client = new MonksBuddy(clientName);


require('total.js').http('release', options);
// require('total.js').cluster.http(5, 'release', options);

Flow description