Verschlanke Dokumentation auf Bedienung und leite Einstieg direkt dorthin

This commit is contained in:
2026-04-22 19:27:17 +02:00
parent 3562d55a12
commit 0fbda27609
21 changed files with 26 additions and 1083 deletions

View File

@@ -12,11 +12,11 @@ export default defineAppConfig({
}
},
seo: {
siteName: 'FEDEO Docs'
siteName: 'FEDEO Bedienung'
},
header: {
title: 'FEDEO Docs',
to: '/',
title: 'FEDEO Bedienung',
to: '/bedienung',
search: true,
colorMode: true,
links: [
@@ -47,9 +47,8 @@ export default defineAppConfig({
links: [
{
icon: 'i-lucide-book-open',
label: 'FEDEO Projekt',
to: 'https://git.federspiel.tech/flfeders/FEDEO',
target: '_blank'
label: 'Bedienung',
to: '/bedienung'
}
]
}

View File

@@ -16,7 +16,7 @@ const sourceUrl = computed(() => {
color="neutral"
variant="outline"
icon="i-lucide-file-text"
label="Quelle"
label="Quellseite"
:to="sourceUrl"
target="_blank"
/>

View File

@@ -32,10 +32,7 @@ useSeoMeta({
})
const headline = computed(() => findPageHeadline(navigation?.value, page.value?.path))
const links = computed(() => {
return [...(toc?.bottom?.links || [])].filter(Boolean)
})
const links = computed(() => [...(toc?.bottom?.links || [])].filter(Boolean))
</script>
<template>

View File

@@ -1,25 +1,7 @@
<script setup lang="ts">
const { data: page } = await useAsyncData('index', () => queryCollection('landing').path('/').first())
if (!page.value) {
throw createError({ statusCode: 404, statusMessage: 'Seite nicht gefunden', fatal: true })
}
const title = page.value.seo?.title || page.value.title
const description = page.value.seo?.description || page.value.description
useSeoMeta({
titleTemplate: '',
title,
ogTitle: title,
description,
ogDescription: description
})
await navigateTo('/bedienung', { redirectCode: 302 })
</script>
<template>
<ContentRenderer
v-if="page"
:value="page"
:prose="false"
/>
<div />
</template>

View File

@@ -2,16 +2,9 @@ import { defineCollection, defineContentConfig, z } from '@nuxt/content'
export default defineContentConfig({
collections: {
landing: defineCollection({
type: 'page',
source: 'index.md'
}),
docs: defineCollection({
type: 'page',
source: {
include: '**',
exclude: ['index.md']
},
source: '**',
schema: z.object({
links: z.array(z.object({
label: z.string(),

View File

@@ -1,8 +1,10 @@
# Bedienung
Diese Sektion beschreibt die Nutzung der Software aus Anwendersicht.
Diese Dokumentation beschreibt die Bedienung der FEDEO-Software aus Sicht der Anwenderinnen und Anwender.
## Bereiche
## Frontend-Funktionen
- Frontend-Funktionen je Seite: `frontend/README.md`
- Detaillierte Feld-Erklärungen: z. B. `frontend/ausgangsbelege-editor.md`
- [Frontend-Funktionen](./frontend/README.md)
- [Ausgangsbeleg-Editor](./frontend/ausgangsbelege-editor.md)
- [Serienrechnungen](./frontend/serienrechnungen.md)
- [Alle Seiten und Felder](./frontend/alle-seiten-und-felder.md)

View File

@@ -1,238 +0,0 @@
# Backend API Funktionskatalog
Automatisch generiert (deterministisch, ohne Zeitstempel).
Hinweis: Diese Datei wird durch `docs/scripts/sync-funktionsdoku.mjs` erzeugt.
## backend/src/routes/admin.ts
| Methode | Pfad |
|---|---|
| POST | `/admin/add-user-to-tenant` |
| POST | `/admin/customers/:customerId/invite-portal-user` |
| GET | `/admin/overview` |
| POST | `/admin/tenants` |
| PUT | `/admin/tenants/:tenant_id` |
| GET | `/admin/user-tenants/:user_id` |
| POST | `/admin/users` |
| PUT | `/admin/users/:user_id` |
| PUT | `/admin/users/:user_id/access` |
## backend/src/routes/auth/auth-authenticated.ts
| Methode | Pfad |
|---|---|
| POST | `/auth/password/change` |
| POST | `/auth/refresh` |
## backend/src/routes/auth/auth.ts
| Methode | Pfad |
|---|---|
| POST | `/auth/login` |
| POST | `/auth/logout` |
| POST | `/auth/password/reset` |
| POST | `/auth/register` |
## backend/src/routes/auth/me.ts
| Methode | Pfad |
|---|---|
| GET | `/me` |
## backend/src/routes/auth/user.ts
| Methode | Pfad |
|---|---|
| GET | `/user/:id` |
| PUT | `/user/:id/profile` |
## backend/src/routes/banking.ts
| Methode | Pfad |
|---|---|
| GET | `/banking/iban/:iban` |
| GET | `/banking/institutions/:bic` |
| GET | `/banking/link/:institutionid` |
| GET | `/banking/requisitions/:reqId` |
| POST | `/banking/statements` |
| DELETE | `/banking/statements/:id` |
| GET | `/banking/statements/:id/suggestions` |
## backend/src/routes/devices/rfid.ts
| Methode | Pfad |
|---|---|
| POST | `/rfid/createevent/:terminal_id` |
## backend/src/routes/emailAsUser.ts
| Methode | Pfad |
|---|---|
| GET | `/email/accounts/:id?` |
| POST | `/email/accounts/:id?` |
| POST | `/email/send` |
## backend/src/routes/exports.ts
| Methode | Pfad |
|---|---|
| GET | `/exports` |
| POST | `/exports/datev` |
| POST | `/exports/sepa` |
## backend/src/routes/files.ts
| Methode | Pfad |
|---|---|
| GET | `/files/:id?` |
| POST | `/files/download/:id?` |
| POST | `/files/presigned/:id?` |
| POST | `/files/upload` |
## backend/src/routes/functions.ts
| Methode | Pfad |
|---|---|
| GET | `/functions/changelog` |
| GET | `/functions/check-zip/:zip` |
| POST | `/functions/pdf/:type` |
| POST | `/functions/serial/finish/:execution_id` |
| POST | `/functions/serial/start` |
| POST | `/functions/services/backfillfiletext` |
| POST | `/functions/services/bankstatementsync` |
| POST | `/functions/services/prepareincominginvoices` |
| POST | `/functions/services/syncdokubox` |
| GET | `/functions/timeevaluation/:user_id` |
| GET | `/functions/usenextnumber/:numberrange` |
| POST | `/print/label` |
## backend/src/routes/health.ts
| Methode | Pfad |
|---|---|
| GET | `/ping` |
## backend/src/routes/helpdesk.inbound.email.ts
| Methode | Pfad |
|---|---|
| POST | `/helpdesk/inbound-email` |
## backend/src/routes/helpdesk.inbound.ts
| Methode | Pfad |
|---|---|
| POST | `/helpdesk/inbound/:public_token` |
## backend/src/routes/helpdesk.ts
| Methode | Pfad |
|---|---|
| POST | `/helpdesk/channels` |
| POST | `/helpdesk/contacts` |
| GET | `/helpdesk/conversations` |
| POST | `/helpdesk/conversations` |
| GET | `/helpdesk/conversations/:id` |
| GET | `/helpdesk/conversations/:id/messages` |
| POST | `/helpdesk/conversations/:id/messages` |
| POST | `/helpdesk/conversations/:id/reply` |
| PATCH | `/helpdesk/conversations/:id/status` |
## backend/src/routes/history.ts
| Methode | Pfad |
|---|---|
| GET | `/history` |
## backend/src/routes/internal/auth.m2m.ts
| Methode | Pfad |
|---|---|
| POST | `/auth/m2m/token` |
## backend/src/routes/internal/tenant.ts
| Methode | Pfad |
|---|---|
| GET | `/tenant/:id` |
| GET | `/tenant/:id/profiles` |
| GET | `/tenant/users` |
## backend/src/routes/internal/time.ts
| Methode | Pfad |
|---|---|
| POST | `/staff/time/event` |
| GET | `/staff/time/spans` |
## backend/src/routes/notifications.ts
| Methode | Pfad |
|---|---|
| POST | `/notifications/trigger` |
## backend/src/routes/profiles.ts
| Methode | Pfad |
|---|---|
| GET | `/profiles/:id` |
| PUT | `/profiles/:id` |
## backend/src/routes/publiclinks/publiclinks-authenticated.ts
| Methode | Pfad |
|---|---|
| POST | `/publiclinks` |
## backend/src/routes/publiclinks/publiclinks-non-authenticated.ts
| Methode | Pfad |
|---|---|
| GET | `/workflows/context/:token` |
| POST | `/workflows/submit/:token` |
## backend/src/routes/resources/main.ts
| Methode | Pfad |
|---|---|
| GET | `/resource/:resource` |
| POST | `/resource/:resource` |
| PUT | `/resource/:resource/:id` |
| GET | `/resource/:resource/:id/:no_relations?` |
| GET | `/resource/:resource/paginated` |
## backend/src/routes/resourcesSpecial.ts
| Methode | Pfad |
|---|---|
| GET | `/resource-special/:resource` |
## backend/src/routes/staff/time.ts
| Methode | Pfad |
|---|---|
| POST | `/staff/time/approve` |
| POST | `/staff/time/edit` |
| GET | `/staff/time/evaluation` |
| POST | `/staff/time/event` |
| POST | `/staff/time/reject` |
| GET | `/staff/time/spans` |
| POST | `/staff/time/submit` |
## backend/src/routes/tenant.ts
| Methode | Pfad |
|---|---|
| GET | `/tenant` |
| GET | `/tenant/api-keys` |
| POST | `/tenant/api-keys` |
| DELETE | `/tenant/api-keys/:id` |
| PATCH | `/tenant/api-keys/:id` |
| PUT | `/tenant/numberrange/:numberrange` |
| PUT | `/tenant/other/:id` |
| GET | `/tenant/profiles` |
| POST | `/tenant/switch` |
| GET | `/tenant/users` |
Gesamtzahl erkannter Endpunkte: **93**

View File

@@ -1,70 +0,0 @@
# Frontend Web Funktionskatalog
Automatisch generiert (deterministisch, ohne Zeitstempel).
Hinweis: Diese Datei wird durch `docs/scripts/sync-funktionsdoku.mjs` erzeugt.
| Route (Nuxt) | Datei |
|---|---|
| `/` | `frontend/pages/index.client.vue` |
| `/accounting/bwa` | `frontend/pages/accounting/bwa.vue` |
| `/accounting/depreciation` | `frontend/pages/accounting/depreciation.vue` |
| `/accounting/tax` | `frontend/pages/accounting/tax.vue` |
| `/accounts` | `frontend/pages/accounts/index.vue` |
| `/accounts/show/:id` | `frontend/pages/accounts/show/[id].vue` |
| `/administration/tenants` | `frontend/pages/administration/tenants/index.vue` |
| `/administration/tenants/:id` | `frontend/pages/administration/tenants/[id].vue` |
| `/administration/users` | `frontend/pages/administration/users/index.vue` |
| `/administration/users/:id` | `frontend/pages/administration/users/[id].vue` |
| `/banking` | `frontend/pages/banking/index.vue` |
| `/banking/statements/:mode/:id?` | `frontend/pages/banking/statements/[mode]/[[id]].vue` |
| `/calendar/:mode` | `frontend/pages/calendar/[mode].vue` |
| `/createdletters/:mode/:id?` | `frontend/pages/createdletters/[mode]/[[id]].vue` |
| `/createDocument` | `frontend/pages/createDocument/index.vue` |
| `/createDocument/edit/:id?` | `frontend/pages/createDocument/edit/[[id]].vue` |
| `/createDocument/serialInvoice` | `frontend/pages/createDocument/serialInvoice.vue` |
| `/createDocument/show/:id` | `frontend/pages/createDocument/show/[id].vue` |
| `/customer-portal` | `frontend/pages/customer-portal.vue` |
| `/email/new` | `frontend/pages/email/new.vue` |
| `/export` | `frontend/pages/export/index.vue` |
| `/export/create/sepa` | `frontend/pages/export/create/sepa.vue` |
| `/files` | `frontend/pages/files/index.vue` |
| `/forms` | `frontend/pages/forms.vue` |
| `/helpdesk/:id?` | `frontend/pages/helpdesk/[[id]].vue` |
| `/historyitems` | `frontend/pages/historyitems/index.vue` |
| `/incomingInvoices` | `frontend/pages/incomingInvoices/index.vue` |
| `/incomingInvoices/:mode/:id` | `frontend/pages/incomingInvoices/[mode]/[id].vue` |
| `/login` | `frontend/pages/login.vue` |
| `/organisation/plantafel` | `frontend/pages/organisation/plantafel.vue` |
| `/password-change` | `frontend/pages/password-change.vue` |
| `/password-reset` | `frontend/pages/password-reset.vue` |
| `/projecttypes` | `frontend/pages/projecttypes/index.vue` |
| `/projecttypes/:mode/:id?` | `frontend/pages/projecttypes/[mode]/[[id]].vue` |
| `/roles` | `frontend/pages/roles/index.vue` |
| `/roles/:mode/:id?` | `frontend/pages/roles/[mode]/[[id]].vue` |
| `/settings` | `frontend/pages/settings/index.vue` |
| `/settings/admin` | `frontend/pages/settings/admin.vue` |
| `/settings/banking` | `frontend/pages/settings/banking/index.vue` |
| `/settings/emailaccounts` | `frontend/pages/settings/emailaccounts/index.vue` |
| `/settings/emailaccounts/:mode/:id?` | `frontend/pages/settings/emailaccounts/[mode]/[[id]].vue` |
| `/settings/externalDevices` | `frontend/pages/settings/externalDevices.vue` |
| `/settings/numberRanges` | `frontend/pages/settings/numberRanges.vue` |
| `/settings/ownfields` | `frontend/pages/settings/ownfields.vue` |
| `/settings/tenant` | `frontend/pages/settings/tenant.vue` |
| `/settings/texttemplates` | `frontend/pages/settings/texttemplates.vue` |
| `/staff/profiles` | `frontend/pages/staff/profiles/index.vue` |
| `/staff/profiles/:id` | `frontend/pages/staff/profiles/[id].vue` |
| `/staff/time` | `frontend/pages/staff/time/index.vue` |
| `/staff/time/:id/evaluate` | `frontend/pages/staff/time/[id]/evaluate.vue` |
| `/standardEntity/:type` | `frontend/pages/standardEntity/[type]/index.vue` |
| `/standardEntity/:type/:mode/:id?` | `frontend/pages/standardEntity/[type]/[mode]/[[id]].vue` |
| `/support` | `frontend/pages/support/index.vue` |
| `/support/:id` | `frontend/pages/support/[id].vue` |
| `/support/create` | `frontend/pages/support/create.vue` |
| `/tasks` | `frontend/pages/tasks/index.vue` |
| `/tasks/:mode/:id?` | `frontend/pages/tasks/[mode]/[[id]].vue` |
| `/test` | `frontend/pages/test.vue` |
| `/wiki/:id?` | `frontend/pages/wiki/[[id]].vue` |
| `/workflows/:token` | `frontend/pages/workflows/[token].vue` |
Gesamtzahl erkannter Web-Routen: **60**

View File

@@ -1,23 +0,0 @@
# Funktionen
Diese Sektion dokumentiert alle Funktionen der FEDEO-Software in drei Ebenen:
- Fachliche Übersicht: `uebersicht.md`
- Technischer API-Katalog: `backend-api.md`
- Technischer Web-Katalog: `frontend-web.md`
- Technischer Mobile-Katalog: `mobile-app.md`
## Empfohlene Lesereihenfolge
1. `uebersicht.md`
2. `backend-api.md`
3. `frontend-web.md`
4. `mobile-app.md`
## Aktualisierung
Die technischen Kataloge werden mit folgendem Befehl aktualisiert:
```bash
node docs/scripts/sync-funktionsdoku.mjs
```

View File

@@ -1,29 +0,0 @@
# Mobile App Funktionskatalog
Automatisch generiert (deterministisch, ohne Zeitstempel).
Hinweis: Diese Datei wird durch `docs/scripts/sync-funktionsdoku.mjs` erzeugt.
| Route (Expo Router) | Datei |
|---|---|
| `/` | `mobile/app/index.tsx` |
| `/(tabs)` | `mobile/app/(tabs)/index.tsx` |
| `/(tabs)/explore` | `mobile/app/(tabs)/explore.tsx` |
| `/(tabs)/projects` | `mobile/app/(tabs)/projects.tsx` |
| `/(tabs)/tasks` | `mobile/app/(tabs)/tasks.tsx` |
| `/(tabs)/time` | `mobile/app/(tabs)/time.tsx` |
| `/login` | `mobile/app/login.tsx` |
| `/modal` | `mobile/app/modal.tsx` |
| `/more/account` | `mobile/app/more/account.tsx` |
| `/more/customer/:id` | `mobile/app/more/customer/[id].tsx` |
| `/more/customers` | `mobile/app/more/customers.tsx` |
| `/more/inventory` | `mobile/app/more/inventory.tsx` |
| `/more/nimbot` | `mobile/app/more/nimbot.tsx` |
| `/more/plant/:id` | `mobile/app/more/plant/[id].tsx` |
| `/more/plants` | `mobile/app/more/plants.tsx` |
| `/more/settings` | `mobile/app/more/settings.tsx` |
| `/more/wiki` | `mobile/app/more/wiki.tsx` |
| `/project/:id` | `mobile/app/project/[id].tsx` |
| `/tenant-select` | `mobile/app/tenant-select.tsx` |
Gesamtzahl erkannter Mobile-Screens: **19**

View File

@@ -1,70 +0,0 @@
# Funktionsübersicht
## Zielbild
FEDEO besteht funktional aus drei zentralen Schichten:
- Backend-API (Geschäftslogik, Daten, Integrationen)
- Web-Frontend (administrative und operative Arbeitsoberfläche)
- Mobile-App (mobile Nutzung für operative Prozesse)
Die technische Detailauflistung wird automatisiert erzeugt:
- [Backend-API](./backend-api.md)
- [Frontend Web](./frontend-web.md)
- [Mobile-App](./mobile-app.md)
## Funktionsbereiche
### 1) Authentifizierung und Mandantenfähigkeit
- Login, Session, Nutzerkontext
- Rollen, Rechte, Profile
- Mandantenbezogene Datenabgrenzung
### 2) Stammdaten und Ressourcen
- Kunden, Kontakte, Projekte, Teams
- Materialien, Leistungen, Fahrzeuge, Standorte
- Erweiterbare Standard-Entitäten
### 3) Operative Prozesse
- Aufgabenmanagement
- Zeiterfassung und Zeitauswertung
- Dokumentenerstellung und Ablage
- Verlauf/Historie
### 4) Finanz- und Abrechnungsfunktionen
- Buchhaltungssichten
- Bankdaten und Zuordnungen
- Exporte (z. B. DATEV/SEPA)
- Rechnungskontexte
### 5) Kommunikation und Service
- Helpdesk und Nachrichten
- Benachrichtigungen
- E-Mail-bezogene Prozesse
### 6) Wissensmanagement
- Wiki-Seiten
- Strukturierte Inhalte für internes Wissen
### 7) Geräteschnittstellen und Integrationen
- RFID-/Geräteendpunkte
- S3-Dateispeicher
- Mail- und externe API-Integrationen
## Dokumentationsprinzip
- Fachliche Beschreibung in dieser Datei
- Technische Vollständigkeit in den automatisch erzeugten Katalogen
- Änderungsnachweis über die Doku-Versionierung
## Pflegehinweis
Wenn Funktionen hinzugefügt, umbenannt oder entfernt werden, ist die technische Dokumentation immer per Skript zu aktualisieren und zu committen.

View File

@@ -1,64 +1,3 @@
---
seo:
title: FEDEO Bedienungsanleitung
description: Nutzerorientierte Bedienungsanleitung für alle zentralen Funktionen in FEDEO.
---
# Bedienungsanleitung
::u-page-hero{class="dark:bg-gradient-to-b from-neutral-900 to-neutral-950"}
---
orientation: horizontal
---
#title
FEDEO [Bedienungsanleitung]{.text-primary}
#description
Diese Dokumentation ist als praktische Anleitung für Anwenderinnen und Anwender der FEDEO-Software aufgebaut.
#links
:::u-button
---
to: /bedienung
size: xl
trailing-icon: i-lucide-arrow-right
---
Zur Bedienungsanleitung
:::
:::u-button
---
to: /bedienung/frontend
size: xl
color: neutral
variant: outline
---
Frontend-Funktionen
:::
::
::u-page-section{class="dark:bg-neutral-950"}
#title
Inhalte
#features
:::u-page-feature
---
icon: i-lucide-layout-dashboard
---
#title
Frontend-Seiten
#description
Übersicht aller Seitenfunktionen inklusive Eingabefelder und deren Bedeutung.
:::
:::u-page-feature
---
icon: i-lucide-file-text
---
#title
Praxisnahe Feld-Erklärungen
#description
Für zentrale Masken wie den Ausgangsbeleg-Editor werden die Felder konkret erläutert.
:::
::
Die Nutzerdokumentation befindet sich unter `bedienung/`.

View File

@@ -1,25 +0,0 @@
# Doku-Versionen
## Version 0.1.0 (2026-04-21)
- Grundstruktur der vollständigen Funktionsdokumentation erstellt
- Automatische Erzeugung für Backend-API, Frontend-Web und Mobile-App eingeführt
- Wartungsprozess für laufende Aktualisierung definiert
## Versionsschema
Empfohlenes Schema: `MAJOR.MINOR.PATCH`
- `MAJOR`: Grundlegende Umstrukturierung der Doku
- `MINOR`: Neue Funktionsbereiche oder größere Ergänzungen
- `PATCH`: Korrekturen, Präzisierungen, kleinere Ergänzungen
## Eintragsvorlage
```md
## Version X.Y.Z (YYYY-MM-DD)
- Änderung 1
- Änderung 2
- Änderung 3
```