diff --git a/assets/calendar.js b/assets/calendar.js
index 56af72e59627ea6d15fc58d60649b9a726e94129..2c181f4f9616c46c618513b83da39d82c31cbdac 100644
--- a/assets/calendar.js
+++ b/assets/calendar.js
@@ -21,7 +21,6 @@ $(function () {
     useCreationPopup: true,
     useDetailPopup: true
   });
-  console.log(calendar);
 
   function getStartAndEndDates() {
     let dateStart = String(calendar.getDateRangeStart().toDate()).slice(4, 15);
@@ -35,7 +34,6 @@ $(function () {
   var currentSchedule = 1
 
   function sendCalendarData() {
-    console.log(scheduleIds)
     var schedules = []
     scheduleIds.forEach(function (id) {
       var schedule = calendar.getSchedule(String(id), '1');
@@ -47,7 +45,6 @@ $(function () {
       type: "POST",
       url: "/calendar/send",
       data: JSON.stringify(schedules),
-      success: function (data) { console.log(data) },
       dataType: "json",
       contentType: 'application/json'
     });
@@ -83,7 +80,6 @@ $(function () {
   });
 
   calendar.on('beforeDeleteSchedule', function (event) {
-    console.log('schedule delete');
     calendar.deleteSchedule(event.schedule.id, event.schedule.calendarId, event.schedule);
     sendCalendarData();
   });
@@ -102,8 +98,10 @@ $(function () {
     var schedule = event.schedule;
     var changes = event.changes;
 
+    changes.calendarId = "1"
+
     calendar.updateSchedule(schedule.id, schedule.calendarId, changes);
-    calendar.sendCalendarData();
+    sendCalendarData();
   });
 
 
@@ -112,7 +110,6 @@ $(function () {
     url: "/calendar/receive",
     success: function (data) {
       var cleanedData = []
-      console.log(data)
       if (Array.isArray(data)) {
         data.forEach(function (schedule) {
           if (schedule) {
diff --git a/config/packages/security.yaml b/config/packages/security.yaml
index 1723448b85e7d1bf7aa66fb814b68fd1a177d098..3f32e2f12c64497651a1964505126c3c6c82b2c1 100644
--- a/config/packages/security.yaml
+++ b/config/packages/security.yaml
@@ -25,6 +25,9 @@ security:
                 login_path: login
                 check_path: login
 
+            logout:
+                path: app_logout
+
             # activate different ways to authenticate
             # https://symfony.com/doc/current/security.html#the-firewall
 
diff --git a/src/Controller/CalendarController.php b/src/Controller/CalendarController.php
index 0023f099791c24bb700168485b69638fdde32dbd..d3d22e7b56c094ee56799a1c7c0ea11214eadfff 100644
--- a/src/Controller/CalendarController.php
+++ b/src/Controller/CalendarController.php
@@ -12,9 +12,10 @@ use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Routing\Annotation\Route;
 
+#[IsGranted('ROLE_USER')]
 class CalendarController extends AbstractController
 {
-    #[Route('/calendar', name: 'calendar')]
+    #[Route('/', name: 'calendar')]
     public function index(): Response
     {
         return $this->render('calendar/index.html.twig', [
@@ -23,7 +24,6 @@ class CalendarController extends AbstractController
     }
 
     #[Route('/calendar/receive', name: 'calendar_receive')]
-    #[IsGranted('ROLE_USER')]
     public function calendarReceive()
     {
         $user = $this->getUser();
@@ -38,7 +38,6 @@ class CalendarController extends AbstractController
     }
 
     #[Route('/calendar/send', name: 'calendar_send')]
-    #[IsGranted('ROLE_USER')]
     public function calendarSend(Request $request, EntityManagerInterface $manager)
     {
         $json = $request->getContent();
diff --git a/src/Controller/SignUpController.php b/src/Controller/SignUpController.php
index b116111fc0cbd40a618f3f1d073ecb9357e6aea6..663b43f45a9e4f9dd9695e06aaf10e6fc54b8e6e 100644
--- a/src/Controller/SignUpController.php
+++ b/src/Controller/SignUpController.php
@@ -8,20 +8,30 @@ use Symfony\Component\Routing\Annotation\Route;
 use Symfony\Component\HttpFoundation\Request;
 use App\Entity\User;
 use App\Form\UserType;
+use Doctrine\ORM\EntityManagerInterface;
+use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
 
 class SignUpController extends AbstractController
 {
     #[Route('/sign_up', name: 'sign_up')]
-    public function new(Request $request): Response
+    public function new(Request $request, EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher): Response
     {
         $user = new User();
         $form = $this->createForm(UserType::class, $user);
-        
+
         $form->handleRequest($request);
         if ($form->isSubmitted() && $form->isValid()) {
             $user = $form->getData();
 
-            $this->addFlash('succes', 'Vous pouvez maintenant vous connecter à votre compte.');
+            $user->setPassword($passwordHasher->hashPassword(
+                $user,
+                $user->getPassword()
+            ));
+
+            $entityManager->persist($user);
+            $entityManager->flush();
+
+            $this->addFlash('success', 'Your account has been created. You may now log in.');
             return $this->redirectToRoute('login');
         }
 
diff --git a/src/Form/UserType.php b/src/Form/UserType.php
index f752ed2785bf4f60a85ca32454bb9186b86333ee..6baed0f63ceb8f35b4629124b8737b7392ba8ee5 100644
--- a/src/Form/UserType.php
+++ b/src/Form/UserType.php
@@ -16,12 +16,14 @@ class UserType extends AbstractType
     public function buildForm(FormBuilderInterface $builder, array $options): void
     {
         $builder
-            ->add('email', TextType::class)
+            ->add('email', TextType::class, ["label" => "Email address"])
             ->add('password', RepeatedType::class,  [
-                'type' => PasswordType::class
+                'type' => PasswordType::class,
+                'first_options'  => ['label' => 'Password'],
+                'second_options' => ['label' => 'Repeat password'],
             ])
-            ->add('displayName', TextType::class)
-            ->add('submit', SubmitType::class);
+            ->add('displayName', TextType::class, ["label" => "Display name"])
+            ->add('submit', SubmitType::class, ["label" => "Sign up"]);
     }
 
     public function configureOptions(OptionsResolver $resolver): void
diff --git a/templates/login/index.html.twig b/templates/login/index.html.twig
index a1cb0022b6a957a471d7c5209209a518c0c102f4..ed542ad95d3d577878cf26a96543420312ea632f 100644
--- a/templates/login/index.html.twig
+++ b/templates/login/index.html.twig
@@ -2,28 +2,30 @@
 
 
 {% block body %}
-	{% if error %}
-		<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
-	{% endif %}
 
-	{% for message in app.flashes('success') %}
-		<div class="alert alert-success">
-			{{ message }}
-		</div>
-	{% endfor %}
+	<div class="container mt-5 card">
+		{% if error %}
+			<div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
+		{% endif %}
 
+		{% for message in app.flashes('success') %}
+			<div class="alert alert-success">
+				{{ message }}
+			</div>
+		{% endfor %}
 
-	<form action="{{ path('login') }}" method="post">
-		<label for="username">Email:</label>
-		<input type="text" id="username" name="_username" value="{{ last_username }}"/>
 
-		<label for="password">Password:</label>
-		<input
-		type="password" id="password" name="_password"/>
+		<form action="{{ path('login') }}" method="post">
+			<label class="form-label" for="username">Email address:</label>
+			<input class="form-control" type="text" id="username" name="_username" value="{{ last_username }}"/>
 
-		{# If you want to control the URL the user is redirected to on success
-		        <input type="hidden" name="_target_path" value="/account"/> #}
+			<label class="form-label" for="password">Password:</label>
+			<input class="form-control" type="password" id="password" name="_password"/>
 
-		<button type="submit">login</button>
-	</form>
+			{# If you want to control the URL the user is redirected to on success
+					        <input type="hidden" name="_target_path" value="/account"/> #}
+
+			<button class="btn btn-primary" type="submit">Log in</button>
+		</form>
+	</div>
 {% endblock %}
diff --git a/templates/sign_up/index.html.twig b/templates/sign_up/index.html.twig
index 1ab255d6f454dae90abdbed51f8035c6e274be39..f839c266e61ec475d23bce8a0947990a452fa46a 100644
--- a/templates/sign_up/index.html.twig
+++ b/templates/sign_up/index.html.twig
@@ -6,7 +6,7 @@
 
 
 
-<div class="container">
+<div class="container card mt-5">
 {{ form(form) }}
 </div>