T-1: initialize monorepo structure with backend and frontend scaffolds

Backend: Spring Boot 3.5.11 on Java 25, Maven with wrapper, hexagonal
architecture package layout (domain/application/adapter/config), health
endpoint with integration test. Originally planned for Spring Boot 4.0
but pivoted due to massive package reorganization in 4.0 (see addenda
in research and plan docs).

Frontend: Vue 3 scaffolded via create-vue with TypeScript, Vue Router,
Vitest, ESLint, Prettier. Pivoted from Svelte due to ecosystem maturity
concerns (broken router ecosystem for Svelte 5).

Also: extended .gitignore for Java/Maven and Node/Vue artifacts, updated
CLAUDE.md with tech stack, build commands, agent documentation sections,
and document integrity rule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 01:32:18 +01:00
parent 7b460dd322
commit a55174b323
58 changed files with 8933 additions and 9 deletions

View File

@@ -0,0 +1,12 @@
package de.fete;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class FeteApplication {
public static void main(String[] args) {
SpringApplication.run(FeteApplication.class, args);
}
}

View File

@@ -0,0 +1,15 @@
package de.fete.adapter.in.web;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HealthController {
@GetMapping("/health")
public Map<String, String> health() {
return Map.of("status", "ok");
}
}

View File

@@ -0,0 +1,6 @@
/**
* Inbound web adapter: REST controllers, DTOs, and request/response mappers.
*
* <p>May depend on application and domain layers.
*/
package de.fete.adapter.in.web;

View File

@@ -0,0 +1,6 @@
/**
* Outbound persistence adapter: JPA entities, Spring Data repositories, and mappers.
*
* <p>May depend on application and domain layers.
*/
package de.fete.adapter.out.persistence;

View File

@@ -0,0 +1,6 @@
/**
* Application services: use case implementations.
*
* <p>May depend on domain only. Uses {@code @Service} for component scanning.
*/
package de.fete.application.service;

View File

@@ -0,0 +1,6 @@
/**
* Configuration: Spring {@code @Configuration} and {@code @Bean} definitions.
*
* <p>Wiring layer — may depend on all other packages.
*/
package de.fete.config;

View File

@@ -0,0 +1,7 @@
/**
* Domain model: entities and value objects.
*
* <p>Plain Java — no framework annotations allowed.
* This package has no dependencies on other packages.
*/
package de.fete.domain.model;

View File

@@ -0,0 +1,6 @@
/**
* Driving ports: use case interfaces that the application layer implements.
*
* <p>Plain Java interfaces — no framework annotations allowed.
*/
package de.fete.domain.port.in;

View File

@@ -0,0 +1,6 @@
/**
* Driven ports: repository and external service interfaces.
*
* <p>Plain Java interfaces — no framework annotations allowed.
*/
package de.fete.domain.port.out;

View File

@@ -0,0 +1 @@
spring.application.name=fete