Software Builder Factories

One options set. Two factories. Apps that can sync.

What the factories stamp

Chassis features of standard capabilities of Wildfly and Android apps.

The factories do not stamp a different architecture for each app. They stamp one chassis, then apply options and an extender data unique to each app. Login, lists, detail screens, images, and parent/child tables functionality come from the options and standard chassis. The stamped apps for example: Booklet, Social, and Security are generated from this process.

See the live WildFly demos (same login screen on all three):
To login use: guest / guest.

Booklet: https://sw-builder.com/booklet/do?op=Home

Social: https://sw-builder.com/social/do?op=Home

Security: https://sw-builder.com/security/do?op=Home

Wildfly Chassis Functionality (the admin tab)

The standard privileges fall into three groups: ADMIN, USER. and GUEST. The ADMIN users get to see the Admin Tab below:
Admin Tab
Admin Tab

The standard Functionality from the admin tab includes:

Logs

Get log information from android apps registered to your wildfly server or processes running on your server.

Events

Events shows the events that are implimented on your server. These events can be fired or scheduled.

Email Subs

Email subscriptions can be tied to events so that an email is sent to an address if an event fires.

SMS Subs

SMS subscriptions can be tied to events so that an SMS is sent to a phone number if an event fires.

Reports

Jasper report jrxml files can be uploaded so that different report types can be generated.

Wildfly Chassis Functionality (the admin report tab)

An admin account can load Jasper reports.

Chassis functionality (every stamped WildFly app)

Session after login. Guest can read; admin can load reports and maintain more records.

List and detail screens generated from APP_TABLES.xml. Each table gets a file name, a class, a DB table, and fields.

Parent / child relationships (One2ManyParent / One2ManyChild). Open a parent and you can reach its children.

Field widgets from codeType:

String — short text

Clob — long text

Date / DateTime

Boolean

Camera / Thumbnail — still image

Video — motion clip

Post — social post body plus media

Jasper reports can be loaded in the running app with an admin account (Booklet ships SimpleBooklet.jrxml and certTest.jrxml).

Build and deploy stay in the app repo. WildFly apps use a script such as wildfly-booklet-build-deploy.sh. The builder overlay copies template/ and build/ in at stamp time.

The same options language is meant to stamp the Android cousin (Droid Builder). Phone-side widgets reuse Camera, Thumbnail, and Video field types.

Options files the factory reads

Every catalog app carries the same six files under options/:

APP_HOME.xml — app name, logo, home URL

APP_NAMES.xml — display names

APP_TABLES.xml — entities and fields (the contract)

APP_ENUMS.xml — enumerations

APP_CODE_TYPES.xml — field widgets

APP_EVENTS.xml — extra events (Booklet defines GetEmailEvent for [email protected])

Change those files and re-run the factory. The chassis stays. The optional parts move.

Booklet (reader / small book)

Product idea: one question, many voices, one book.

Tables:

Author — name, image (Camera), about (Clob), books

Book — name, about (Clob), author, pages

Page — title, image (Camera), text (Clob), book

Flow: browse authors → books → pages. Add a page as another voice. Generate a SimpleBooklet report to keep or share.

Extender: BookletExtender.groovy.

Social (people, posts, comments)

Tables:

Member — name, picture (Thumbnail), postings, comments

Posting — post (Post widget), info, date, member, comments

Comment — text, date, member, posting

Flow: browse members → their postings → comments.

Security (phone + movement)

Tables:

Phone — name, camera photo (Thumbnail), running flag, shutdown flag, movements

Movement — video, date/time, save flag, phone

Flow: a phone is on or off. While running, movements show up as dated video clips you can mark to save.

What is shared vs what is unique

Shared: login, Home front controller, list/detail, one-to-many, field widgets, reports hook, WildFly deploy, Android cousin from the same options idea.

Unique per app: APP_TABLES.xml, APP_HOME logo/URL, the extender, extra files such as jrxml and background JPGs.

What to read next

What is a software factory?

Getting started with WildFly Builder

Getting started with Droid Builder