diff --git a/visualization/src/main/java/cz/muni/pa165/service/VisualizationService.java b/visualization/src/main/java/cz/muni/pa165/service/VisualizationService.java
index 2444161f7901ae1703d58e7e22587235874e7b47..e393143c321aaeb2293c116a61fea6fa95003f55 100644
--- a/visualization/src/main/java/cz/muni/pa165/service/VisualizationService.java
+++ b/visualization/src/main/java/cz/muni/pa165/service/VisualizationService.java
@@ -12,7 +12,9 @@ import org.springframework.stereotype.Service;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Objects;
 
 @Service
 public class VisualizationService {
@@ -100,8 +102,19 @@ public class VisualizationService {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             document.save(baos);
 
+            String outputDirName = "output-data";
+            Path projectDir = Paths.get("").toAbsolutePath().getParent();
+            Path outputDirPath = projectDir.resolve(outputDirName);
+
+            // Create output directory if it does not exist
+            if (!Files.exists(outputDirPath)) {
+                Files.createDirectories(outputDirPath);
+            }
+
+            String outputFileName = String.format("car-%s.pdf", carDto.getId());
+
             // Save generated file
-            Files.write(Paths.get(String.format("C:\\WORKSPACE\\car-%s.pdf", carDto.getId())), baos.toByteArray());
+            Files.write(outputDirPath.resolve(outputFileName), baos.toByteArray());
 
             return new ByteArrayResource(baos.toByteArray());
         }