/ams

jsActor AMS

Primary LanguageJavaScriptMIT LicenseMIT

jsActor AMS

Actor Management System - AMS - with unique automated Event Message Management based on the Actor Model designed by the American computer scientist Carl Hewitt in 1973.

Your time-to-market, cost, development time and codebase can be reduced by as much as 80%.

Your web application development becomes mostly configuration and copy&paste.

Demo at https://js.actor/ams

Medium.com stories: JavaScript Actor and Event Message Management System

Installation

Freedom

  • No complex frameworks.
  • No more writing HTML.
  • No more inline code.
  • No more data binding by hands.
  • No more states to manage.
  • Javascript and JSON only.
  • Automated and generated.
  • PWA, Service worker and Local storage ready.

Angular, React, Vue, etc.

Your favorite framework development can be automated with the same generative approach and Event Message Management.

In fact this system allows using any third-party web components and behaviours by converting them into actors and actions. Once a browser event is registered to an actor you have a full conrol over your favorite web component. It can do everyhing other actors do, and you can enjoy simple drag&drop development along with full application map and code reusabilty chart to track your effort.

Yes, your current codebase can be also converted into highly reusable actions which can reduce the amount of the Javascript code by up to 80%.

Performance

Very small Javascript library based on only five classes with a size of about 130Kb. jsActor app loads in about a second or less. With a browser cache on even less than a half a second on both Wi-Fi and 4G.

Concept

  • Code is now data.
  • Break element behaviour into smaller reusable single responsibility steps.
  • Build event-driven action scenarios grouped by reusable roles.
  • Configure more, code less.

Development

  • Roll out new apps within a few days. Even large and complex ones.
  • Highly reusable, consistent and granular codebase across all apps.
  • jQuery for cross-browser compatibility and plugins.
  • The more apps you build the less code you write and test.
  • Scalability: drag-n-drop or copy&paste any part of the app or any other app using web based interactive tree.
  • All actions already assigned to these elements will follow and work correctly out of the box. Minor project specific adjustments or configuration may be needed.
  • A good number of prebuilt and reusable actions based on simple callbacks. More actions are coming up.
  • We only hide and show elements or add and remove their clones or CSS classes. Otherwise DOM remains intact.
  • Easily clone even large parts of your application or form with a single button click.

Rendering

  • Save prerendered code right from the browser or have simple node.js generator do it for you.
  • No server or front end rendering needed in real time.
  • Prerender complete HTML and app data JSON files.
  • Forget how HTML looks like.

Reusabilty

  • Create reusable event-driven action scenarios instead of managing endless states.
  • Bind reusable scenarios by tagging components with a role name.
  • Reuse even big parts from other apps as is or easily modify their look and feel.
  • Program in Javascript only, no more mess with HTML. In fact you can easily replace HTML with SVG.
  • See what actions are in use the most by your application. Typically 3 actions cover about 50-60% of all development.
  • This is how you can make development cheaper, faster and bug free.

Data

  • Automatic data binding: just point your component to a correct JSON object.
  • Collect complete data from your application in JSON from GUI app tree with a single click or any other event.

Event Message Management

  • This is totally exciting and totally different from what everybody is doing today.
  • Easily orchestrate events and action queues with a built-in Director.
  • Let Director manage even the most complex synchronous and asynchronous scenarios for you.
  • Create any number of custom event messages and send them to any part of your app to trigger sync or async actions in other elements.

HTML

  • Easy to replace decoupled representation layer.
  • Fairly small number of reusable HTML templates.
  • Easily add your own element types and templates for them. We call them actors.
  • Dependency injection: add any third party plugin with its own API.
  • Bootstrap, Datatables, Google Charts are already integrated.

CSS

  • No more mess with inline CSS. Conveniently keep everything in one sheet.
  • Add any custom CSS classes to any element and have it prerendered in HTML.
  • Use jQuery or Javascript only to handle CSS class update in HTML tags.

Localization

  • Easy localization with any number of language files loaded based on HTML lang attribute value.
  • Watch your CSS only.

Testing

  • The more you build and test the less you code and test for each next project.
  • "No prod bugs" is really doable.
  • Yes, unit test ready.

Debugging

  • Enjoy a complete snapshot of your app and easily find all actions and settings applied to an actor under debugging.
  • Browser Console outputs the details of all actors, actions and events in real time so you know what exactly is going on under the hood.

Now under development

  • Web workers: delegate computation to multithread
  • More reusable actions

Your long read should be rewarded. We want to give you a free app development(*) if you:

  • have a great, useful or complex app idea
  • are open to our implementation suggestions
  • have a detailed BRD in English with complete set of wireframes
  • are not a frontend developer or cannot afford one for your app - optional
  • can share your future profit - optional

Please keep in mind that we are only at the beginning of our journey and may not have capacity to cover fancy features like animations yet.

Our target is building a rich library of actions and make it available to everyone for free. One day even a fancy animation will be working out of the box.

(*)Free app development includes web application only and mockup JSON data files to send data both ways via Ajax calls. No server or backend development will be provided.