diff --git a/.gitignore b/.gitignore
index 38105ec..bdf1429 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,4 +21,8 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
-replay_pid*
\ No newline at end of file
+replay_pid*
+
+## Build folders
+.out/
+.target/
\ No newline at end of file
diff --git a/.idea/artifacts/sav_jar.xml b/.idea/artifacts/sav_jar.xml
new file mode 100644
index 0000000..20edbef
--- /dev/null
+++ b/.idea/artifacts/sav_jar.xml
@@ -0,0 +1,9 @@
+
+
+ $PROJECT_DIR$/out/artifacts/sav_jar
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..7e0010e
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/grahamedgecombe_jterminal.xml b/.idea/libraries/grahamedgecombe_jterminal.xml
new file mode 100644
index 0000000..46577e9
--- /dev/null
+++ b/.idea/libraries/grahamedgecombe_jterminal.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index babcbca..f346f33 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,13 @@
+
+
+
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 9d1a80c..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sorting-algorithm-visualisation.iml b/.idea/sorting-algorithm-visualisation.iml
deleted file mode 100644
index c90834f..0000000
--- a/.idea/sorting-algorithm-visualisation.iml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/sorting-algorithm-visualization.iml b/.idea/sorting-algorithm-visualization.iml
new file mode 100644
index 0000000..a80f8af
--- /dev/null
+++ b/.idea/sorting-algorithm-visualization.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index b04848c..143b97e 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,16 @@
# Visualization of different sorting algorithms
+
+## How to build Maven?
+
+1. Main menu (alt + \)
+2. Build -> build artifacts -> sav:jar -> build
+
+## How to run?
+
+open terminal in a folder with `.jar` file
+``` bash
+java -jar sav.jar
+```
+=======
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..2c46d12
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,42 @@
+
+
+ 4.0.0
+
+ sorting.algorithm.visualization
+ sav
+ 1.0-SNAPSHOT
+
+ 22
+ 22
+ UTF-8
+
+
+
+ io.github.shuoros
+ JTerminal
+ 1.0.2
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/Main.java b/src/main/java/Main.java
new file mode 100644
index 0000000..994514d
--- /dev/null
+++ b/src/main/java/Main.java
@@ -0,0 +1,7 @@
+import ui.TestUI;
+
+public class Main {
+ public static void main(String[] args) {
+ TestUI.start();
+ }
+}
diff --git a/src/algorithms/AlgorithmSort.java b/src/main/java/algorithms/AlgorithmSort.java
similarity index 100%
rename from src/algorithms/AlgorithmSort.java
rename to src/main/java/algorithms/AlgorithmSort.java
diff --git a/src/algorithms/BubbleSort.java b/src/main/java/algorithms/BubbleSort.java
similarity index 100%
rename from src/algorithms/BubbleSort.java
rename to src/main/java/algorithms/BubbleSort.java
diff --git a/src/main/java/ui/TestUI.java b/src/main/java/ui/TestUI.java
new file mode 100644
index 0000000..f2394a3
--- /dev/null
+++ b/src/main/java/ui/TestUI.java
@@ -0,0 +1,26 @@
+package ui;
+
+import algorithms.BubbleSort;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestUI {
+ public static void start() {
+
+ ArrayList list = new ArrayList<>(List.of(
+ 10, 17, 9, 19, 15, 7, 6, 4, 7, 6,
+ 6, 20, 17, 6, 5, 8, 8, 5, 17, 18,
+ 16, 17, 10, 1, 18, 4, 6, 20, 9, 14,
+ 7, 4, 15, 7, 6, 2, 15, 15, 3, 1, 9,
+ 2, 19, 8, 16, 14, 19, 5, 20, 9
+ ));
+ BubbleSort bubbleSort = new BubbleSort(list);
+
+ bubbleSort.sort();
+
+ Utils.printArray(list);
+ }
+
+
+}
diff --git a/src/main/java/ui/Utils.java b/src/main/java/ui/Utils.java
new file mode 100644
index 0000000..ce5151a
--- /dev/null
+++ b/src/main/java/ui/Utils.java
@@ -0,0 +1,38 @@
+package ui;
+
+import io.github.shuoros.jterminal.JTerminal;
+
+import java.util.ArrayList;
+
+public abstract class Utils {
+ // change to ### view
+ public static void printArray(ArrayList arrayList) {
+ try {
+ Thread.sleep(10);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ JTerminal.clear();
+ int line = findMax(arrayList);
+ StringBuilder sb = new StringBuilder();
+ while (line >= 0) {
+ for (var element : arrayList) {
+ if (element > line) JTerminal.print("#");
+ else JTerminal.print(" ");
+ }
+ JTerminal.println("");
+ line--;
+ }
+
+ }
+
+ private static int findMax(ArrayList array) {
+ int max = 0;
+ for (var element : array) {
+ if (element > max) max = element;
+ }
+ return max;
+ }
+
+ // fillArrayRandomlyMethod (between 1 and 100 for example)
+}
\ No newline at end of file
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..37197ef
--- /dev/null
+++ b/src/main/resources/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: Main
+
diff --git a/src/ui/TestUI.java b/src/ui/TestUI.java
deleted file mode 100644
index 5d31ee7..0000000
--- a/src/ui/TestUI.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package ui;
-
-import algorithms.BubbleSort;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class TestUI {
- public static void main(String[] args) {
- ArrayList list = new ArrayList<>(List.of(
- 5, 2, 1, 7, 9, 12, 15, 10
- ));
-
- BubbleSort bubbleSort = new BubbleSort(list);
-
- bubbleSort.sort();
-
- Utils.printArray(list);
- }
-
-
-
-}
diff --git a/src/ui/Utils.java b/src/ui/Utils.java
deleted file mode 100644
index 7fa59af..0000000
--- a/src/ui/Utils.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package ui;
-
-import java.util.ArrayList;
-
-public abstract class Utils {
- // change to ### view
- public static void printArray(ArrayList arrayList) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- arrayList.forEach(s -> System.out.print(s + "\t"));
- System.out.println();
- }
-
- // fillArrayRandomlyMethod (between 1 and 100 for example)
-}
\ No newline at end of file