diff --git a/.idea/php.xml b/.idea/php.xml
index 8c7b72c..ea2c04b 100644
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -116,6 +116,9 @@
       <path value="$PROJECT_DIR$/skolehjem/vendor/composer" />
       <path value="$PROJECT_DIR$/skolehjem/vendor/spatie/laravel-permission" />
       <path value="$PROJECT_DIR$/skolehjem/vendor/laravel/ui" />
+      <path value="$PROJECT_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" />
+      <path value="$PROJECT_DIR$/skolehjem/vendor/jenssegers/agent" />
+      <path value="$PROJECT_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" />
     </include_path>
   </component>
   <component name="PhpProjectSharedConfiguration" php_language_level="7.2" />
diff --git a/.idea/skolehjem-webapp.iml b/.idea/skolehjem-webapp.iml
index 6b38422..924e151 100644
--- a/.idea/skolehjem-webapp.iml
+++ b/.idea/skolehjem-webapp.iml
@@ -28,6 +28,8 @@
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/guzzlehttp/promises" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/guzzlehttp/psr7" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/hamcrest/hamcrest-php" />
+      <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jaybizzle/crawler-detect" />
+      <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/jenssegers/agent" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laminas/laminas-diactoros" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laminas/laminas-zendframework-bridge" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/laravel/framework" />
@@ -39,6 +41,7 @@
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/event" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/flysystem" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/league/oauth2-server" />
+      <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mobiledetect/mobiledetectlib" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/mockery/mockery" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/monolog/monolog" />
       <excludeFolder url="file://$MODULE_DIR$/skolehjem/vendor/myclabs/deep-copy" />
diff --git a/skolehjem/app/Event.php b/skolehjem/app/Event.php
index 64fb4c2..7ccc3ac 100644
--- a/skolehjem/app/Event.php
+++ b/skolehjem/app/Event.php
@@ -6,5 +6,12 @@ use Illuminate\Database\Eloquent\Model;
 
 class Event extends Model
 {
-    //
+    /**
+     * The attributes that are mass assignable.
+     *
+     * @var array
+     */
+    protected $fillable = [
+        "name", "description"
+    ];
 }
diff --git a/skolehjem/app/ExternalLink.php b/skolehjem/app/ExternalLink.php
index 63ffc06..02745fa 100644
--- a/skolehjem/app/ExternalLink.php
+++ b/skolehjem/app/ExternalLink.php
@@ -6,5 +6,12 @@ use Illuminate\Database\Eloquent\Model;
 
 class ExternalLink extends Model
 {
-    //
+    /**
+     * The attributes that are mass assignable.
+     *
+     * @var array
+     */
+    protected $fillable = [
+        'name', "link"
+    ];
 }
diff --git a/skolehjem/app/Helpers/Detector.php b/skolehjem/app/Helpers/Detector.php
new file mode 100644
index 0000000..6b9481d
--- /dev/null
+++ b/skolehjem/app/Helpers/Detector.php
@@ -0,0 +1,22 @@
+<?php
+
+
+namespace App\Helpers;
+
+
+
+
+use Jenssegers\Agent\Agent;
+
+class Detector
+{
+    public static function View($viewName, $args) {
+
+        $agent = new Agent();
+
+        if($agent->isMobile()) {
+            return view(config("detector.mobilePath") . "." . $viewName, $args);
+        }
+        return view(config("detector.defaultPath") . "." . $viewName, $args);
+    }
+}
diff --git a/skolehjem/app/Http/Controllers/CalendarDateController.php b/skolehjem/app/Http/Controllers/CalendarDateController.php
index f47373f..e32daba 100644
--- a/skolehjem/app/Http/Controllers/CalendarDateController.php
+++ b/skolehjem/app/Http/Controllers/CalendarDateController.php
@@ -1,84 +1,95 @@
 <?php
-
-namespace App\Http\Controllers;
-
-use Illuminate\Http\Request;
-
-class CalendarDateController extends Controller
-{
-    /**
-     * Display a listing of the resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function index()
-    {
-        //
-    }
-
-    /**
-     * Show the form for creating a new resource.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function create()
-    {
-        //
-    }
-
-    /**
-     * Store a newly created resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function store(Request $request)
-    {
-        //
-    }
-
-    /**
-     * Display the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function show($id)
-    {
-        //
-    }
-
-    /**
-     * Show the form for editing the specified resource.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function edit($id)
-    {
-        //
-    }
-
-    /**
-     * Update the specified resource in storage.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function update(Request $request, $id)
-    {
-        //
-    }
-
-    /**
-     * Remove the specified resource from storage.
-     *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
-     */
-    public function destroy($id)
-    {
-        //
-    }
-}
+//
+//namespace App\Http\Controllers;
+//
+//use App\CalendarDate;
+//use Illuminate\Http\Request;
+//
+//class CalendarDateController extends Controller
+//{
+//    /**
+//     * Display a listing of the resource.
+//     *
+//     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+//     */
+//    public function index(Request $request)
+//    {
+//        $calendarDates = CalendarDate::query()->paginate($request->input("limit", 20));
+//
+//        return view("calendar-date.index", [
+//            "calendarDates" => $calendarDates
+//        ]);
+//    }
+//
+//    /**
+//     * Show the form for creating a new resource.
+//     *
+//     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+//     */
+//    public function create()
+//    {
+//        return view("calendar-date.create");
+//    }
+//
+//    /**
+//     * Store a newly created resource in storage.
+//     *
+//     * @param  \Illuminate\Http\Request  $request
+//     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+//     */
+//    public function store(Request $request)
+//    {
+//        $fields = $request->validate([
+//            "" => ""
+//        ]);
+//
+//        $calendarDate = new CalendarDate()
+//
+//        return view("calendar-date.store");
+//    }
+//
+//    /**
+//     * Display the specified resource.
+//     *
+//     * @param  int  $id
+//     * @return \Illuminate\Http\Response
+//     */
+//    public function show($id)
+//    {
+//        //
+//    }
+//
+//    /**
+//     * Show the form for editing the specified resource.
+//     *
+//     * @param  int  $id
+//     * @return \Illuminate\Http\Response
+//     */
+//    public function edit($id)
+//    {
+//        //
+//    }
+//
+//    /**
+//     * Update the specified resource in storage.
+//     *
+//     * @param  \Illuminate\Http\Request  $request
+//     * @param  int  $id
+//     * @return \Illuminate\Http\Response
+//     */
+//    public function update(Request $request, $id)
+//    {
+//        //
+//    }
+//
+//    /**
+//     * Remove the specified resource from storage.
+//     *
+//     * @param  int  $id
+//     * @return \Illuminate\Http\Response
+//     */
+//    public function destroy($id)
+//    {
+//        //
+//    }
+//}
diff --git a/skolehjem/app/Http/Controllers/EventController.php b/skolehjem/app/Http/Controllers/EventController.php
index 881efd2..95e95b5 100644
--- a/skolehjem/app/Http/Controllers/EventController.php
+++ b/skolehjem/app/Http/Controllers/EventController.php
@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Event;
 use App\User;
 use Illuminate\Http\Request;
 
@@ -10,56 +11,65 @@ class EventController extends Controller
     /**
      * Display a listing of the resource..
      *
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
     public function index(Request $request)
     {
-        $users = User::query()->paginate($request->query("limit", 20));
+        $events = Event::query()->paginate($request->input("limit", 20));
 
-        return view("user.index", [ "users" => $users]);
+        return Response::detect("admin.events.index", [ "events" => $events]);
     }
 
     /**
      * Show the form for creating a new resource.
      *
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
     public function create()
     {
-        return view("user.create");
+        return Response::detect("admin.events.create");
     }
 
     /**
      * Store a newly created resource in storage.
      *
      * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
     public function store(Request $request)
     {
-        //
+        $requestBody = $request->validate([
+            "name" => "required|unique:events|max:255",
+            "description" => "required|max:255"
+        ]);
+
+        $event = new Event($requestBody);
+
+        $event->save();
+
+        return Response::detect("admin.events.store");
     }
 
     /**
      * Display the specified resource.
      *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
+     * @param Event $id
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
-    public function show($id)
+    public function show(Event $id)
     {
-        //
+        return Response::detect("admin.events.show", [ "event" => $id ]);
     }
 
     /**
      * Show the form for editing the specified resource.-
      *
      * @param  int  $id
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
-    public function edit($id)
+    public function edit(Event $id)
     {
-        //
+        return Response::detect("admin.events.edit", [ "event" => $id ]);
     }
 
     /**
@@ -67,21 +77,32 @@ class EventController extends Controller
      *
      * @param  \Illuminate\Http\Request  $request
      * @param  int  $id
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
-    public function update(Request $request, $id)
+    public function update(Request $request, Event $id)
     {
-        //
+        $requestBody = $request->validate([
+            "name" => "unique:events|max:255",
+            "description" => "max:255"
+        ]);
+
+        $id->update($requestBody);
+        $id->save();
+
+        return Response::detect("admin.events.update");
     }
 
     /**
      * Remove the specified resource from storage.
      *
-     * @param  int  $id
-     * @return \Illuminate\Http\Response
+     * @param Event $id
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
+     * @throws \Exception
      */
-    public function destroy($id)
+    public function destroy(Event $id)
     {
-        //
+        $id->delete();
+
+        return Response::detect("admin.events.destroy");
     }
 }
diff --git a/skolehjem/app/Http/Controllers/ExternalLinkController.php b/skolehjem/app/Http/Controllers/ExternalLinkController.php
index 1a71828..2e028d1 100644
--- a/skolehjem/app/Http/Controllers/ExternalLinkController.php
+++ b/skolehjem/app/Http/Controllers/ExternalLinkController.php
@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\ExternalLink;
 use Illuminate\Http\Request;
 
 class ExternalLinkController extends Controller
@@ -9,32 +10,43 @@ class ExternalLinkController extends Controller
     /**
      * Display a listing of the resource.
      *
-     * @return \Illuminate\Http\Response
+     * @param Request $request
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
-    public function index()
+    public function index(Request $request)
     {
-        //
+        $externalLink = ExternalLink::query()->paginate($request->input("limit", 20));
+
+        return Response::detect("external-links.index", [ "externalLink" => $externalLink ]);
     }
 
     /**
      * Show the form for creating a new resource.
      *
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
     public function create()
     {
-        //
+        return Response::detect("external-links.create");
     }
 
     /**
      * Store a newly created resource in storage.
      *
      * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
+     * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
      */
     public function store(Request $request)
     {
-        //
+        $requestBody = $request->validate([
+            "name" => "required|max:255",
+            "link" => "required|max:255"
+        ]);
+
+        $externalLink = new ExternalLink($requestBody);
+        $externalLink->save();
+
+        return Response::detect("external-links.store");
     }
 
     /**
diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php
index 72ae39c..0f3916e 100644
--- a/skolehjem/app/Http/Controllers/RootController.php
+++ b/skolehjem/app/Http/Controllers/RootController.php
@@ -7,6 +7,6 @@ use Illuminate\Http\Request;
 class RootController extends Controller
 {
     public function index() {
-        return view("index");
+        return Response::detect("index");
     }
 }
diff --git a/skolehjem/app/Http/Controllers/UserController.php b/skolehjem/app/Http/Controllers/UserController.php
index d7126a2..c1a2fc1 100644
--- a/skolehjem/app/Http/Controllers/UserController.php
+++ b/skolehjem/app/Http/Controllers/UserController.php
@@ -2,9 +2,12 @@
 
 namespace App\Http\Controllers;
 
+use App\Helpers\Detector;
 use Illuminate\Http\Request;
+use Illuminate\Http\Response;
 use App\User;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Log;
 
 
 class UserController extends Controller
@@ -28,9 +31,9 @@ class UserController extends Controller
      */
     public function index(Request $request)
     {
-        $users = User::query()->paginate($request->query("page", 1));
+        $users = User::query()->paginate($request->query("page", 20));
 
-        return view("admin.user.index", [ "users" => $users ]);
+        return Response::detect("users.index", [ "users" => $users ]);
     }
 
     /**
@@ -40,7 +43,7 @@ class UserController extends Controller
      */
     public function create()
     {
-        return view("admin.user.create");
+        return Response::detect("admin.users.create");
     }
 
     /**
@@ -51,6 +54,8 @@ class UserController extends Controller
      */
     public function store(Request $request)
     {
+        Log::debug("STORE FUNCTION");
+
         $data = $request->validate([
             "name_first" => "required|max:255",
             "name_last" => "required|max:255",
@@ -60,10 +65,17 @@ class UserController extends Controller
 
         ]);
 
+        Log::debug("FINISHED VALIDATION?");
+
         $user = new User($data);
+
+        Log::debug("CREATED USER [NOT PERSISTED YET]");
+
         $user->save();
 
-        return view("admin.user.store");
+        Log::debug("SAVED USER");
+
+        return view("admin.users.store");
     }
 
     /**
@@ -76,7 +88,7 @@ class UserController extends Controller
     {
         $user = User::find($id);
 
-        return view("admin.user.show", [
+        return Respone::detect("admin.users.show", [
             "user" => $user
         ]);
     }
@@ -91,7 +103,7 @@ class UserController extends Controller
     {
         $user = User::find($id);
 
-        return view("admin.user.edit", [
+        return Response::detect("admin.users.edit", [
             "user" => $user
         ]);
     }
@@ -130,7 +142,7 @@ class UserController extends Controller
             $user->save();
         }
 
-        return view("admin.user.edit", [
+        return Response::detect("admin.users.edit", [
             "user" => $user
         ]);
     }
@@ -153,7 +165,7 @@ class UserController extends Controller
             $user->delete();
         }
 
-        return view("admin.user.delete");
+        return view("admin.users.delete");
     }
 
     /*******************************************/
@@ -161,7 +173,7 @@ class UserController extends Controller
     /*******************************************/
 
     public function showLogin() {
-        return view("admin.user.login");
+        return view("admin.users.login");
     }
 
     public function login(Request $request) {
@@ -169,7 +181,7 @@ class UserController extends Controller
 
         if(Auth::attempt($data)) {
             //TODO: Implement home?
-            return view("admin.user.home", [ "user" => Auth::user() ]);
+            return redirect()->route("users.index");
         }
 
         return redirect()->back(303);
diff --git a/skolehjem/app/Http/Controllers/WashingMachineController.php b/skolehjem/app/Http/Controllers/WashingMachineController.php
index f39aca5..b45d23c 100644
--- a/skolehjem/app/Http/Controllers/WashingMachineController.php
+++ b/skolehjem/app/Http/Controllers/WashingMachineController.php
@@ -18,7 +18,7 @@ class WashingMachineController extends Controller
     {
         $machines = WashingMachine::query()->paginate($request->query("page", 1));
 
-        return view("washing-machine.index", [ "machines" => $machines ]);
+        return Response::detect("admin.washing-machines.index", [ "machines" => $machines ]);
     }
 
     /**
@@ -28,7 +28,7 @@ class WashingMachineController extends Controller
      */
     public function create()
     {
-        return view("washing-machine.create");
+        return Response::detect("admin.washing-machines.create");
     }
 
     /**
@@ -46,7 +46,7 @@ class WashingMachineController extends Controller
         $machine = new WashingMachine($data);
         $machine->save();
 
-        return view("washing-machine.store");
+        return Response::detect("admin.washing-machines.store");
     }
 
     /**
@@ -59,7 +59,7 @@ class WashingMachineController extends Controller
     {
         $machine = WashingMachine::find($id);
 
-        return view("washing-machine.show", [
+        return Response::detect("admin.washing-machines.show", [
             "machine" => $machine
         ]);
     }
@@ -74,7 +74,7 @@ class WashingMachineController extends Controller
     {
         $machine = WashingMachine::find($id);
 
-        return view("washing-machine.edit", [
+        return Response::detect("admin.washing-machines.edit", [
             "machine" => $machine
         ]);
     }
@@ -98,7 +98,7 @@ class WashingMachineController extends Controller
 
         $machine->save();
 
-        return view("washing-machine.edit", [
+        return Response::detect("admin.washing-machines.edit", [
             "machine" => $machine
         ]);
     }
@@ -114,6 +114,6 @@ class WashingMachineController extends Controller
         $machine = WashingMachine::find($id);
         $machine->delete();
 
-        return view("washing-machine.destroy");
+        return Response::detect("admin.washing-machines.destroy");
     }
 }
diff --git a/skolehjem/app/Http/Controllers/WashingReservationController.php b/skolehjem/app/Http/Controllers/WashingReservationController.php
index 23ee6ee..6e30fce 100644
--- a/skolehjem/app/Http/Controllers/WashingReservationController.php
+++ b/skolehjem/app/Http/Controllers/WashingReservationController.php
@@ -17,7 +17,7 @@ class WashingReservationController extends Controller
     {
         $reservations = WashingReservation::query()->paginate($request->query("page", 1));
 
-        return view("washing-reservation.index");
+        return Response::detect("washing-reservation.index");
     }
 
     /**
@@ -27,7 +27,7 @@ class WashingReservationController extends Controller
      */
     public function create()
     {
-        return view("washing-reservation.create");
+        return Response::detect("washing-reservation.create");
     }
 
     /**
@@ -45,7 +45,7 @@ class WashingReservationController extends Controller
         $machineReservation = new WashingReservation($data);
         $machineReservation->save();
 
-        return view("washing-reservation.store");
+        return Response::detect("washing-reservation.store");
     }
 
     /**
@@ -58,7 +58,7 @@ class WashingReservationController extends Controller
     {
         $machineReservation = WashingReservation::find($id);
 
-        return view("washing-reservation.show", [
+        return Response::detect("washing-reservation.show", [
             "machineReservation" => $machineReservation
         ]);
     }
@@ -71,7 +71,7 @@ class WashingReservationController extends Controller
      */
     public function edit($id)
     {
-        return view("washing-reservation.edit");
+        return Response::detect("washing-reservation.edit");
     }
 
     /**
@@ -93,7 +93,7 @@ class WashingReservationController extends Controller
 
         $machineReservation->save();
 
-        return view("washing-reservation.edit", [
+        return Response::detect("washing-reservation.edit", [
             "washingReservation" => $machineReservation
         ]);
     }
@@ -109,6 +109,6 @@ class WashingReservationController extends Controller
         $machineReservation = WashingReservation::find($id);
         $machineReservation->delete();
 
-        return view("washing-reservation.delete");
+        return Response::detect("washing-reservation.delete");
     }
 }
diff --git a/skolehjem/app/Providers/DetectorServiceProvider.php b/skolehjem/app/Providers/DetectorServiceProvider.php
new file mode 100644
index 0000000..159fad5
--- /dev/null
+++ b/skolehjem/app/Providers/DetectorServiceProvider.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Providers;
+
+use Illuminate\Http\Response;
+use Illuminate\Support\ServiceProvider;
+use Jenssegers\Agent\Facades\Agent;
+
+class DetectorServiceProvider extends ServiceProvider
+{
+    /**
+     * Register services.
+     *
+     * @return void
+     */
+    public function register()
+    {
+        //
+    }
+
+    /**
+     * Bootstrap services.
+     *
+     * @return void
+     */
+    public function boot()
+    {
+        Response::macro("detect", function ($view, $args) {
+            if(Agent::isMobile()) {
+                return view(config("detector.mobilePath") . "." . $view, $args);
+            }
+            return view(config("detector.defaultPath") . "." . $view, $args);
+        });
+    }
+}
diff --git a/skolehjem/app/User.php b/skolehjem/app/User.php
index 061c7ba..ac8b735 100644
--- a/skolehjem/app/User.php
+++ b/skolehjem/app/User.php
@@ -6,6 +6,8 @@ use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Database\Eloquent\SoftDeletes;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Hash;
 use Spatie\Permission\Traits\HasRoles;
 
 class User extends Authenticatable
@@ -39,4 +41,8 @@ class User extends Authenticatable
     protected $casts = [
         'email_verified_at' => 'datetime',
     ];
+
+    public function setPasswordAttribute($password) {
+        $this->attributes["password"] = Hash::make($password);
+    }
 }
diff --git a/skolehjem/composer.json b/skolehjem/composer.json
index 3e766ed..c6162f5 100644
--- a/skolehjem/composer.json
+++ b/skolehjem/composer.json
@@ -12,6 +12,7 @@
         "fideloper/proxy": "^4.2",
         "fruitcake/laravel-cors": "^1.0",
         "guzzlehttp/guzzle": "^6.3",
+        "jenssegers/agent": "^2.6",
         "laravel/framework": "^7.0",
         "laravel/tinker": "^2.0",
         "laravel/ui": "^2.0",
diff --git a/skolehjem/composer.lock b/skolehjem/composer.lock
index 1674d3c..7eb5d9d 100644
--- a/skolehjem/composer.lock
+++ b/skolehjem/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "b3303d351cc84815ab8de6cb27db9490",
+    "content-hash": "8fa0914e6a247cbd0973c01078549d45",
     "packages": [
         {
             "name": "asm89/stack-cors",
@@ -102,12 +102,6 @@
                 "brick",
                 "math"
             ],
-            "funding": [
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/brick/math",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-04-15T15:59:35+00:00"
         },
         {
@@ -218,20 +212,6 @@
                 "uppercase",
                 "words"
             ],
-            "funding": [
-                {
-                    "url": "https://www.doctrine-project.org/sponsorship.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.patreon.com/phpdoctrine",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-29T15:13:26+00:00"
         },
         {
@@ -294,20 +274,6 @@
                 "parser",
                 "php"
             ],
-            "funding": [
-                {
-                    "url": "https://www.doctrine-project.org/sponsorship.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.patreon.com/phpdoctrine",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-25T17:44:05+00:00"
         },
         {
@@ -542,12 +508,6 @@
                 "crossdomain",
                 "laravel"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/barryvdh",
-                    "type": "github"
-                }
-            ],
             "time": "2020-04-28T08:47:37+00:00"
         },
         {
@@ -739,6 +699,124 @@
             ],
             "time": "2019-07-01T23:21:34+00:00"
         },
+        {
+            "name": "jaybizzle/crawler-detect",
+            "version": "v1.2.96",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/JayBizzle/Crawler-Detect.git",
+                "reference": "5a53c78644c54a628c3f5ead915c35b489c92239"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/5a53c78644c54a628c3f5ead915c35b489c92239",
+                "reference": "5a53c78644c54a628c3f5ead915c35b489c92239",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.8|^5.5|^6.5",
+                "satooshi/php-coveralls": "1.*"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Jaybizzle\\CrawlerDetect\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mark Beech",
+                    "email": "m@rkbee.ch",
+                    "role": "Developer"
+                }
+            ],
+            "description": "CrawlerDetect is a PHP class for detecting bots/crawlers/spiders via the user agent",
+            "homepage": "https://github.com/JayBizzle/Crawler-Detect/",
+            "keywords": [
+                "crawler",
+                "crawler detect",
+                "crawler detector",
+                "crawlerdetect",
+                "php crawler detect"
+            ],
+            "time": "2020-06-14T20:37:24+00:00"
+        },
+        {
+            "name": "jenssegers/agent",
+            "version": "v2.6.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/jenssegers/agent.git",
+                "reference": "daa11c43729510b3700bc34d414664966b03bffe"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/jenssegers/agent/zipball/daa11c43729510b3700bc34d414664966b03bffe",
+                "reference": "daa11c43729510b3700bc34d414664966b03bffe",
+                "shasum": ""
+            },
+            "require": {
+                "jaybizzle/crawler-detect": "^1.2",
+                "mobiledetect/mobiledetectlib": "^2.7.6",
+                "php": ">=5.6"
+            },
+            "require-dev": {
+                "php-coveralls/php-coveralls": "^2.1",
+                "phpunit/phpunit": "^5.0|^6.0|^7.0"
+            },
+            "suggest": {
+                "illuminate/support": "Required for laravel service providers"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Jenssegers\\Agent\\AgentServiceProvider"
+                    ],
+                    "aliases": {
+                        "Agent": "Jenssegers\\Agent\\Facades\\Agent"
+                    }
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Jenssegers\\Agent\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jens Segers",
+                    "homepage": "https://jenssegers.com"
+                }
+            ],
+            "description": "Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect",
+            "homepage": "https://github.com/jenssegers/agent",
+            "keywords": [
+                "Agent",
+                "browser",
+                "desktop",
+                "laravel",
+                "mobile",
+                "platform",
+                "user agent",
+                "useragent"
+            ],
+            "time": "2020-06-13T08:05:20+00:00"
+        },
         {
             "name": "laravel/framework",
             "version": "v7.14.1",
@@ -1086,32 +1164,6 @@
                 "md",
                 "parser"
             ],
-            "funding": [
-                {
-                    "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.colinodell.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.paypal.me/colinpodell/10.00",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/colinodell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://www.patreon.com/colinodell",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-04T22:15:21+00:00"
         },
         {
@@ -1196,13 +1248,59 @@
                 "sftp",
                 "storage"
             ],
-            "funding": [
+            "time": "2020-05-18T15:13:39+00:00"
+        },
+        {
+            "name": "mobiledetect/mobiledetectlib",
+            "version": "2.8.34",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/serbanghita/Mobile-Detect.git",
+                "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b",
+                "reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.8.35||~5.7"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "Mobile_Detect.php"
+                ],
+                "psr-0": {
+                    "Detection": "namespaced/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
                 {
-                    "url": "https://offset.earth/frankdejonge",
-                    "type": "other"
+                    "name": "Serban Ghita",
+                    "email": "serbanghita@gmail.com",
+                    "homepage": "http://mobiledetect.net",
+                    "role": "Developer"
                 }
             ],
-            "time": "2020-05-18T15:13:39+00:00"
+            "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
+            "homepage": "https://github.com/serbanghita/Mobile-Detect",
+            "keywords": [
+                "detect mobile devices",
+                "mobile",
+                "mobile detect",
+                "mobile detector",
+                "php mobile detect"
+            ],
+            "time": "2019-09-18T18:44:20+00:00"
         },
         {
             "name": "monolog/monolog",
@@ -1283,16 +1381,6 @@
                 "logging",
                 "psr-3"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/Seldaek",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-22T08:12:19+00:00"
         },
         {
@@ -1366,16 +1454,6 @@
                 "datetime",
                 "time"
             ],
-            "funding": [
-                {
-                    "url": "https://opencollective.com/Carbon",
-                    "type": "open_collective"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-24T18:27:52+00:00"
         },
         {
@@ -1544,16 +1622,6 @@
                 "php",
                 "type"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-06-07T10:40:07+00:00"
         },
         {
@@ -2048,12 +2116,6 @@
                 "identifier",
                 "uuid"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/ramsey",
-                    "type": "github"
-                }
-            ],
             "time": "2020-03-29T20:13:32+00:00"
         },
         {
@@ -2122,12 +2184,6 @@
                 "security",
                 "spatie"
             ],
-            "funding": [
-                {
-                    "url": "https://spatie.be/open-source/support-us",
-                    "type": "custom"
-                }
-            ],
             "time": "2020-05-20T00:31:29+00:00"
         },
         {
@@ -2269,20 +2325,6 @@
             ],
             "description": "Symfony Console Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -2336,20 +2378,6 @@
             ],
             "description": "Symfony CssSelector Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -2396,20 +2424,6 @@
             ],
             "description": "A generic function and convention to trigger deprecation notices",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-27T08:34:37+00:00"
         },
         {
@@ -2467,20 +2481,6 @@
             ],
             "description": "Symfony ErrorHandler Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -2553,20 +2553,6 @@
             ],
             "description": "Symfony EventDispatcher Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -2625,20 +2611,6 @@
                 "interoperability",
                 "standards"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -2688,20 +2660,6 @@
             ],
             "description": "Symfony Finder Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -2763,20 +2721,6 @@
             ],
             "description": "Symfony HttpFoundation Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-24T12:18:07+00:00"
         },
         {
@@ -2876,20 +2820,6 @@
             ],
             "description": "Symfony HttpKernel Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-31T06:14:18+00:00"
         },
         {
@@ -2953,20 +2883,6 @@
                 "mime",
                 "mime-type"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-25T12:33:44+00:00"
         },
         {
@@ -3025,20 +2941,6 @@
                 "polyfill",
                 "portable"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:14:59+00:00"
         },
         {
@@ -3098,20 +3000,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3172,20 +3060,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3248,20 +3122,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3325,20 +3185,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:14:59+00:00"
         },
         {
@@ -3398,20 +3244,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3467,20 +3299,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3539,20 +3357,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3615,20 +3419,6 @@
                 "portable",
                 "shim"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-12T16:47:27+00:00"
         },
         {
@@ -3679,20 +3469,6 @@
             ],
             "description": "Symfony Process Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -3771,20 +3547,6 @@
                 "uri",
                 "url"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -3843,20 +3605,6 @@
                 "interoperability",
                 "standards"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -3928,20 +3676,6 @@
                 "utf-8",
                 "utf8"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -4020,20 +3754,6 @@
             ],
             "description": "Symfony Translation Component",
             "homepage": "https://symfony.com",
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -4091,20 +3811,6 @@
                 "interoperability",
                 "standards"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-20T17:43:50+00:00"
         },
         {
@@ -4181,20 +3887,6 @@
                 "debug",
                 "dump"
             ],
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-30T20:35:19+00:00"
         },
         {
@@ -4308,16 +4000,6 @@
                 "env",
                 "environment"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-06-07T18:25:35+00:00"
         },
         {
@@ -4366,24 +4048,6 @@
                 "clean",
                 "php"
             ],
-            "funding": [
-                {
-                    "url": "https://www.paypal.me/moelleken",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/voku",
-                    "type": "github"
-                },
-                {
-                    "url": "https://www.patreon.com/voku",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-26T06:40:44+00:00"
         }
     ],
@@ -4442,20 +4106,6 @@
                 "constructor",
                 "instantiate"
             ],
-            "funding": [
-                {
-                    "url": "https://www.doctrine-project.org/sponsorship.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://www.patreon.com/phpdoctrine",
-                    "type": "patreon"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
-                    "type": "tidelift"
-                }
-            ],
             "time": "2020-05-29T17:27:14+00:00"
         },
         {
@@ -4510,12 +4160,6 @@
                 "flare",
                 "reporting"
             ],
-            "funding": [
-                {
-                    "url": "https://www.patreon.com/spatie",
-                    "type": "patreon"
-                }
-            ],
             "time": "2020-03-02T15:52:04+00:00"
         },
         {
@@ -4976,20 +4620,6 @@
                 "php",
                 "symfony"
             ],
-            "funding": [
-                {
-                    "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/nunomaduro",
-                    "type": "github"
-                },
-                {
-                    "url": "https://www.patreon.com/nunomaduro",
-                    "type": "patreon"
-                }
-            ],
             "time": "2020-04-04T19:56:08+00:00"
         },
         {
@@ -5638,16 +5268,6 @@
                 "testing",
                 "xunit"
             ],
-            "funding": [
-                {
-                    "url": "https://phpunit.de/donate.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
             "time": "2020-05-22T13:51:52+00:00"
         },
         {
@@ -5717,12 +5337,6 @@
                 "highlight.php",
                 "syntax"
             ],
-            "funding": [
-                {
-                    "url": "https://github.com/allejo",
-                    "type": "github"
-                }
-            ],
             "time": "2020-03-02T05:59:21+00:00"
         },
         {
@@ -6437,6 +6051,5 @@
     "platform": {
         "php": "^7.2.5"
     },
-    "platform-dev": [],
-    "plugin-api-version": "1.1.0"
+    "platform-dev": []
 }
diff --git a/skolehjem/config/app.php b/skolehjem/config/app.php
index 88be4a8..b7644e6 100644
--- a/skolehjem/config/app.php
+++ b/skolehjem/config/app.php
@@ -166,7 +166,7 @@ return [
          * Package Service Providers...
          */
         Spatie\Permission\PermissionServiceProvider::class,
-
+        Jenssegers\Agent\AgentServiceProvider::class,
 
         /*
          * Application Service Providers...
@@ -177,6 +177,10 @@ return [
         App\Providers\EventServiceProvider::class,
         App\Providers\RouteServiceProvider::class,
 
+        /*
+         * Custom Service Prviders
+         */
+        App\Providers\DetectorServiceProvider::class,
     ],
 
     /*
@@ -229,6 +233,7 @@ return [
         'Validator' => Illuminate\Support\Facades\Validator::class,
         'View' => Illuminate\Support\Facades\View::class,
 
+        'Agent' => Jenssegers\Agent\Facades\Agent::class,
     ],
 
 ];
diff --git a/skolehjem/config/detector.php b/skolehjem/config/detector.php
new file mode 100644
index 0000000..e1fb44b
--- /dev/null
+++ b/skolehjem/config/detector.php
@@ -0,0 +1,7 @@
+<?php
+
+return [
+    "defaultPath" => "admin",
+
+    "mobilePath" => "app",
+];
diff --git a/skolehjem/public/css/admin.css b/skolehjem/public/css/admin.css
index d623b23..63072d0 100644
--- a/skolehjem/public/css/admin.css
+++ b/skolehjem/public/css/admin.css
@@ -537,7 +537,6 @@ main {
 
 .tbl > tbody > tr > td > a {
   width: 100%;
-  display: flex;
 }
 
 .tbl > tbody > tr > td > a > img {
diff --git a/skolehjem/public/css/webapp.css b/skolehjem/public/css/webapp.css
new file mode 100644
index 0000000..b5a841d
--- /dev/null
+++ b/skolehjem/public/css/webapp.css
@@ -0,0 +1,505 @@
+@font-face {
+  font-family: "Titillium Web";
+  src: url("/fonts/TitilliumWeb-Regular.ttf");
+  font-weight: normal;
+}
+
+@font-face {
+  font-family: "Titillium Web";
+  src: url("/fonts/TitilliumWeb-SemiBold.ttf");
+  font-weight: 600;
+}
+
+@font-face {
+  font-family: "Titillium Web";
+  src: url("/fonts/TitilliumWeb-Bold.ttf");
+  font-weight: 700;
+}
+
+form {
+  max-width: 100%;
+  padding: 0 0.45rem 0 0.45rem;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+}
+
+.btn {
+  border: 0;
+  border-radius: 4px;
+  padding: 0.5rem;
+  cursor: pointer;
+  font-weight: 700;
+  font-size: 1.05rem;
+  background-color: white;
+  color: #333333;
+  margin-bottom: 0.5rem;
+}
+
+.btn-dark {
+  color: white;
+  background-color: #333333;
+}
+
+.btn-sde-blue {
+  color: white;
+  background-color: #00788a;
+}
+
+.btn-disabled {
+  color: white;
+  background-color: #cccccc;
+}
+
+.form-inline {
+  display: inline-flex;
+}
+
+input {
+  border: grey solid 2px;
+  border-radius: 4px;
+  background-color: transparent;
+  font-size: 1rem;
+  line-height: 2rem;
+  margin-bottom: 1rem;
+}
+
+input.appinput {
+  border: none;
+  border-bottom: white solid 2px;
+  background-color: transparent;
+  font-size: 1rem;
+  color: white;
+  line-height: 2rem;
+  margin-bottom: 1rem;
+}
+
+.d-flex {
+  display: flex;
+}
+
+.d-none {
+  display: none !important;
+}
+
+.row {
+  display: flex;
+  flex-direction: row;
+}
+
+.align-items-center {
+  align-items: center;
+}
+
+.col {
+  display: flex;
+  flex-direction: column;
+}
+
+.cursor-normal {
+  cursor: default;
+}
+
+.cursor-pointer {
+  cursor: pointer;
+}
+
+.text-white {
+  color: #ffffff;
+}
+
+.text-center {
+  text-align: center;
+}
+
+.sde-blue {
+  color: #00788a;
+}
+
+.sde-black-80 {
+  color: #333333;
+}
+
+.sde-black-20 {
+  color: #cccccc;
+}
+
+.regular {
+  font-weight: 400;
+}
+
+.semi-bold {
+  font-weight: 600;
+}
+
+.bold {
+  font-weight: 700;
+}
+
+.toggle__label.sde-blue::before {
+  border-color: #00788a;
+}
+
+.sde-blue.toggle__text::before {
+  border-color: #00788a;
+}
+
+span.toggle__text.sde-blue {
+  font-size: 5vw;
+}
+
+.m-auto {
+  margin: auto;
+}
+
+.mr-auto {
+  margin-right: auto;
+}
+
+.ml-auto {
+  margin-left: auto;
+}
+
+.mt-auto {
+  margin-top: auto;
+}
+
+.mb-auto {
+  margin-bottom: auto;
+}
+
+.ml-0 {
+  margin-left: 0;
+}
+
+.mr-0 {
+  margin-right: 0;
+}
+
+.mb-0 {
+  margin-bottom: 0;
+}
+
+.mt-0 {
+  margin-top: 0;
+}
+
+.ml-1 {
+  margin-left: 0.75rem;
+}
+
+.mr-1 {
+  margin-right: 0.75rem;
+}
+
+.mb-1 {
+  margin-bottom: 0.75rem;
+}
+
+.mt-1 {
+  margin-top: 0.75rem;
+}
+
+.ml-2 {
+  margin-left: 3rem;
+}
+
+.mr-2 {
+  margin-right: 3rem;
+}
+
+.mb-2 {
+  margin-bottom: 3rem;
+}
+
+.mt-2 {
+  margin-top: 3rem;
+}
+
+.ml-3 {
+  margin-left: 3rem;
+}
+
+.mr-3 {
+  margin-right: 4.75rem;
+}
+
+.mb-3 {
+  margin-bottom: 4.75rem;
+}
+
+.mt-3 {
+  margin-top: 4.75rem;
+}
+
+* {
+  font-family: "Titillium Web";
+}
+
+html,
+body {
+  width: 100%;
+  margin: 0;
+  padding: 0;
+  height: 100%;
+}
+
+::-moz-placeholder {
+  opacity: 1;
+}
+
+:-ms-input-placeholder {
+  opacity: 1;
+}
+
+::-ms-input-placeholder {
+  opacity: 1;
+}
+
+::placeholder {
+  opacity: 1;
+}
+
+a {
+  color: #000000;
+  text-decoration: none;
+}
+
+.w-100 {
+  width: 100%;
+}
+
+.w-85 {
+  width: 85%;
+}
+
+.w-75 {
+  width: 75%;
+}
+
+.w-50 {
+  width: 50%;
+}
+
+.w-25 {
+  width: 25%;
+}
+
+.w-15 {
+  width: 15%;
+}
+
+.h-100 {
+  height: 100%;
+}
+
+.h-90 {
+  height: 90%;
+}
+
+.h-10 {
+  height: 10%;
+}
+
+.bg-sde-blue {
+  background-color: #00788a;
+}
+
+.toggle {
+  --uiToggleSize: var(--toggleSize, 20px);
+  --uiToggleIndent: var(--toggleIndent, .4em);
+  --uiToggleBorderWidth: var(--toggleBorderWidth, 2px);
+  --uiToggleColor: var(--toggleColor, #000);
+  --uiToggleDisabledColor: var(--toggleDisabledColor, #868e96);
+  --uiToggleBgColor: var(--toggleBgColor, #fff);
+  --uiToggleArrowWidth: var(--toggleArrowWidth, 2px);
+  --uiToggleArrowColor: var(--toggleArrowColor, #fff);
+  margin-bottom: 1.5rem;
+  display: inline-block;
+  position: relative;
+}
+
+.toggle__input {
+  position: absolute;
+  left: -99999px;
+}
+
+.toggle__label {
+  display: inline-flex;
+  min-height: var(--uiToggleSize);
+  padding-left: calc(var(--uiToggleSize) + var(--uiToggleIndent));
+}
+
+.toggle__input:not(:disabled) ~ .toggle__label {
+  cursor: pointer;
+}
+
+.toggle__label::before,
+.toggle__label::after {
+  content: "";
+  box-sizing: border-box;
+  width: 1em;
+  height: 1em;
+  font-size: var(--uiToggleSize);
+  position: absolute;
+  left: 0;
+  top: 0;
+}
+
+.toggle__label:before {
+  border: var(--uiToggleBorderWidth) solid var(--uiToggleColor);
+  z-index: 2;
+}
+
+.toggle__input:disabled ~ .toggle__label::before {
+  border-color: var(--uiToggleDisabledColor);
+}
+
+.toggle__input:focus ~ .toggle__label::before {
+  box-shadow: 0 0 0 2px var(--uiToggleBgColor), 0 0 0 4px var(--uiToggleColor);
+}
+
+.toggle__input:not(:disabled):checked:focus ~ .toggle__label::after {
+  box-shadow: 0 0 0 2px var(--uiToggleBgColor), 0 0 0 4px var(--uiToggleColor);
+}
+
+.toggle__input:not(:disabled) ~ .toggle__label::after {
+  background-color: var(--uiToggleColor);
+  opacity: 0;
+}
+
+.toggle__input:not(:disabled):checked ~ .toggle__label::after {
+  opacity: 1;
+}
+
+.toggle__text {
+  margin-top: auto;
+  margin-bottom: auto;
+}
+
+.toggle__text::before {
+  content: "";
+  box-sizing: border-box;
+  width: 0;
+  height: 0;
+  font-size: var(--uiToggleSize);
+  border-left-width: 0;
+  border-bottom-width: 0;
+  border-left-style: solid;
+  border-bottom-style: solid;
+  border-color: var(--uiToggleArrowColor);
+  position: absolute;
+  top: 0.5428em;
+  left: 0.2em;
+  z-index: 3;
+  transform-origin: left top;
+  transform: rotate(-40deg) skew(10deg);
+}
+
+.toggle__input:not(:disabled):checked ~ .toggle__label .toggle__text::before {
+  width: 0.5em;
+  height: 0.25em;
+  border-left-width: var(--uiToggleArrowWidth);
+  border-bottom-width: var(--uiToggleArrowWidth);
+  will-change: width, height;
+  transition: width 0.1s ease-out 0.2s, height 0.2s ease-out;
+  margin-top: 3px;
+}
+
+.toggle__input:disabled ~ .toggle__label {
+  opacity: 0.24;
+  cursor: not-allowed;
+}
+
+.toggle__label::before,
+.toggle__label::after {
+  border: 2px solid;
+  border-color: white;
+}
+
+.toggle__input:not(:disabled) ~ .toggle__label::before,
+.toggle__input:not(:disabled) ~ .toggle__label::after {
+  opacity: 1;
+  transform-origin: center center;
+  margin-top: 3px;
+}
+
+.toggle__text::before {
+  opacity: 0;
+}
+
+.toggle__input:not(:disabled):checked ~ .toggle__label .toggle__text::before {
+  opacity: 1;
+  transition: opacity 0.1s ease-out 0.3s, width 0.1s ease-out 0.5s, height 0.2s ease-out 0.3s;
+}
+
+.toggle {
+  --toggleColor: transparent;
+  --toggleBgColor: transparent;
+  --toggleSize: 1.25rem;
+}
+
+main {
+  max-width: 900px;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  margin: auto;
+  padding: 0 1.25rem 0 1.25rem;
+}
+
+@media only screen and (max-width: 900px) {
+  main {
+    max-width: 460px;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    margin: auto;
+    padding: 0 1.25rem 0 1.25rem;
+  }
+
+  .brand {
+    padding: 0 1rem 0 1rem;
+    margin: 7rem 0 5rem 0;
+  }
+
+  header,
+  #menu {
+    padding: 1.25rem 1.75rem 0 1.75rem;
+  }
+
+  #menu {
+    padding-top: 4rem;
+  }
+
+  #menu > a {
+    color: white;
+    font-size: 8vw;
+    font-weight: 600;
+    display: flex;
+    align-items: center;
+    margin-bottom: 1.5rem;
+  }
+
+  #menu > a > img {
+    height: 1em;
+    margin-right: 8px;
+  }
+
+  h1 {
+    font-size: 12vw;
+  }
+
+  h3 {
+    font-size: 8vw;
+  }
+
+  span {
+    font-size: 12px;
+  }
+
+  p {
+    font-size: 4vw;
+  }
+}
+
diff --git a/skolehjem/resources/js/navmenu/menu.js b/skolehjem/resources/js/navmenu/menu.js
index 3ab3947..06634aa 100644
--- a/skolehjem/resources/js/navmenu/menu.js
+++ b/skolehjem/resources/js/navmenu/menu.js
@@ -2,7 +2,7 @@ document.addEventListener("DOMContentLoaded", function(){
     // Handler when the DOM is fully loaded
     var path = window.location.pathname;
 
-    if(path === "/menuplan" || path === "/vagttelefon" || path === "/")
+    if(path === "/menuplans" || path === "/vagttelefon" || path === "/")
     {
         document.getElementById ('toggle').addEventListener ('click', toggleMenu, false);
     }
diff --git a/skolehjem/resources/js/sites/menuplan.js b/skolehjem/resources/js/sites/menuplan.js
index 2f14dea..52b23fb 100644
--- a/skolehjem/resources/js/sites/menuplan.js
+++ b/skolehjem/resources/js/sites/menuplan.js
@@ -2,7 +2,7 @@ document.addEventListener("DOMContentLoaded", function(){
     // Handler when the DOM is fully loaded
     var path = window.location.pathname;
 
-    if(path === "/menuplan")
+    if(path === "/menuplans")
     {
         updateWeek();
     }
diff --git a/skolehjem/resources/sass/admin/content/table.scss b/skolehjem/resources/sass/admin/content/table.scss
index 54dff6e..552714b 100644
--- a/skolehjem/resources/sass/admin/content/table.scss
+++ b/skolehjem/resources/sass/admin/content/table.scss
@@ -22,7 +22,7 @@
 
 .tbl > tbody > tr > td > a {
     width: 100%;
-    display: flex;
+    //display: flex;
 }
 
 .tbl > tbody > tr > td > a > img {
diff --git a/skolehjem/resources/views/admin/events/create.blade.php b/skolehjem/resources/views/admin/events/create.blade.php
new file mode 100644
index 0000000..e16decc
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/create.blade.php
@@ -0,0 +1,41 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Opret Vaskemaskine</a> /
+@endsection
+
+@section("content")
+    <h1>Opret Bruger:</h1>
+    <form method="post" action="{{ route("washing-machines.store") }}">
+        @csrf
+        <label for="name_first">Navn:</label>
+        <input type="text" name="name" id="name" max="60" required>
+        <input type="submit" class="btn btn-dark text-white" value="Opret">
+    </form>
+
+{{--    <table class="tbl">--}}
+{{--        <tr>--}}
+{{--            <th>ID</th>--}}
+{{--            <th>Fornavn</th>--}}
+{{--            <th>Efternavn</th>--}}
+{{--            <th>Email</th>--}}
+{{--            <th>Tlf nr</th>--}}
+{{--            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>--}}
+{{--            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>--}}
+{{--        </tr>--}}
+{{--        <tr>--}}
+{{--            <td>{ID}</td>--}}
+{{--            <td>{Fornavn}</td>--}}
+{{--            <td>{Efternavn}</td>--}}
+{{--            <td>{Email}</td>--}}
+{{--            <td>{TLF}</td>--}}
+{{--            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>--}}
+{{--            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>--}}
+{{--        </tr>--}}
+{{--    </table>--}}
+@endsection
diff --git a/skolehjem/resources/views/admin/events/delete.blade.php b/skolehjem/resources/views/admin/events/delete.blade.php
new file mode 100644
index 0000000..e7c4ae2
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/delete.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/events/edit.blade.php b/skolehjem/resources/views/admin/events/edit.blade.php
new file mode 100644
index 0000000..daf1189
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/edit.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Events - Vis
+@endsection
+
+@section("path")
+    <a href="{{ route("events.index") }}" class="text-white">Vis Events</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/events/index.blade.php b/skolehjem/resources/views/admin/events/index.blade.php
new file mode 100644
index 0000000..e7c4ae2
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/index.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/events/show.blade.php b/skolehjem/resources/views/admin/events/show.blade.php
new file mode 100644
index 0000000..e7c4ae2
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/show.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/events/store.blade.php b/skolehjem/resources/views/admin/events/store.blade.php
new file mode 100644
index 0000000..e7c4ae2
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/store.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/events/update.blade.php b/skolehjem/resources/views/admin/events/update.blade.php
new file mode 100644
index 0000000..e7c4ae2
--- /dev/null
+++ b/skolehjem/resources/views/admin/events/update.blade.php
@@ -0,0 +1,33 @@
+@extends("admin.layout.base")
+@extends("admin.layout.header")
+
+@section("title")
+    Vaskemaskiner - Vis
+@endsection
+
+@section("path")
+    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+@endsection
+
+@section("content")
+    <table class="tbl">
+        <tr>
+            <th>ID</th>
+            <th>Fornavn</th>
+            <th>Efternavn</th>
+            <th>Email</th>
+            <th>Tlf nr</th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
+            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
+        </tr>
+        <tr>
+            <td>{ID}</td>
+            <td>{Fornavn}</td>
+            <td>{Efternavn}</td>
+            <td>{Email}</td>
+            <td>{TLF}</td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+        </tr>
+    </table>
+@endsection
diff --git a/skolehjem/resources/views/admin/layout/base.blade.php b/skolehjem/resources/views/admin/layout/base.blade.php
index 77277fd..8e6374f 100644
--- a/skolehjem/resources/views/admin/layout/base.blade.php
+++ b/skolehjem/resources/views/admin/layout/base.blade.php
@@ -22,10 +22,10 @@
         <div class="segment">
             <h3 class="text-white">Menuplan</h3>
             <div class="row">
-                <a href="" class="text-white"><img src="{{ asset('/images/icons/eye.svg') }}" alt="Read">Vis Menuplan</a>
+{{--                <a href="{{ route("menu-plans.index") }}" class="text-white"><img src="{{ asset('/images/icons/eye.svg') }}" alt="Read">Vis Menuplan</a>--}}
             </div>
             <div class="row">
-                <a href="" class="text-white"><img src="{{ asset('/images/icons/plus.svg') }}" alt="Create">Opret Menuplan</a>
+{{--                <a href="{{ route("menu-plans.create") }}" class="text-white"><img src="{{ asset('/images/icons/plus.svg') }}" alt="Create">Opret Menuplan</a>--}}
             </div>
         </div>
     </div>
diff --git a/skolehjem/resources/views/admin/layout/header.blade.php b/skolehjem/resources/views/admin/layout/header.blade.php
index d3ab485..a093951 100644
--- a/skolehjem/resources/views/admin/layout/header.blade.php
+++ b/skolehjem/resources/views/admin/layout/header.blade.php
@@ -4,9 +4,9 @@
 
         @auth
             <a href="" class="btn btn-dark text-white m-0 ml-auto">User: {{ Auth::user()->name }}</a>
-            <a href="{{ route('user.logout') }}" class="btn btn-dark text-white m-0 ml-1 mr-1">Log ud</a>
+            <a href="{{ route('users.logout') }}" class="btn btn-dark text-white m-0 ml-1 mr-1">Log ud</a>
         @else
-            <a href="{{ route('user.login') }}" class="btn btn-dark text-white m-0 ml-auto mr-1">Log ind</a>
+            <a href="{{ route('users.login') }}" class="btn btn-dark text-white m-0 ml-auto mr-1">Log ind</a>
         @endauth
 
     </header>
diff --git a/skolehjem/resources/views/admin/menuplan/create.blade.php b/skolehjem/resources/views/admin/menuplans/create.blade.php
similarity index 100%
rename from skolehjem/resources/views/admin/menuplan/create.blade.php
rename to skolehjem/resources/views/admin/menuplans/create.blade.php
diff --git a/skolehjem/resources/views/admin/menuplan/show.blade.php b/skolehjem/resources/views/admin/menuplans/show.blade.php
similarity index 100%
rename from skolehjem/resources/views/admin/menuplan/show.blade.php
rename to skolehjem/resources/views/admin/menuplans/show.blade.php
diff --git a/skolehjem/resources/views/admin/menuplan/update.blade.php b/skolehjem/resources/views/admin/menuplans/update.blade.php
similarity index 100%
rename from skolehjem/resources/views/admin/menuplan/update.blade.php
rename to skolehjem/resources/views/admin/menuplans/update.blade.php
diff --git a/skolehjem/resources/views/admin/users/create.blade.php b/skolehjem/resources/views/admin/users/create.blade.php
index 7976d5d..d5d02ed 100644
--- a/skolehjem/resources/views/admin/users/create.blade.php
+++ b/skolehjem/resources/views/admin/users/create.blade.php
@@ -11,7 +11,8 @@
 
 @section("content")
     <h1>Opret Bruger:</h1>
-    <form method="post" action="/users">
+    <form method="post" action="{{ route("users.store") }}">
+        @csrf
         <label for="name_first">Fornavn:</label>
             <input type="text" name="name_first" id="name_first" required>
         <label for="name_last">Efternavn:</label>
diff --git a/skolehjem/resources/views/admin/users/edit.blade.php b/skolehjem/resources/views/admin/users/edit.blade.php
index 6377d40..1619867 100644
--- a/skolehjem/resources/views/admin/users/edit.blade.php
+++ b/skolehjem/resources/views/admin/users/edit.blade.php
@@ -6,12 +6,13 @@
 @endsection
 
 @section("path")
-    <a href="{{ route('users.edit', ['id' => user->id]) }}" class="text-white">Rediger Bruger</a> /
+    <a href="{{ route('users.edit', ['id' => $user->id]) }}" class="text-white">Rediger Bruger</a> /
 @endsection
 
 @section("content")
     <h1>Rediger Bruger:</h1>
     <form method="post" action="">
+        @csrf
         <label for="name_first">Fornavn:</label>
         <input type="text" name="name_first" id="name_first" value="{Fornavn}" required>
         <label for="name_last">Efternavn:</label>
diff --git a/skolehjem/resources/views/admin/users/index.blade.php b/skolehjem/resources/views/admin/users/index.blade.php
index d9b22ee..efa7f8b 100644
--- a/skolehjem/resources/views/admin/users/index.blade.php
+++ b/skolehjem/resources/views/admin/users/index.blade.php
@@ -20,14 +20,18 @@
             <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
             <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
         </tr>
+        @foreach($users as $user)
         <tr>
-            <td>{ID}</td>
-            <td>{Fornavn}</td>
-            <td>{Efternavn}</td>
-            <td>{Email}</td>
-            <td>{TLF}</td>
-            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
-            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
+                <td>{{ $user->id }}</td>
+                <td>{{ $user->name_first }}</td>
+                <td>{{ $user->name_last }}</td>
+                <td>{{ $user->email }}</td>
+                <td>{{ $user->phone }}</td>
+                <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
+                <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
         </tr>
+        @endforeach
     </table>
+
+    {{ $users->links() }}
 @endsection
diff --git a/skolehjem/resources/views/admin/users/login.blade.php b/skolehjem/resources/views/admin/users/login.blade.php
index 5d9ade1..5accdac 100644
--- a/skolehjem/resources/views/admin/users/login.blade.php
+++ b/skolehjem/resources/views/admin/users/login.blade.php
@@ -10,6 +10,7 @@
             <img src="{{URL::asset('/images/logos/Logo-hvid.svg')}}" alt="Syddansk Erhvervsskole">
         </div>
         <form action="" method="post">
+            @csrf
             <input class="appinput" type="email" name="email" placeholder="Email" required>
             <input class="appinput" type="password" name="password" placeholder="Password" required>
             <label class="toggle">
diff --git a/skolehjem/resources/views/admin/washing-machines/create.blade.php b/skolehjem/resources/views/admin/washing-machines/create.blade.php
index e7c4ae2..e16decc 100644
--- a/skolehjem/resources/views/admin/washing-machines/create.blade.php
+++ b/skolehjem/resources/views/admin/washing-machines/create.blade.php
@@ -6,28 +6,36 @@
 @endsection
 
 @section("path")
-    <a href="" class="text-white">Vis Vaskemaskiner</a> /
+    <a href="" class="text-white">Opret Vaskemaskine</a> /
 @endsection
 
 @section("content")
-    <table class="tbl">
-        <tr>
-            <th>ID</th>
-            <th>Fornavn</th>
-            <th>Efternavn</th>
-            <th>Email</th>
-            <th>Tlf nr</th>
-            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>
-            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>
-        </tr>
-        <tr>
-            <td>{ID}</td>
-            <td>{Fornavn}</td>
-            <td>{Efternavn}</td>
-            <td>{Email}</td>
-            <td>{TLF}</td>
-            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>
-            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>
-        </tr>
-    </table>
+    <h1>Opret Bruger:</h1>
+    <form method="post" action="{{ route("washing-machines.store") }}">
+        @csrf
+        <label for="name_first">Navn:</label>
+        <input type="text" name="name" id="name" max="60" required>
+        <input type="submit" class="btn btn-dark text-white" value="Opret">
+    </form>
+
+{{--    <table class="tbl">--}}
+{{--        <tr>--}}
+{{--            <th>ID</th>--}}
+{{--            <th>Fornavn</th>--}}
+{{--            <th>Efternavn</th>--}}
+{{--            <th>Email</th>--}}
+{{--            <th>Tlf nr</th>--}}
+{{--            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/pencil.svg') }}" alt="Update"></th>--}}
+{{--            <th style="width: 1px;"><img class="w-100" src="{{ asset('/images/icons/trashcan.svg') }}" alt="Delete"></th>--}}
+{{--        </tr>--}}
+{{--        <tr>--}}
+{{--            <td>{ID}</td>--}}
+{{--            <td>{Fornavn}</td>--}}
+{{--            <td>{Efternavn}</td>--}}
+{{--            <td>{Email}</td>--}}
+{{--            <td>{TLF}</td>--}}
+{{--            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/pencil-dark.svg') }}" alt="Update"></a></td>--}}
+{{--            <td><a href=""><img class="w-100" src="{{ asset('/images/icons/trashcan-dark.svg') }}" alt="Delete"></a></td>--}}
+{{--        </tr>--}}
+{{--    </table>--}}
 @endsection
diff --git a/skolehjem/resources/views/app/user/index.blade.php b/skolehjem/resources/views/app/users/index.blade.php
similarity index 100%
rename from skolehjem/resources/views/app/user/index.blade.php
rename to skolehjem/resources/views/app/users/index.blade.php
diff --git a/skolehjem/resources/views/app/user/login.blade.php b/skolehjem/resources/views/app/users/login.blade.php
similarity index 100%
rename from skolehjem/resources/views/app/user/login.blade.php
rename to skolehjem/resources/views/app/users/login.blade.php
diff --git a/skolehjem/resources/views/app/user/register.blade.php b/skolehjem/resources/views/app/users/register.blade.php
similarity index 100%
rename from skolehjem/resources/views/app/user/register.blade.php
rename to skolehjem/resources/views/app/users/register.blade.php
diff --git a/skolehjem/resources/views/index.blade.php b/skolehjem/resources/views/index.blade.php
index 840da1d..d83617f 100644
--- a/skolehjem/resources/views/index.blade.php
+++ b/skolehjem/resources/views/index.blade.php
@@ -29,10 +29,10 @@
 {{--@extends("admin.users.update")--}}
 
 {{--Create Menuplan--}}
-{{--@extends("admin.menuplan.create")--}}
+{{--@extends("admin.menuplans.create")--}}
 
 {{--Read Menuplan--}}
-{{--@extends("admin.menuplan.show")--}}
+{{--@extends("admin.menuplans.show")--}}
 
 {{--Update Menuplan--}}
-{{--@extends("admin.menuplan.update")--}}
+{{--@extends("admin.menuplans.update")--}}
diff --git a/skolehjem/routes/web.php b/skolehjem/routes/web.php
index 487021b..ee7edf7 100644
--- a/skolehjem/routes/web.php
+++ b/skolehjem/routes/web.php
@@ -17,16 +17,16 @@ use Illuminate\Support\Facades\Route;
 //    return view('welcome');
 //});
 
-Route::middleware(["auth"])->group(function () {
-    Route::resource("washing-machines", "WashingMachineController");
-    Route::resource("washing-reservations", "WashingReservationController");
-});
-
 Route::get("/", "RootController@index")->name("root.index");
 
 
-Route::get("/login", "UserController@showLogin")->name("user.show-login");
-Route::post("/login", "UserController@login")->name("user.login");
-Route::get("/logout", "UserController@logout")->name("user.logout");
+Route::get("/login", "UserController@showLogin")->name("users.show-login");
+Route::post("/login", "UserController@login")->name("users.login");
+Route::get("/logout", "UserController@logout")->name("users.logout");
 
+
+Route::resource("menu-plans", "");
 Route::resource("users", "UserController");
+Route::resource("events", "EventController");
+Route::resource("washing-machines", "WashingMachineController");
+Route::resource("washing-reservations", "WashingReservationController");