Skip to main content

Developer Guide

A guide for developers who want to contribute to RDFArchitect, extend it, or integrate it into other systems. If you only want to use the application, the User Guide is the right place.

This guide complements .github/CONTRIBUTING.md, which is the authoritative source on PR rules, commit format, and review process. Read that first; this document fills in the how behind those rules.

Required toolchain

ToolMinimum versionNotes
Java25Temurin is what CI uses; any compatible JDK works locally.
Maven3.9.9The project does not use the Maven wrapper.
Node.js24
npm11
DockerrecentOptional, only needed for the Compose-based local stack.
Apache Jena Fuseki5.xRequired for snapshot storage — see Installation.

A working Fuseki at http://localhost:3030 is the simplest way to develop snapshot flows locally. The installation guide has a one-line Docker invocation.

Clone, build, run

git clone https://github.com/SOPTIM/RDFArchitect.git
cd RDFArchitect

# Backend (terminal 1)
cd backend
mvn spring-boot:run

# Frontend (terminal 2)
cd frontend
npm install
npm run dev

Open http://localhost:1407. Swagger UI for the backend is at http://localhost:8080/swagger-ui.html.

IDE setup

  • IntelliJ IDEA (Community works) for the backend. Import as a Maven project. Enable the Lombok plugin and "Annotation Processing" — Lombok and MapStruct both rely on it.
  • VS Code with the Svelte and ESLint extensions for the frontend. The repository ships with the lint config; no per-machine setup required.
  • Pre-commit hook (optional): a quick mvn -B spotless:apply && cd ../frontend && npm run format before committing avoids most CI lint failures.

Hot reload

  • Backend: Spring Boot DevTools is not on the classpath. Restart Maven for changes. For tighter loops, run individual tests with mvn -B test -Dtest=ClassName.
  • Frontend: Vite hot-reloads on save. Type changes in .ts files require a tab refresh occasionally; component changes do not.