Projekte¶
Ein Project ist ein eigenständiges ManagedObject in Polycrate, mit dem sich zeitlich begrenzte oder laufende Vorhaben abbilden lassen — etwa Kundenprojekte, Onboardings, Offboardings oder interne Workstreams. Projekte aggregieren Aktivität, tragen ein eigenes Embedded Notes-Feld und sind das Ziel für Zeiterfassung über Notes vom Kind comment.
Project ist kein Note-Kind
Obwohl Projekte eng mit Notes interagieren, sind sie ein eigenes Modell, nicht nur ein weiterer Note-Kind. Hintergrund: Projekte brauchen ein ManagedObject-Verhalten (Labels, Embedded-Note, Metriken, RBAC), was über ein Feld kind=project in Notes nicht sauber abbildbar wäre.
Project-Kinds¶
Jedes Projekt trägt ein kind-Feld, das den Lebenszyklus klassifiziert:
| Kind | Bedeutung |
|---|---|
onboarding | Einführung eines Kunden oder Teams. Definiertes Ende erwartet. |
offboarding | Abschluss / Übergabe. Typischerweise kurz und fokussiert. |
ongoing | Laufender Workstream ohne definiertes Ende (z. B. "Managed Services Kunde XYZ") |
Das kind-Feld beeinflusst primär die Darstellung (Badges, Listensortierung) und die Default-Dashboards. Es gibt darüber hinaus keine harten semantischen Zusicherungen.
Typische Felder¶
| Feld | Zweck |
|---|---|
name / display_name | Projektname |
kind | siehe oben |
organization / workspace | Kontext — ein Projekt liegt immer in einer Organisation |
start_date / end_date | Zeitraum (optional) |
budget_hours | Optionale Stunden-Obergrenze für Reports |
embedded_note | Angeheftete Projekt-Note (kind=object-note), z. B. mit Kickoff-Notizen |
state | Aggregierter Zustand (OK/WARNING/CRITICAL) |
Notes am Projekt¶
Notes binden sich über den FK Note.project an ein Projekt. Praktisch relevant:
- Todos landen als Aufgabenliste am Projekt.
- Comments mit
time_tracked_hoursbilden das Zeitbuchungslog des Projekts. - Meeting-Notes dokumentieren Termine rund um das Projekt — inklusive Vydeo-Meeting-Link.
- Post-Mortems können zur Projekt-Zeitachse geführt werden, wenn ein Incident das Projekt betraf.
Wie das im Detail funktioniert (Kinds, Felder, RBAC) siehe Notes.
Zeiterfassung & Reports¶
Das Zeitbuchungs-Feature lebt in Notes, nicht direkt im Projekt. Ein Projekt aggregiert aber automatisch:
total_tracked_hours— Summe aus allencomment-Notes mit FK auf dieses Projekt.- Zeitverlauf — Summen pro Tag / Woche / Monat für Tabellen und Charts.
- Budget-Verbrauch — wenn
budget_hoursgesetzt ist, wird der Verbrauch in Prozent angezeigt und eine Warnung ausgelöst, wenn 80 % / 100 % überschritten werden.
Aggregierte Reports sind über die API als eigene Endpunkte verfügbar (z. B. /api/v1/project/{id}/report/) und als Metrik-Funktionen für Dashboards ansprechbar.
Embedded Note¶
Jedes Projekt kann eine angeheftete Note vom Kind object-note tragen (siehe Notes → Embedded Object-Notes). Sie wird im Detail-View prominent oben angezeigt und dient als lebendes Dokument:
- Projekt-Kontext, Stakeholder, Zielbild
- Wichtige Termine
- Offene Risiken
Die Embedded Note ist pro Projekt eindeutig.
Typischer Lebenszyklus¶
┌──────────┐ ┌──────────────┐ ┌────────────┐ ┌────────────┐
│ Anlegen │───▶│ Aktive Phase │───▶│ Abschluss │───▶│ Archiviert │
│ (kind: │ │ Notes, │ │ (end_date │ │ (read-only │
│ onboard/ │ │ Comments, │ │ gesetzt) │ │ via RBAC) │
│ ongoing) │ │ Timetrack. │ │ │ │ │
└──────────┘ └──────────────┘ └────────────┘ └────────────┘
In jeder Phase lassen sich Notes anheften, aktualisieren und abschließen.
RBAC & Sichtbarkeit¶
Projekte folgen dem generischen RBAC-System:
- Organisation-Admin sieht und bearbeitet alle Projekte seiner Organisation.
- Workspace-Mitglieder sehen nur Projekte, auf denen sie explizit Leseberechtigung haben.
- Zeit-Reports sind separat berechtigt — ein User darf ggf. auf das Projekt zugreifen, aber nicht auf die aggregierten Stunden.
API-Endpunkte (kurz)¶
GET /api/v1/project/— Liste/FilterPOST /api/v1/project/— AnlegenGET /api/v1/project/{id}/report/— Aggregierter Zeit-Report
Die Projekt-API folgt dem üblichen DRF-Router-Schema (basename=project, siehe User Management & RBAC).
Verwandte Themen¶
- Notes — das primäre Input für Todos, Meetings, Comments, Zeiterfassung.
- Prometheus-Metriken → Projects & Notes — welche Metriken pro Projekt exportiert werden.
- Pricing & Business Layer — wie Zeitbuchungen in die Abrechnung fließen können.