Browse documentation

Your First QQQ 4.0 App

Build and explore the MySQL starter, then make one tested metadata change.

Select the source

Use the qqq-app-starter repository and check its dependency version against 4.0 release status. The starter is a local learning application; its anonymous authentication must be replaced before using real data.

Prepare Java and MySQL

Use Java 21, Maven 3.8 or later, and a dedicated local MySQL database/user. In that database, create the sample schema from the starter README:

SQL
CREATE TABLE sample (
   id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   name VARCHAR(255)
);
INSERT INTO sample (name) VALUES ('First example');

Supply RDBMS_VENDOR=mysql and the actual RDBMS_HOSTNAME, RDBMS_PORT, RDBMS_DATABASE_NAME, RDBMS_USERNAME, and RDBMS_PASSWORD through the process environment or the starter's documented ignored .env file. Keep credentials outside Git.

Build and run

Bash
mvn clean verify
java -jar target/qqq-app-starter-0.1-SNAPSHOT.jar

Open http://localhost:8000/. Select Sample App and Sample Table. View the seed row, create another row, and edit its name. Query MySQL to verify the value was persisted. Stop the server with Ctrl+C.

Make a small change

Open StarterAppMetaDataProvider and change the sample table label. Rebuild, restart, and verify the label in the dashboard. Then add a field only after creating the matching database schema change and test. The provider defines the backend, table, navigation, and branding; StarterAppJavalinServer starts HTTP and scheduled work.

Next steps

Use tables and processes for additional behavior. Test configured authentication, permissions, errors, and persistence before deployment. The bundled StarterAppCli is a placeholder, not the runnable server.

Powered by qqq