diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1a41058717dcc468df58f61939aa040efb18396c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,39 @@
+##############################
+## Java
+##############################
+.mtj.tmp/
+*.class
+*.jar
+*.war
+*.ear
+*.nar
+
+##############################
+## Maven
+##############################
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+pom.xml.bak
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+
+##############################
+## IntelliJ
+##############################
+out/
+.idea/*
+*.iml
+*.ipr
+*.iws
+
+##############################
+## Database
+##############################
+*.db
+*.DS_Store
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 86a91d933a6fa836a2f40defc266d2649267a39e..2489212cdc7d913f2b611375f51a8087600cd941 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,3 +1,30 @@
+image: maven:eclipse-temurin
+
+stages:
+  - build
+  - test
+  - package
+  - deploy
+
+
+build:
+  stage: build
+  script:
+    - mvn compile
+
+test:
+  stage: test
+  script:
+    - mvn clean test
+
+package:
+  stage: package
+  script:
+    - mvn clean package
+  artifacts:
+    paths:
+      - target/idatt2002demo-1.0-SNAPSHOT-jar-with-dependencies.jar
+
 generatepdf:
   image: ubuntu:20.04  # vi kjører dette i en docker container, som kjører Ubuntu Linux
   stage: deploy # vi kjører den parallelt med å publisere javadoc til Pages
@@ -35,4 +62,4 @@ pages:
     paths:
     - public
   only:
-  - master
+  - web
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..88e3484f6913e1924df39629517e0367fbfcd8ff
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>no.ntnu.idatt1002.demo</groupId>
+    <artifactId>idatt2002demo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <name>demo</name>
+    <packaging>jar</packaging>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <junit.version>5.8.1</junit.version>
+        <javafx.version>17.0.1</javafx.version>
+    </properties>
+
+    <repositories>
+        <repository>
+            <id>jitpack.io</id>
+            <url>https://jitpack.io</url>
+        </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-controls</artifactId>
+            <version>${javafx.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-fxml</artifactId>
+            <version>${javafx.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-base</artifactId>
+            <version>${javafx.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-graphics </artifactId>
+            <version>${javafx.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-web</artifactId>
+            <version>11.0.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-media</artifactId>
+            <version>11.0.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.openjfx</groupId>
+            <artifactId>javafx-swing</artifactId>
+            <version>11.0.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.xerial</groupId>
+            <artifactId>sqlite-jdbc</artifactId>
+            <version>3.36.0.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-api</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <version>${junit.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.Dansoftowner</groupId>
+            <artifactId>jSystemThemeDetector</artifactId>
+            <version>3.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>1.7.36</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-simple</artifactId>
+            <version>1.7.36</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.8.1</version>
+                <configuration>
+                    <source>17</source>
+                    <target>17</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.4</version>
+                <executions>
+                    <execution>
+                        <id>default-jar</id>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>3.0.0-M5</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <archive>
+                                <manifest>
+                                    <mainClass>
+                                        no.ntnu.idatt1002.demo.MyApp
+                                    </mainClass>
+                                </manifest>
+                            </archive>
+                            <descriptorRefs>
+                                <descriptorRef>jar-with-dependencies</descriptorRef>
+                            </descriptorRefs>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.openjfx</groupId>
+                <artifactId>javafx-maven-plugin</artifactId>
+                <version>0.0.8</version>
+                <executions>
+                    <execution>
+                        <!-- Default configuration for running with: mvn clean javafx:run -->
+                        <id>default-cli</id>
+                        <configuration>
+                            <mainClass>no.ntnu.idatt1002.demo/no.ntnu.idatt1002.demo.MyApp</mainClass>
+                            <launcher>app</launcher>
+                            <jlinkZipName>app</jlinkZipName>
+                            <jlinkImageName>app</jlinkImageName>
+                            <noManPages>true</noManPages>
+                            <stripDebug>true</stripDebug>
+                            <noHeaderFiles>true</noHeaderFiles>
+
+                            <release>${maven.compiler.target}</release>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>3.4.1</version>
+                <reportSets>
+                    <reportSet>
+                        <id>aggregate</id>
+                        <inherited>false</inherited>
+                        <reports>
+                            <report>aggregate</report>
+                        </reports>
+                    </reportSet>
+                    <reportSet>
+                        <id>default</id>
+                        <reports>
+                            <report>javadoc</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+        </plugins>
+    </reporting>
+</project>
diff --git a/src/myapp/MyApp.java b/src/main/java/no/ntnu/idatt1002/demo/MyApp.java
similarity index 79%
rename from src/myapp/MyApp.java
rename to src/main/java/no/ntnu/idatt1002/demo/MyApp.java
index 57e704ef909e644028308b4a7a4a449e1eaa46c5..360e1f3cbe11936d41f76c84f292e2a36922d105 100644
--- a/src/myapp/MyApp.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/MyApp.java
@@ -1,6 +1,6 @@
-package myapp;
+package no.ntnu.idatt1002.demo;
 
-import myapp.view.MyWindow;
+import no.ntnu.idatt1002.demo.view.MyWindow;
 
 /**
  * Use this class to start the application
diff --git a/src/myapp/data/MyEntity.java b/src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java
similarity index 93%
rename from src/myapp/data/MyEntity.java
rename to src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java
index e635c4f729764212cbc318e601cb83425fc4f786..dff27fa495b5c6dd705811eea97a717fae81895c 100644
--- a/src/myapp/data/MyEntity.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/data/MyEntity.java
@@ -1,4 +1,4 @@
-package myapp.data;
+package no.ntnu.idatt1002.demo.data;
 
 import java.util.Date;
 import java.util.List;
diff --git a/src/myapp/repo/MyEntityRepo.java b/src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java
similarity index 91%
rename from src/myapp/repo/MyEntityRepo.java
rename to src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java
index 123a9f4f1b98a673527324831079bb2e97e30f98..a149545cafdde9931005234bebb3ee69e3e1893e 100644
--- a/src/myapp/repo/MyEntityRepo.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/repo/MyEntityRepo.java
@@ -1,6 +1,6 @@
-package myapp.repo;
+package no.ntnu.idatt1002.demo.repo;
 
-import myapp.data.MyEntity;
+import no.ntnu.idatt1002.demo.data.MyEntity;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/myapp/view/MyWindow.java b/src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java
similarity index 78%
rename from src/myapp/view/MyWindow.java
rename to src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java
index 7797f90bf99e53eeb390943465bb57afc01645ce..65edac7aaaff47a133a608b692a0887e8854c1dc 100644
--- a/src/myapp/view/MyWindow.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/view/MyWindow.java
@@ -1,9 +1,9 @@
-package myapp.view;
+package no.ntnu.idatt1002.demo.view;
 
-import myapp.repo.MyEntityRepo;
-import myapp.data.MyEntity;
+import no.ntnu.idatt1002.demo.repo.MyEntityRepo;
+import no.ntnu.idatt1002.demo.data.MyEntity;
 
-import java.awt.GridLayout;
+import java.awt.*;
 import javax.swing.*;
 
 /**
@@ -17,7 +17,6 @@ public class MyWindow extends JFrame {
      * Constructor for window
      *
      * @param  title  Title ow the window
-     * @return      the image at the specified URL
      * @see         Image
      */
     public MyWindow(String title) {
diff --git a/src/myapp/repo/MyEntityRepoTest.java b/src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java
similarity index 54%
rename from src/myapp/repo/MyEntityRepoTest.java
rename to src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java
index 6f7513f379c1835b3c3b75ab17dae21d02802086..9938c3c7b242ea60f2dd6d23fc9131842e16df23 100644
--- a/src/myapp/repo/MyEntityRepoTest.java
+++ b/src/test/java/no/ntnu/idatt1002/demo/repo/MyEntityRepoTest.java
@@ -1,16 +1,15 @@
-package myapp.repo;
+package no.ntnu.idatt1002.demo.repo;
 
+import no.ntnu.idatt1002.demo.data.MyEntity;
+import org.junit.jupiter.api.Test;
 
-import myapp.data.MyEntity;
-import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class MyEntityRepoTest {
 
     @Test
     public void testThatWeCanReadMyEntityFromDatabase() {
         MyEntity e = new MyEntityRepo().getMyEntity("id");
-
         assertEquals(e.getName(), "name");
     }