Index: ReserveNGo-frontend/src/components/Project/Event/event_in_event_listing.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Event/event_in_event_listing.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/Event/event_in_event_listing.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -69,7 +69,7 @@
       <h5 class="mb-1 fw-bold">{{ event.title || event.name }}</h5>
       <p class="mb-1 text-muted">
-        <i class="fas fa-calendar-alt me-1"></i>{{ formattedDate }}
-        <span v-if="formattedTime" class="ms-2">
-          <i class="fas fa-clock me-1"></i>{{ formattedTime }}
+        <i class="fas fa-calendar-alt me-1"></i>{{ event.date }}
+        <span v-if="event.date" class="ms-2">
+          <i class="fas fa-clock me-1"></i>{{ event.time }}
         </span>
       </p>
Index: ReserveNGo-frontend/src/components/Project/Event/events_carousel.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Event/events_carousel.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/Event/events_carousel.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -3,5 +3,5 @@
 import { useLocales } from '@/repository/Locale'
 import { config } from '@/constants/Api_config'
-import { transformArray } from '@/mixins/utilFunctions'
+import { transformArray, ensureEventDateTime } from '@/mixins/utilFunctions'
 import noImg from '@/assets/no-img.png'
 
@@ -18,21 +18,20 @@
 
   computed: {
-    /**
-     * This computed property flattens the original nested allEvents array
-     * and then re-chunks it based on the current `itemsPerSlide`.
-     */
     chunkedEvents() {
-      // Return an empty array if the prop is not yet ready.
       if (!this.allEvents || this.allEvents.length === 0) {
         return []
       }
 
-      // First, flatten the nested array into a single list of all events.
-      // e.g., [[1,2,3], [4,5,6]] becomes [1,2,3,4,5,6]
       const flatEvents = this.allEvents.flat()
 
-      // This is the abstract "resize the array" method you mentioned.
-      // It chunks the flat list into new subarrays.
-      return transformArray(flatEvents, this.itemsPerSlide, false)
+      // First, chunk the events without altering original date fields
+      const chunks = transformArray(flatEvents, this.itemsPerSlide, false)
+
+      // Enrich each event in-place using shared util
+      chunks.forEach((chunk) => {
+        chunk.forEach((ev) => ensureEventDateTime(ev))
+      })
+
+      return chunks
     },
   },
@@ -180,9 +179,9 @@
                       <div class="d-flex align-items-center text-muted mb-1">
                         <i class="fas fa-calendar-alt me-1"></i>
-                        <span>{{ event.eventStart.date }}</span>
+                        <span>{{ event.date }}</span>
                       </div>
                       <div class="d-flex align-items-center text-muted">
                         <i class="fas fa-clock me-1"></i>
-                        <span>{{ event.eventStart.time }}</span>
+                        <span>{{ event.time }}</span>
                       </div>
                     </div>
Index: ReserveNGo-frontend/src/components/Project/Local/Locale_.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Local/Locale_.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/Local/Locale_.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -132,4 +132,7 @@
       return ids.includes(this.locale.id)
     },
+    logoImgElementId() {
+      return "logoLocalePicture"
+    }
   },
 
@@ -231,6 +234,7 @@
       useLocalManager
         .uploadLogo(formData)
-        .then(() => {
-          this.$refs.uploadLogoInputRef.reset()
+        .then((data) => {
+           this.locale.logo = data
+           this.$refs.uploadLogoInputRef.reset()
           this.showToast('Successfully uploaded the logo')
         })
@@ -413,5 +417,5 @@
           <div class="card position-relative shadow-sm">
             <img
-              id="logoLocalePicture"
+              :id="logoImgElementId"
               :src="logoPicture"
               class="card-img-top object-fit-cover rounded"
@@ -428,4 +432,5 @@
               right-button-text="Save"
               :is-loading="isLogoUploading"
+              :previewElementId="logoImgElementId"
             ></ManagerFileInput>
           </div>
Index: ReserveNGo-frontend/src/components/Project/Reservation/reservation_.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Reservation/reservation_.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/Reservation/reservation_.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -40,5 +40,7 @@
     },
     isCancelled() {
-      return (this.reservation.status || '').toString().toUpperCase() === 'CANCELLED'
+      const status = (this.reservation.status || '').toString().toUpperCase()
+      // Support both British and American spellings
+      return status === 'CANCELLED' || status === 'CANCELED'
     },
     isActive() {
@@ -57,5 +59,5 @@
       if (status === 'CONFIRMED') return 'bg-success'
       if (status === 'PENDING') return 'bg-warning text-dark'
-      if (status === 'CANCELLED') return 'bg-danger'
+      if (status === 'CANCELLED' || status === 'CANCELED') return 'bg-danger'
       if (status === 'EXPIRED') return 'bg-secondary'
       return 'bg-info'
Index: ReserveNGo-frontend/src/components/Project/Utility/ManagerFileInput.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/Utility/ManagerFileInput.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/Utility/ManagerFileInput.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -71,5 +71,5 @@
     },
   },
-  emits: ['file-sent'],
+  emits: ['file-sent', 'file-input-inserted'],
   data() {
     return {
Index: ReserveNGo-frontend/src/components/Project/home_.vue
===================================================================
--- ReserveNGo-frontend/src/components/Project/home_.vue	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/components/Project/home_.vue	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -4,4 +4,5 @@
 import SearchFilterPanel from '@/components/Project/search_filter_panel.vue'
 import Events_carousel from '@/components/Project/Event/events_carousel.vue'
+import { ensureEventDateTime } from '@/mixins/utilFunctions'
 
 import { useEvents } from '@/repository/Events.ts'
@@ -46,4 +47,13 @@
       lastEventType: null,
     }
+  },
+
+  computed: {
+    // Enrich events with helper date/time fields derived from eventStart
+    enrichedEvents() {
+      if (!this.events || this.events.length === 0) return []
+      // Map to the same objects but ensure date/time props exist
+      return this.events.map((ev) => ensureEventDateTime(ev))
+    },
   },
 
@@ -100,4 +110,5 @@
         .then((data) => {
           this.carouselEvents = data.events
+          console.log("EVENTS", data.events)
         })
         .catch((err) => console.log('Failed fetching carousel events', err))
@@ -280,5 +291,5 @@
             v-else
             :mode="isFavouritesMode ? 'favourites' : 'all'"
-            :events="events"
+            :events="enrichedEvents"
             :favouriteEvents="favouriteEvents"
             @toggle-favourite="toggleFavouriteEvent"
Index: ReserveNGo-frontend/src/mixins/utilFunctions.js
===================================================================
--- ReserveNGo-frontend/src/mixins/utilFunctions.js	(revision b6bd8e1a90d2e33fa607ce1a45ba01bc582b2970)
+++ ReserveNGo-frontend/src/mixins/utilFunctions.js	(revision b50fa5a203b3e812f300881d355dab8adc957711)
@@ -4,4 +4,23 @@
   time = timeSplit[0] + ':' + timeSplit[1]
   return { date: date, time: time }
+}
+
+export function ensureEventDateTime(event) {
+  if (!event) return event
+  try {
+    const start = event?.eventStart
+    if (typeof start === 'string' && start.includes('T')) {
+      const [datePart, timePartRaw] = start.split('T')
+      const timeParts = (timePartRaw || '').split(':')
+      const hhmm = timeParts.length >= 2 ? `${timeParts[0]}:${timeParts[1]}` : ''
+      if (!event.date) event.date = datePart
+      if (!event.time) event.time = hhmm
+    } else if (start && typeof start === 'object') {
+      if (!event.date && start.date) event.date = start.date
+      if (!event.time && start.time) event.time = start.time
+    }
+  } catch (e) {
+  }
+  return event
 }
 
