Skip to main content

// Low-code · Spring Boot · React

Low coding complete
functional web applications.

AWE turns declarative XML into complete web applications — screens, menus, navigation and data binding — rendered with React, powered by Spring Boot and the query and maintain engine.

<screen template="full" label="MENU_USERS">
  <tag source="center">
    <window label="SCREEN_USERS" icon="users">
      <criteria id="usrNam" component="text"
        label="PARAM_NAME"/>
      <criteria id="sta" component="select"
        initial-load="query"
        target-action="StaSel"/>
      <grid id="GrdUsrLst"
        initial-load="query" target-action="UsrLst">
        <column name="usr" label="COL_USER"/>
        <column name="nam" label="COL_NAME"/>
        <column name="sta" label="COL_STATUS"/>
      </grid>
      <button label="BUTTON_SEARCH" icon="search">
        <button-action type="filter"
          target="GrdUsrLst"/>
      </button>
    </window>
  </tag>
</screen>
<!-- Feeds GrdUsrLst — no controller code -->
<query id="UsrLst">
  <table name="AweUsr"/>
  <field id="usr" alias="usr"/>
  <field id="nam" alias="nam"/>
  <field id="sta" alias="sta"/>
  <where>
    <filter left-field="nam" condition="like"
      right-variable="name" optional="true"/>
  </where>
  <variable id="name" type="STRINGB"
    name="usrNam"/>
</query>

<!-- Same engine reads SQL, NoSQL, REST -->
<!-- Insert, update, delete with audit -->
<maintain id="UsrNew">
  <insert audit="HisAweUsr">
    <table name="AweUsr"/>
    <field id="usr" variable="usr"/>
    <field id="nam" variable="nam"/>
    <field id="sta" variable="sta"/>
    <variable id="usr" type="STRING" name="usr"/>
    <variable id="nam" type="STRING" name="nam"/>
  </insert>
</maintain>

<!-- Transactions and locking are handled -->
<!-- by the engine — no DAO code needed -->
Rendered output
Users
Name
jane…
Status
Active
UserNameStatus
jdoeJane DoeActive
mgarciaMaría GarcíaActive
tsmithTom SmithInactive
lchenLi ChenActive
Same XML — rendered with awe-react-client
Rich componentsPrimeReact-based
Any SQL database6 engines supported
Two frontendsReact · AngularJS
Multi-languageextensible locales
Spring BootJava backend

Up and running in one command

Generate an AWE project from the Maven archetype — React or AngularJS — and start building screens immediately. Hot reload included.

Read the getting-started guide
$ mvn -B archetype:generate \
  -DarchetypeGroupId=com.almis.awe \
  -DarchetypeArtifactId=awe-boot-react-archetype \
  -DarchetypeVersion=4.12.0 \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app -Dversion=1.0-SNAPSHOT
$ mvn -B archetype:generate \
  -DarchetypeGroupId=com.almis.awe \
  -DarchetypeArtifactId=awe-boot-angular-archetype \
  -DarchetypeVersion=4.12.0 \
  -DgroupId=com.mycompany.app \
  -DartifactId=my-app -Dversion=1.0-SNAPSHOT
[INFO] BUILD SUCCESS — cd my-app && npm start

From XML to running app in four moves

Every AWE application follows the same declarative loop — no controllers to wire, no JavaScript to write for dynamic behavior.

01

Define the screen

Windows, criteria, grids, charts and tabs — declared in a validated XML schema.

02

Bind the data

Queries read, maintains write. Point them at SQL, NoSQL, REST services or Java beans.

03

Make it dynamic

Dependencies react to user input: validations, computed values, show/hide rules and chained actions — all in XML, zero JavaScript.

04

Run and render

Spring Boot starters serve the app; the React client renders it live. AngularJS keeps legacy apps running.

Built for enterprise applications

Everything a data-heavy internal platform needs, out of the box.

One XML, two frontends

The same screen definition renders with the modern React client or the stable AngularJS client. Migrate engine by engine — your XML never changes.

awe-react-clientawe-client-angular

Query and maintain engine

Declarative reads and transactional writes with auditing, locking and pagination — across SQL, NoSQL, REST and JavaBeans.

<query id="UsrLst"> … </query> <maintain id="UsrNew"> … </maintain>

Pluggable starters

Spring Boot starters enable exactly the modules you need — scheduler, notifications, printing, REST.

i18n and themes

English, Spanish and French out of the box — add any locale you need. Preconfigured themes, brandable with plain CSS.

Rich components

Built on PrimeReact: editable grids, pivot matrices, charts, calendars, wizards — or plug in your own custom widgets.

Security built in

Authentication, profiles and screen-level permissions wired through Spring Security.

Find your path through the docs

Four entry points cover most journeys — from first install to advanced data binding.