diff --git a/WebServer/.idea/sonarlint/issuestore/5/0/50f8adb69a1d742a704b1c91a7b427f86f4f8908 b/WebServer/.idea/sonarlint/issuestore/5/0/50f8adb69a1d742a704b1c91a7b427f86f4f8908
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/WebServer/.idea/sonarlint/issuestore/5/e/5e32bc0de23cbe8c60b38438ef2145d6849d9bf9 b/WebServer/.idea/sonarlint/issuestore/5/e/5e32bc0de23cbe8c60b38438ef2145d6849d9bf9
new file mode 100644
index 0000000000000000000000000000000000000000..1d60d448a61f10f12bf1efa1946b998ae836f0ab
--- /dev/null
+++ b/WebServer/.idea/sonarlint/issuestore/5/e/5e32bc0de23cbe8c60b38438ef2145d6849d9bf9
@@ -0,0 +1,4 @@
+
+R
+java:S1191	"5Use classes from the Java API instead of Sun classes.(üÕÙä8î˜0
+Z	java:S106%"9Replace this use of System.out or System.err by a logger.(ÉÒá†úÿÿÿÿ8”說˜0
\ No newline at end of file
diff --git a/WebServer/.idea/sonarlint/issuestore/b/2/b235fa934a9d102f9daeefa97a7d4e112fdac917 b/WebServer/.idea/sonarlint/issuestore/b/2/b235fa934a9d102f9daeefa97a7d4e112fdac917
new file mode 100644
index 0000000000000000000000000000000000000000..5ee544694340f2e366e84f62b0593745b197ec5b
--- /dev/null
+++ b/WebServer/.idea/sonarlint/issuestore/b/2/b235fa934a9d102f9daeefa97a7d4e112fdac917
@@ -0,0 +1,11 @@
+
+K
+java:S1191"5Use classes from the Java API instead of Sun classes.(‡–õ
+S	java:S106"9Replace this use of System.out or System.err by a logger.(¾ü‡“þÿÿÿÿ
+X	java:S125Q"<This block of commented-out lines of code should be removed.(Ÿ¾Î£8–Ýœ¯˜0
+N	java:S106Z"9Replace this use of System.out or System.err by a logger.(Ýáü÷
+[	java:S106€"9Replace this use of System.out or System.err by a logger.(‹•åÿÿÿÿÿ8Îúß®˜0
+[	java:S106ƒ"9Replace this use of System.out or System.err by a logger.(ïí¼¦ýÿÿÿÿ8Ïúß®˜0
+V	java:S106Š"9Replace this use of System.out or System.err by a logger.(ŸÃèé8Ðúß®˜0
+L
+java:S2093w"*Change this "try" to a try-with-resources.(¡»¢üùÿÿÿÿ8Ðúß®˜0
\ No newline at end of file
diff --git a/WebServer/.idea/sonarlint/issuestore/index.pb b/WebServer/.idea/sonarlint/issuestore/index.pb
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..631b09f43617462419a38e9475fc53bca460d128 100644
--- a/WebServer/.idea/sonarlint/issuestore/index.pb
+++ b/WebServer/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,7 @@
+
+=
+
WebServer.iml,5/0/50f8adb69a1d742a704b1c91a7b427f86f4f8908
+B
+src/code/Home.java,5/e/5e32bc0de23cbe8c60b38438ef2145d6849d9bf9
+D
+src/code/Server.java,b/2/b235fa934a9d102f9daeefa97a7d4e112fdac917
\ No newline at end of file
diff --git a/WebServer/src/code/Home.java b/WebServer/src/code/Home.java
index e5cdf506c0ee61a9062718b6e73dfbc76a84f255..836fc4df5b84587869ce6f9ee51bbfbf2d8198ca 100644
--- a/WebServer/src/code/Home.java
+++ b/WebServer/src/code/Home.java
@@ -17,6 +17,7 @@ public class Home implements HttpHandler {
     @Override
     public void handle(HttpExchange exchange) throws IOException {
         URI requestURI = exchange.getRequestURI();
+        System.out.println(requestURI.toASCIIString());
         if(requestURI.compareTo(URI.create("/")) != 0) {
             String error = "Invalid URI";
             OutputStream os = exchange.getResponseBody();
diff --git a/WebServer/src/code/ImageRes.java b/WebServer/src/code/ImageRes.java
new file mode 100644
index 0000000000000000000000000000000000000000..2d0cb2f59c0d5c572a1bc4abd0f01207c42772a9
--- /dev/null
+++ b/WebServer/src/code/ImageRes.java
@@ -0,0 +1,57 @@
+package code;
+
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.imageio.ImageIO;
+
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+
+public class ImageRes implements HttpHandler {
+
+	@Override
+	public void handle(HttpExchange exchange) throws IOException {
+		URI requestURI = exchange.getRequestURI();
+		System.out.println(requestURI.toASCIIString());
+
+		String requestMethod = exchange.getRequestMethod();
+		if (Helper.compareText(requestMethod, "GET")) {
+			BufferedImage image = getLocalImage(requestURI.toASCIIString());
+			if (image == null)
+				Helper.pageNotFound(exchange);
+			List<String> strlist = new ArrayList<>();
+			strlist.add("image/png");
+			OutputStream os = exchange.getResponseBody();
+			ByteArrayOutputStream baos = new ByteArrayOutputStream();
+			ImageIO.write(image, "png", baos);
+			baos.flush();
+			byte[] imageInByte = baos.toByteArray();
+            exchange.getResponseHeaders().put("content-type", strlist);
+            exchange.sendResponseHeaders(200, imageInByte.length);
+			os.write(imageInByte);
+			os.close();
+		} else {
+			Helper.methodNotAllowed(exchange);
+		}
+	}
+
+	private BufferedImage getLocalImage(String uri) {
+		String page = Server.CLIENT_PATH + uri;
+		try {
+			File f = new File(page);
+			BufferedImage image = ImageIO.read(f);
+			return image;
+		} catch (IOException e) {
+			System.out.println("Error reading file '" + page + "'");
+			return null;
+		}
+	}
+
+}
diff --git a/WebServer/src/code/Resources.java b/WebServer/src/code/Resources.java
new file mode 100644
index 0000000000000000000000000000000000000000..10f1f051c71083691922fc8cfc0dff6ae0e49e4d
--- /dev/null
+++ b/WebServer/src/code/Resources.java
@@ -0,0 +1,94 @@
+package code;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+
+public class Resources implements HttpHandler {
+	
+
+	@Override
+	public void handle(HttpExchange exchange) throws IOException {
+		URI requestURI = exchange.getRequestURI();
+        System.out.println(requestURI.toASCIIString());
+
+        String requestMethod = exchange.getRequestMethod();
+        if (Helper.compareText(requestMethod, "GET")) {
+            String response = getLocalPage(requestURI.toASCIIString());
+            List<String> strlist = new ArrayList<>();
+            System.out.println(requestURI.toASCIIString().substring(1, 4));
+            switch (requestURI.toASCIIString().substring(1, 4)) {
+            case "js/" -> strlist.add("text/javascript");
+            case "css" -> strlist.add("text/css");
+            default -> strlist.add("text");
+            }
+            exchange.getResponseHeaders().put("content-type", strlist);
+            exchange.sendResponseHeaders(200, response.getBytes().length);
+            OutputStream os = exchange.getResponseBody();
+            os.write(response.getBytes());
+            os.close();
+        } else {
+            Helper.methodNotAllowed(exchange);
+        }
+	}
+	
+	private static String getLocalPage(String uri) {
+        String page = Server.CLIENT_PATH+uri;
+        StringBuilder answer = new StringBuilder();
+        BufferedReader bufferedReader = null;
+        
+        try {
+            FileReader fileReader = new FileReader(page);
+
+            bufferedReader = new BufferedReader(fileReader);
+            boolean isComment = false;
+            String line;
+            while ((line = bufferedReader.readLine()) != null) {
+            	line = line.trim();
+            	if(line.startsWith("/*") && line.endsWith("*/")) {
+            		isComment = false;
+            		continue;
+            	}
+            	if(line.startsWith("//")) {
+            		isComment = false;
+            		continue;
+            	}
+            	if(line.startsWith("/*")) {
+            		isComment = true;
+            		continue;
+            	}
+            	if(line.endsWith("*/")) {
+            		isComment = false;
+            		continue;
+            	}
+            	if(!isComment && line.length()>0)
+            		answer.append(line).append("\n");
+            }
+        } catch (FileNotFoundException ex) {
+            System.out.println("Unable to open file '" + page + "'");
+            return "fail";
+        } catch (IOException ex) {
+            System.out.println("Error reading file '" + page + "'");
+            return "fail";
+        } finally {
+            try{
+                if(bufferedReader != null)
+                    bufferedReader.close();
+            } catch (IOException ex){
+                System.out.println("Error closing bufferedReader");
+            }
+        }
+        return answer.substring(0,answer.length()-1);
+    }
+	
+	
+
+}
diff --git a/WebServer/src/code/Server.java b/WebServer/src/code/Server.java
index cbb3538e17c93e8b3371def9262471efbf156562..cbeb7735ef2b366228d3a96ce5b08818580b6d19 100644
--- a/WebServer/src/code/Server.java
+++ b/WebServer/src/code/Server.java
@@ -15,10 +15,13 @@ import javax.net.ssl.TrustManagerFactory;
 import com.sun.net.httpserver.HttpsConfigurator;
 import com.sun.net.httpserver.HttpsParameters;
 import com.sun.net.httpserver.HttpsServer;
+import com.sun.net.httpserver.HttpServer;
 
 public class Server {
 
-    private static int port = 443;
+//    private static int port = 443;
+    private static int port = 3000;
+	public static String CLIENT_PATH = "./../webapp/public";
 
     public static void main(String[] args) throws IOException {
         if (args.length > 1 && args[0].equals("-port"))
@@ -27,11 +30,11 @@ public class Server {
             } catch (Exception e) {
                 e.printStackTrace();
             }
-        HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);
-
+//        HttpsServer server = HttpsServer.create(new InetSocketAddress(port), 0);
+        HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
 
         // initialise the HTTPS server
-        try {
+        /*try {
             SSLContext sslContext = SSLContext.getInstance("TLS");
 
             // initialise the keystore
@@ -71,19 +74,7 @@ public class Server {
                 }
             });
 
-            //API del server
-			server.createContext("/luci/",new Luci());//post, get [put, delete] {luogo e stato di tutte luci}
-			server.createContext("/luci/stato/",new Luci());//put {aggiorna lo stato di una luce}
-			server.createContext("/scenari/",new Scenari());//get {nome e data di tutti gli scenari}
-			server.createContext("/scenari/attiva/",new Scenari());//put {attiva/disattiva}
-			server.createContext("/scenari/registra/",new Scenari());//put {registra/termina}
-			server.createContext("/scenari/registra/conferma/",new Scenari());//post {conferma salvataggio; altrimenti cancella}
-			server.createContext("/antifurto/",new Antifurto());//get {stato, allarme, attenzione, soglia, sensori}
-			server.createContext("/antifurto/stato/",new Antifurto());//get, put {se l'antifurto e' attivo + aggiornamento}
-			server.createContext("/antifurto/allarme/",new Antifurto());//get, put {se l'allarme sta suonando + aggiornamento}
-			server.createContext("/antifurto/attenzione/",new Antifurto());//put {valore della progress bar}
-			server.createContext("/antifurto/soglia/",new Antifurto());//put {valore scelto dall'utente per la soglia}
-			server.createContext("/",new Home());
+            //API del server qui
 			
 //            server.setExecutor(Executors.newFixedThreadPool(11));
             server.setExecutor(Executors.newCachedThreadPool());
@@ -92,7 +83,26 @@ public class Server {
         } catch (Exception e) {
         	System.out.println("Failed to create HTTPS server on port " + port + " of localhost");
             e.printStackTrace();
-        }
+        }*/
+        //API del server
+		server.createContext("/luci/",new Luci());//post, get [put, delete] {luogo e stato di tutte luci}
+		server.createContext("/luci/stato/",new Luci());//put {aggiorna lo stato di una luce}
+		server.createContext("/scenari/",new Scenari());//get {nome e data di tutti gli scenari}
+		server.createContext("/scenari/attiva/",new Scenari());//put {attiva/disattiva}
+		server.createContext("/scenari/registra/",new Scenari());//put {registra/termina}
+		server.createContext("/scenari/registra/conferma/",new Scenari());//post {conferma salvataggio; altrimenti cancella}
+		server.createContext("/antifurto/",new Antifurto());//get {stato, allarme, attenzione, soglia, sensori}
+		server.createContext("/antifurto/stato/",new Antifurto());//get, put {se l'antifurto e' attivo + aggiornamento}
+		server.createContext("/antifurto/allarme/",new Antifurto());//get, put {se l'allarme sta suonando + aggiornamento}
+		server.createContext("/antifurto/attenzione/",new Antifurto());//put {valore della progress bar}
+		server.createContext("/antifurto/soglia/",new Antifurto());//put {valore scelto dall'utente per la soglia}
+		server.createContext("/js/",new Resources());
+		server.createContext("/css/",new Resources());
+		server.createContext("/res/",new ImageRes());
+		server.createContext("/",new Home());
+		server.setExecutor(Executors.newCachedThreadPool());
+		server.start();
+        System.out.println("webserver running on localhost:"+port);
     }
 
 }
diff --git a/webapp/public/css/style.css b/webapp/public/css/style.css
index 471e0aef42d16fe333e98b418a6fe7ce75f25c70..b9a9114184fd8ed5a703b5ecea6fbb5b434f1d01 100644
--- a/webapp/public/css/style.css
+++ b/webapp/public/css/style.css
@@ -1,5 +1,3 @@
-
-
 /* switch toggle */
 .switch-container {
     position: relative;
diff --git a/webapp/public/js/antifurto.js b/webapp/public/js/antifurto.js
index 882c776e927934a34812b4db37536732571cf3f6..4571a3d5018e01dbbc6eb5a3042ea5706812db23 100644
--- a/webapp/public/js/antifurto.js
+++ b/webapp/public/js/antifurto.js
@@ -247,9 +247,9 @@ class Antifurto {
      */
     static timer() {
         setInterval(() => {
-            Antifurto.changeProgressBar(-5);
+            if(Antifurto.status)
+                Antifurto.changeProgressBar(-5);
         }, 60000);
-        //FIXME test to remove the following lines
         const github = document.getElementById('boost-progressbar');
         github.addEventListener('click', () => {
             Antifurto.changeProgressBar(3);
diff --git a/webapp/public/js/luci.js b/webapp/public/js/luci.js
index 0cbc0c03a675999eddabdb870c75b5c2839ecdf5..3d7055ed60584b9816987e516e38f961c028c002 100644
--- a/webapp/public/js/luci.js
+++ b/webapp/public/js/luci.js
@@ -103,7 +103,7 @@ class Luci {
             // TODO server send stanza
 
             // add stanza to table
-            const luceJSON = Luci.createLight();
+            const luceJSON = Luci.createLight(stanza,false);
             Luci.showNewLight(luceJSON);
 
             // close modal