Beginner10 minutes
Your First qqq App
Build a simple task management app in 10 minutes and see the magic of metadata-driven development.
Prerequisites
- •Java 21+ installed (
java -version) - •Maven 3.6+ installed (
mvn -version)
Step 1: Create Your Project
Create a new qqq project using the Maven archetype:
Bash
mvn archetype:generate \
-DarchetypeGroupId=io.qrun \
-DarchetypeArtifactId=qqq-archetype \
-DgroupId=com.example \
-DartifactId=my-tasks \
-Dversion=1.0-SNAPSHOTBash
cd my-tasksStep 2: Define Your Table
Create a Task table by defining its metadata. CreateTaskTableMetaDataProducer.java:
Java
public class TaskTableMetaDataProducer
implements MetaDataProducerInterface<QTableMetaData>
{
public static final String NAME = "task";
@Override
public QTableMetaData produce(QInstance qInstance)
{
return new QTableMetaData()
.withName(NAME)
.withLabel("Task")
.withPrimaryKeyField("id")
.withFields(List.of(
new QFieldMetaData("id", QFieldType.INTEGER),
new QFieldMetaData("title", QFieldType.STRING)
.withIsRequired(true),
new QFieldMetaData("description", QFieldType.TEXT),
new QFieldMetaData("completed", QFieldType.BOOLEAN)
.withDefaultValue(false),
new QFieldMetaData("dueDate", QFieldType.DATE)
));
}
}Step 3: Run Your App
Start your application:
Bash
mvn compile exec:javaOpen http://localhost:8080 and you have a fully functional CRUD application with search, filtering, and pagination.
What You Get Automatically
Admin UI
Full CRUD interface with search, filtering, sorting, and pagination.
REST API
Complete API endpoints at /api/task with documentation.
Database Schema
Auto-generated from your metadata, no SQL required.
Validation
Required fields, type checking, and custom rules enforced automatically.
Next Steps
Powered by qqq