Name the application Owltide

The name is inspired by the watchful owl perching from the tree tops
with complete overview of all that's going on combined with -tide in
the sense it's used for in words like summertide and eastertide.
This commit is contained in:
Hornwitser 2025-07-01 18:41:24 +02:00
parent 1b5fd9f72a
commit 9592cd3160
9 changed files with 45 additions and 59 deletions

View file

@ -1,75 +1,29 @@
# Nuxt Minimal Starter <!--
SPDX-FileCopyrightText: © 2025 Hornwitser <code@hornwitser.no>
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Owltide
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more. Owltide is a free open source event scheduling software for keeping the attendees at events informed about all the things going on. It's currently in early stages of development and not generallly useful.
## Setup
Make sure to install dependencies: ## Development setup
Use pnpm to install dependencies:
```bash ```bash
# npm
npm install
# pnpm
pnpm install pnpm install
# yarn
yarn install
# bun
bun install
``` ```
## Development Server Run the development server on `http://localhost:3000` with:
Start the development server on `http://localhost:3000`:
```bash ```bash
# npm
npm run dev
# pnpm
pnpm dev pnpm dev
# yarn
yarn dev
# bun
bun run dev
``` ```
## Production Build and preview the production build with (rarely needed):
Build the application for production:
```bash ```bash
# npm
npm run build
# pnpm
pnpm build pnpm build
# yarn
yarn build
# bun
bun run build
```
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm preview pnpm preview
# yarn
yarn preview
# bun
bun run preview
``` ```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.

View file

@ -8,6 +8,11 @@ export default defineNuxtConfig({
experimental: { renderJsonPayloads: true }, experimental: { renderJsonPayloads: true },
compatibilityDate: '2024-11-01', compatibilityDate: '2024-11-01',
devtools: { enabled: enableDevtools }, devtools: { enabled: enableDevtools },
app: {
head: {
titleTemplate: "%s - Owltide",
},
},
runtimeConfig: { runtimeConfig: {
cookieSecretKeyFile: "", cookieSecretKeyFile: "",
vapidSubject: "", vapidSubject: "",

View file

@ -4,7 +4,7 @@
--> -->
<template> <template>
<main> <main>
<h1>About</h1> <h1>About Owltide</h1>
<p> <p>
This is a proof of concept intended to demonstrate the capabilities that web based scheduling tool can have. It implements a live editable schedule that can be used to collaboratively plan out the events times of a convention, as well as crew assignments to events and shift lists. This is a proof of concept intended to demonstrate the capabilities that web based scheduling tool can have. It implements a live editable schedule that can be used to collaboratively plan out the events times of a convention, as well as crew assignments to events and shift lists.
</p> </p>
@ -35,3 +35,9 @@
</ul> </ul>
</main> </main>
</template> </template>
<script lang="ts" setup>
useHead({
title: "About",
});
</script>

View file

@ -41,6 +41,9 @@
definePageMeta({ definePageMeta({
middleware: ["authenticated"], middleware: ["authenticated"],
}); });
useHead({
title: "Settings",
});
const sessionStore = useSessionStore(); const sessionStore = useSessionStore();
const accountStore = useAccountStore(); const accountStore = useAccountStore();

View file

@ -97,6 +97,10 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
useHead({
title: "Admin",
});
const tabs = [ const tabs = [
{ id: "users", title: "Users" }, { id: "users", title: "Users" },
{ id: "database", title: "Database" }, { id: "database", title: "Database" },

View file

@ -115,6 +115,9 @@ definePageMeta({
middleware: ["authenticated"], middleware: ["authenticated"],
allowedAccountTypes: ["crew", "admin"], allowedAccountTypes: ["crew", "admin"],
}); });
useHead({
title: "Edit",
});
const tabs = [ const tabs = [
{ id: "locations", title: "Locations" }, { id: "locations", title: "Locations" },

View file

@ -4,7 +4,7 @@
--> -->
<template> <template>
<main> <main>
<h1>Schedule Demo</h1> <h1>Owltide</h1>
<ul> <ul>
<li> <li>
<NuxtLink to="/schedule">View Schedule</NuxtLink> <NuxtLink to="/schedule">View Schedule</NuxtLink>
@ -26,5 +26,8 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
useHead({
title: "Index",
});
const accountStore = useAccountStore(); const accountStore = useAccountStore();
</script> </script>

View file

@ -34,6 +34,10 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
useHead({
title: "Login",
});
const sessionStore = useSessionStore(); const sessionStore = useSessionStore();
const { getSubscription, subscribe } = usePushNotification(); const { getSubscription, subscribe } = usePushNotification();

View file

@ -70,6 +70,10 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
useHead({
title: "Schedule",
});
const accountStore = useAccountStore(); const accountStore = useAccountStore();
const usersStore = useUsersStore(); const usersStore = useUsersStore();
await usersStore.fetch(); await usersStore.fetch();