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:
@@ -12,10 +12,10 @@
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Single repository with `backend/` and `frontend/` directories
|
||||
- [ ] Backend: Java (latest LTS), Spring Boot, Maven, hexagonal/onion architecture scaffold
|
||||
- [ ] Frontend: Svelte with Vite as bundler
|
||||
- [ ] Frontend: Vue 3 with Vite as bundler, TypeScript, Vue Router
|
||||
- [ ] Shared top-level files: README, Dockerfile, CLAUDE.md, LICENSE (GPL), .gitignore
|
||||
- [ ] Both projects build successfully with no source code (empty scaffold)
|
||||
- [ ] .gitignore covers build artifacts, IDE files, and dependency directories for both Java/Maven and Node/Svelte
|
||||
- [ ] .gitignore covers build artifacts, IDE files, and dependency directories for both Java/Maven and Node/Vue
|
||||
|
||||
**Dependencies:** None
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Gitea Actions workflow file in `.gitea/workflows/` runs on push: test, build, publish Docker image
|
||||
- [ ] Backend tests run via Maven
|
||||
- [ ] Frontend tests run via Vite/Vitest
|
||||
- [ ] Frontend tests run via Vitest
|
||||
- [ ] Docker image is published to the Gitea container registry on the same instance
|
||||
- [ ] Pipeline fails visibly if any test fails or the build breaks
|
||||
- [ ] Docker image is only published if all tests pass and the build succeeds
|
||||
@@ -61,10 +61,10 @@
|
||||
|
||||
**Acceptance Criteria:**
|
||||
- [ ] Database migration framework (Flyway or Liquibase) is configured in the backend with a first empty migration that runs successfully against a PostgreSQL instance
|
||||
- [ ] SPA router is configured in the Svelte frontend so pages can be navigated by URL path
|
||||
- [ ] SPA router is configured in the Vue frontend (Vue Router) so pages can be navigated by URL path
|
||||
- [ ] API client layer exists in the frontend (a fetch wrapper or similar) for making requests to the backend REST API
|
||||
- [ ] Backend test infrastructure is set up: JUnit 5 with Spring Boot Test, plus integration test support using Testcontainers (PostgreSQL) so tests can run against a real database without external setup
|
||||
- [ ] Frontend test infrastructure is set up: Vitest configured and a sample test runs successfully
|
||||
- [ ] Frontend test infrastructure is set up: Vitest with @vue/test-utils configured and a sample test runs successfully
|
||||
- [ ] Both test suites (backend and frontend) can be executed via their respective build tools (`mvn test` and `npm test` / `npx vitest`)
|
||||
|
||||
**Dependencies:** T-1, T-2
|
||||
|
||||
Reference in New Issue
Block a user