Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpringBoot Generator — sample output

CI

This repository contains one project exactly as it came out of springboot-generator.com — a full-stack Spring Boot + Angular application, generated on 2026-09-21 with every paid option switched on. The point of the repo is to let you read the generated code before you decide whether the tool is worth your time.

Nothing under project-tracker/ has been edited. Not a line. The ZIP that was downloaded has the SHA-256 023c4306bd13f713cddde6d9d425830d48741c19eb699361150f9c8645f5283b; unzipping it gives you that directory byte for byte. Everything outside it (this README, the license, the CI workflow, request.json) was added by hand.

The CI badge above is the same code being built on a GitHub runner: backend compiled, unit and integration tests run (PostgreSQL through Testcontainers), Angular production build. See .github/workflows/ci.yml.

What was asked for

Filled in the four-step wizard in about five minutes. The exact payload the wizard sent is in request.json.

Setting Value
Build Maven, Java 21, Spring Boot 4.1.1 (the version current on generation day)
Database PostgreSQL
Frontend Angular 21
Options Unit tests · Integration tests · Docker · Swagger · Spring profiles · Logger · Javadoc

Schema — a small project-tracking domain, chosen to exercise both kinds of relation the tool supports:

Entity Columns
Client id, name, email
Project id, name, start_date, budget, client_id → Client
Task id, title, done, due_date (nullable), project_id → Project
Employee id, first_name, last_name, hired_at
Role id, name
Assignment N-ary association between Project, Employee and Role, plus its own assigned_at column

Project → Client and Task → Project are ordinary many-to-one relations. Assignment is the tool's N-ary association: you name the participating entities and it produces the join entity, its repository, service, controller, DTO, mapper, tests and Angular screens like any other entity — and lets you hang extra columns on it.

Cost: 2 credits (the price of a full-stack project with paid options). A backend-only project with paid options is 1 credit; a project with no paid option (MySQL, Java 21, no extra) is free and needs no account. Credit packs and subscriptions are on the pricing page.

What you get

project-tracker/
├── README.md                  how to run the two halves together
├── resources/sql/script.sql   DDL, applied automatically by docker compose
├── backend/                   Spring Boot 4.1.1, Java 21 — 67 tests
│   ├── README.md              endpoints, profiles, Swagger, Javadoc, tests
│   ├── Dockerfile, docker-compose.yml   app + PostgreSQL 18, one command
│   └── src/main/java/…/       model · repository · service · mapper · dto · controller · exception
│       src/main/resources/    application.properties + dev (H2) and prod (PostgreSQL) profiles
│       src/test/java/…/       6 service unit tests, 3 integration tests (Testcontainers)
└── frontend/                  Angular 21 — one feature folder per entity
    └── src/app/features/<entity>/   list · detail · create · edit components, model, service

Some things worth reading, because they are where generators usually cut corners:

Known limitations — read this too

These are defects or gaps of the generator as of 2026-09-21, visible in this very output. They are listed here rather than patched, because patching them would defeat the purpose of the repo.

  • Integration tests are only generated for entities without a mandatory foreign key. Client, Employee and Role get one; Project, Task and Assignment do not. Their service layer is still unit-tested.
  • DECIMAL columns lose their scale. The wizard only asks for a size, so budget came out as DECIMAL(65), which PostgreSQL reads as numeric(65,0) — no decimals. Use it as a placeholder and set the scale yourself, or pick FLOAT.
  • Extra columns of an N-ary association are always nullable. The N-ary editor has no not null toggle, so assigned_at is NULL-able although it should not be.
  • server.port=8080 is hard-coded in application.properties and in the compose file.
  • On JVM exit after the integration tests, Surefire logs Surefire is going to kill self fork JVM after a 30-second wait. The build is green; it is a shutdown-hook delay from the connection pool, not a test failure.

When one of these gets fixed, the project will be regenerated and this list updated — the commit history of this repository doubles as a record of what changed in the generator's output.

Running it

Follow project-tracker/README.md: docker compose up in backend/ brings up the API and its database, npm start in frontend/ serves the Angular app on http://localhost:4200, Swagger UI is at http://localhost:8080/swagger-ui.

License

The files added around the generated project are MIT-licensed, and so is the generated project itself: the terms of service state that you own what you generate. Do whatever you like with it.

About

Unmodified output of springboot-generator.com — full-stack Spring Boot 4 + Angular, PostgreSQL, tests, Docker. Read the code before you decide.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages