Commit graph

15 commits

Author SHA1 Message Date
db9a12250e Track which account is interested in which events
Store a list of ids of events and slots that accounts have marked as
being interested in, and show aggeregate counts in the schedule.
2025-03-07 20:15:41 +01:00
52dfde95d1 Tie push subscriptions to current session
If a user logs out from a device the expectation should be that device
no longer having any association with the user's account.  Any existing
push notifications should thefore be removed on server.  For this reason
tie push notifications to a session, and remove them when the session is
deleted.
2025-03-07 15:47:48 +01:00
150cb82f5c Basic account and session system
Provide a basic account system with login and server side session store
identified by a cookie.  Upon successful login a signed session cookie
is set by the server with the session stored on the server identifying
which account it is logged in as.  The client uses a shared useFetch on
the session endpoint to identify if it's logged in and which account it
is logged in as, and refreshes this when loggin in or out.
2025-03-07 12:41:57 +01:00
abdcc83eb9 Refactor subscription format
Place the actual push subscription data into a push property on the
subscription so that other properties can be added to it.
2025-03-07 12:37:47 +01:00
b4934005ae Pull JSON read file logic into a function 2025-03-07 12:27:19 +01:00
8da4b02154 Implement signed cookie helpers
Provide a convenient wrapper for setting SHA-256 HMAC signed cookies and
retreiving them with the signature validated.  The secret key is
configured in the NUXT_COOKIE_SECRET_KEY environment variable.
2025-03-06 22:07:51 +01:00
3da83a7feb Fix demo schedule origin being on Saturday
It was intended to have Monday as the origin point.
2025-03-05 22:54:43 +01:00
e703902c5e Fix generated schedule using wrong date format 2025-03-05 22:43:07 +01:00
228d75db72 Generate a demo schedule if no schedule exists 2025-03-05 22:15:46 +01:00
5cc310384e Move stored data to a volume
Fix the silly data wipe on re-deployment by writing the data to a
volume instead of the ephemeral container filesystem.
2025-03-05 19:10:13 +01:00
6ea3567c94 Refactor code saving data
Move the code dealing with saving and loading data to server/database to
gather it all up into one place.
2025-03-05 18:41:47 +01:00
d8a31db44d Handle event streams being cancelled
h3 doesn't correctly handle unexpected stream closures, bypass h3 and
operate directly on the Node.js ServerResponse object to handle them.
2025-03-05 16:02:26 +01:00
250ca9a1ac Port application from Next.js to Nuxt
Nuxt is based on Vue.js and I find their building blocks to be much
neater compared to the React based Next.js.
2025-03-05 15:36:50 +01:00
8c8b561f1a Convert indents to tabs 2025-03-01 17:06:41 +01:00
5e4ea1be61 Setup defaut Nuxt template 2025-03-01 16:52:23 +01:00