diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 3d640c9..9562823 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -6,6 +6,8 @@
ESN Scanner App
Make entrance to your events a breeze.
diff --git a/src/routes/private/events/+page.server.ts b/src/routes/private/events/+page.server.ts
new file mode 100644
index 0000000..7e450e7
--- /dev/null
+++ b/src/routes/private/events/+page.server.ts
@@ -0,0 +1,8 @@
+export async function load({ locals }) {
+ const { data: events, error } = await locals.supabase
+ .from('events')
+ .select('*')
+ .order('date', { ascending: false });
+ console.log('events', events);
+ return { events };
+}
\ No newline at end of file
diff --git a/src/routes/private/events/+page.svelte b/src/routes/private/events/+page.svelte
new file mode 100644
index 0000000..1664850
--- /dev/null
+++ b/src/routes/private/events/+page.svelte
@@ -0,0 +1,25 @@
+
+
+All Events
+
+
+
+ New Event
+
\ No newline at end of file
diff --git a/src/routes/private/events/event/+page.server.ts b/src/routes/private/events/event/+page.server.ts
new file mode 100644
index 0000000..d63e5a4
--- /dev/null
+++ b/src/routes/private/events/event/+page.server.ts
@@ -0,0 +1,13 @@
+export async function load({ locals, url }) {
+ const event_id = url.searchParams.get('id');
+ const { data: event_data, error: eventError } = await locals.supabase
+ .from('events')
+ .select('*')
+ .eq('id', event_id)
+ .single()
+ const { data: participants, error: participantsError } = await locals.supabase
+ .from('participants')
+ .select('*, scanned_by:profiles (id, display_name)')
+ .eq('event', event_id)
+ return {event_data, participants};
+}
\ No newline at end of file
diff --git a/src/routes/private/events/event/+page.svelte b/src/routes/private/events/event/+page.svelte
new file mode 100644
index 0000000..c94c16a
--- /dev/null
+++ b/src/routes/private/events/event/+page.svelte
@@ -0,0 +1,95 @@
+
+
+Event Overview
+
+
+
+ {data.event_data.name}
+ {data.event_data.date}
+
+
+
+
+
+
+
Scanned ({scannedCount})
+
+
+
+
+ Not scanned ({notScannedCount})
+
+
+
+
+
Participants ({data.participants.length})
+
+ {#each data.participants as p}
+ -
+ {#if p.scanned}
+
+ {:else}
+
+ {/if}
+ {p.name} {p.surname}
+
+ {#if p.scanned_by}
+
+
+ {new Date(p.scanned_at).toLocaleTimeString([], {
+ hour: '2-digit',
+ minute: '2-digit',
+ hour12: false
+ })}
+
+ by {p.scanned_by.display_name}
+
+ {/if}
+
+ {/each}
+
+
diff --git a/src/routes/private/scanner/+page.svelte b/src/routes/private/scanner/+page.svelte
index 53c3e42..10b236d 100644
--- a/src/routes/private/scanner/+page.svelte
+++ b/src/routes/private/scanner/+page.svelte
@@ -15,7 +15,7 @@
scan_state = ScanState.scanning;
data.supabase
- .from('qrcodes')
+ .from('participants')
.select(`*, event ( id, name ), scanned_by ( id, display_name )`)
.eq('id', scanned_id)
.then( response => {