Skip to content

QRun-IO/qqq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

qqq

License

Metadata-driven application framework for building business software in Java.

For: Engineers building internal tools, admin panels, data management apps, or CRUD-heavy systems Latest Release: v0.35.0 | Development: v0.36.0-SNAPSHOT

Why This Exists

Building business applications means writing the same patterns repeatedly: table views, forms, CRUD operations, user permissions, reports, scheduled jobs. Most frameworks make you implement these from scratch.

QQQ takes a different approach. You define your data model and business rules through metadata, and QQQ generates the working application - complete with API, dashboard, and backend logic.

This isn't a no-code tool. You write Java when you need custom behavior. But the boilerplate - the 80% that's the same across every app - is handled for you.

Features

  • Metadata-driven tables - Define entities once, get API + UI + validation
  • Backend modules - RDBMS, filesystem, MongoDB, S3 out of the box
  • Business processes - Multi-step workflows with state management
  • React dashboard - Material-UI admin interface, zero frontend code required
  • Multiple interfaces - REST API, CLI, Lambda handlers from same codebase
  • Extensible - Custom actions, widgets, and integrations when needed

Quick Start

Prerequisites: Java 21+, Maven 3.8+

<!-- Latest stable release -->
<dependency>
    <groupId>com.kingsrook.qqq</groupId>
    <artifactId>qqq-backend-core</artifactId>
    <version>0.35.0</version>
</dependency>

<!-- Or use the development snapshot -->
<dependency>
    <groupId>com.kingsrook.qqq</groupId>
    <artifactId>qqq-backend-core</artifactId>
    <version>0.36.0-SNAPSHOT</version>
</dependency>

<dependency>
    <groupId>com.kingsrook.qqq</groupId>
    <artifactId>qqq-backend-module-rdbms</artifactId>
    <version>0.35.0</version> <!-- or 0.36.0-SNAPSHOT -->
</dependency>

Define a table:

new QTableMetaData()
    .withName("order")
    .withBackendName("rdbms")
    .withPrimaryKeyField("id")
    .withField(new QFieldMetaData("id", QFieldType.INTEGER))
    .withField(new QFieldMetaData("customerId", QFieldType.INTEGER))
    .withField(new QFieldMetaData("status", QFieldType.STRING))
    .withField(new QFieldMetaData("total", QFieldType.DECIMAL));

QQQ generates: REST endpoints, dashboard screens, query capabilities, and validation.

Usage

Adding Backend Modules

<!-- PostgreSQL, MySQL, etc -->
<artifactId>qqq-backend-module-rdbms</artifactId>

<!-- Local/S3 file storage -->
<artifactId>qqq-backend-module-filesystem</artifactId>

<!-- MongoDB -->
<artifactId>qqq-backend-module-mongodb</artifactId>

Adding Middleware

<!-- HTTP server with REST API -->
<artifactId>qqq-middleware-javalin</artifactId>

<!-- CLI commands -->
<artifactId>qqq-middleware-picocli</artifactId>

<!-- AWS Lambda -->
<artifactId>qqq-middleware-lambda</artifactId>

Adding the Dashboard

See qqq-frontend-material-dashboard for the React admin UI.

Project Status

Maturity: Stable, used in production systems
Breaking changes: Major versions may break API; see release notes

Roadmap:

  • Improved widget system
  • Enhanced process tracing

Contributing

git clone git@github.com:QRun-IO/qqq.git
cd qqq
mvn clean install

See Developer Onboarding and Contribution Guidelines.

Documentation

Full documentation: QQQ Wiki

License

Apache-2.0 - See LICENSE for details.

About

Low-code application framework for Java. Define data models, business logic, and UI through metadata.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published