momkai / mimoto
A realtime fluid data management microframework
Installs: 674
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 4
Forks: 0
Language:JavaScript
Requires
- php: >=7.0
- sendgrid/sendgrid: ~6.0
- silex/silex: ~1.3
- symfony/security: ^3.2
- twig/twig: ~2.0
- wisembly/elephant.io: ^3.2
This package is not auto-updated.
Last update: 2025-01-18 21:52:43 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
- "brianlmoon/net_gearman": "dev-master"
- http://svgjs.com
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