momkai/mimoto

A realtime fluid data management microframework

dev-master 2019-03-26 10:54 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:26:16 UTC


README

DISCLAIMER - This project is still very much under construction. Stay tuned!

Mimoto

An ultra fast, fluid and realtime data management microframework

Requirements

  • composer
  • npm
  • Mimoto uses Gearman async manager
  • Node JS
  • Memcached

Starting up the realtime feature

Run event worker

curl http://mimoto.local/mimoto.cms/workers/data

Run async worker

curl http://mimoto.local/mimoto.cms/workers/async

Run realtime server script

node src/userinterface/Mimoto/realtime.js

Run js parser

npm run build-web:dev

Basic instalation

Go to the root of the project and

composer update
npm install
cp mimoto.json.dist mimoto.json

Realtime data broadcasting

Fire up the Gearman worker and make sure it keeps running in the background.

curl "http://mimoto.aimless/mimoto.cms/workers/data

Archive

"jquery": "^3.1.1",
"jquery-ui-dist": "^1.12.1",

About

Mimoto is an Entity Oriented Programming protocol that allows you to easily create a realtime interface.

Definitions

Mimoto = data

Aimless = presenting that data (render and realtime)

Features

Mimoto is typecasted

Debugging tools

Mimoto.CMs has it's built in developer debugging console at /mimoto.cms/notifications This notification Center supports silent, notify, warn and error.

Mimoto::service('log')->notify('A notification', "There is something I would like you to be aware of. No rush!");
Mimoto::service('log')->silent('Silent notice', "The configuration is missing a paramater, but we'll do without for now");
Mimoto::service('log')->silent('Another silent test', "Does it live update?");
Mimoto::service('log')->warn('Some warning', "Something probably needs your attention");
Mimoto::service('log')->error('uh-oh, an error', "Your code is broken. Please fix");

Auto counters

Aimless has support for aesy to implement counters for for instance new notifications. In the below example when a notification is created, or a notificatin changes it's state from open to closed, Aimless will automatically update the counter and even update the presentation of the counter (in this case by hiding the counter when the count hits zero)

Example:

<div id="header_notification_count" class="hidden" data-mimoto-count="_Mimoto_notification" data-mimoto-filter='{"state":"open"}' data-mimoto-config='{"toggleClasses": {"onZero": "hidden"} }'>0</div>

Javascript features

https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset

Some notes for the website

  • But what if soemone already has that value on its screen? That person would miss out on the latest changes. Enter Aimless's realtime feature (configure action rule, per user or group, entity, specific value, delayed) broadcast as webevent.
  • Don't program functionality, configure it! Start using actions.
  • It's really easy. See this example.
  • An open platform - build addons tools utils adapters
  • External platforms as services that can be connected / addon
  • Complex data structures become cheap
  • The price of complexity decreases!

Packages to add

Post slug generator, for creating clean urls from titles. It works with many languages. From: http://php.net/manual/en/function.preg-replace.php <49> hello at weblap dot ro

Example: post_slug(' -Lo#&@rem IPSUM //dolor-/sit - amet-/-consectetur! 12 -- ') will output: lorem-ipsum-dolor-sit-amet-consectetur-12