ElbeHost: Aufgaben, Stunden und Budgets fürs Ferienhaus ======================================================= Baue mir in einem Durchgang ein kleines Web-Tool für das Team rund um mein Ferienhaus. Frag nur nach, wo ich selbst etwas tun muss (Server-Freigabe, erster Login). Rahmen ------ * Python, nur Standardbibliothek (plus tzdata), ein Docker-Container, davor Caddy für HTTPS * Daten als JSON-Dateien in einem Datenordner, Belegfotos daneben * eine einzige Seite, zuerst fürs Handy, hell und dunkel, Deutsch * läuft auf einem kleinen Server, damit das Team es jederzeit erreicht User Stories ------------ * Ferienhaus hat viele To-dos und Rollen * Hausmeister * Gärtner * Reinigung * Gäste-Management * Owner * Als Owner will ich * sehen, welche Projekte fertig sind * neue Projekte anlegen als * one off (Schimmel entfernen) * yearly (Kammer aufräumen) * seasonal (Rasenpflege) * nachvollziehen, in welches Projekt wie viel Zeit geflossen ist * nicht immer Zettel mit Abrechnungen über verschiedene Kanäle * Projekte priorisieren * jedes Projekt hat einen Rang von 1000 (höchster) bis 1 (tiefster), in 10er-Schritten * beim Anlegen kann ich den Rang angeben * bei bestehenden kann ich ihn mit einer Zahl ändern, z.B. schiebt 995 ein Projekt auf Platz 2 * in der Projektübersicht direkt ein Dropdown "zuweisen an": Team-Mitglieder oder "offen" * Budgets für Bereiche festlegen * ggf. Projekte an Dritte auslagern * Als Team-Mitglied will ich * wissen, welche Aufgaben anstehen * leicht meine Stunden tracken können, ohne mich kontrolliert zu fühlen * auch Dinge machen können, die nicht auf der Liste stehen. Dafür brauche ich ein Zeitbudget Akzeptanzkriterien ------------------ Zugang * kein Passwort: jede Person bekommt einen persönlichen Link /#k= * die Seite liest den Schlüssel aus dem Fragment, merkt ihn sich lokal, entfernt ihn aus der Adresszeile und schickt ihn als Header; so steht er in keinem Server-Log * Owner kann jeden Link kopieren und neu erzeugen (alter Link ist sofort tot), Personen deaktivieren * beim allerersten Start: Bereiche (Haus & Technik, Garten, Reinigung, Gäste), drei Beispielprojekte und ein Owner-Zugang; der Owner-Link landet in einer Datei, die nur root lesen kann, nicht im Log * Team sieht nur Aufgaben seiner Bereiche oder die ihm zugewiesenen, keine Stundensätze, keine Abrechnung, kann keine Projekte anlegen (serverseitig geprüft, nicht nur ausgeblendet) Projekte * Felder: Titel, Bereich, Art, Priorität (hoch/mittel/niedrig), Schätzung in Stunden, Notiz, wer (leer = alle im Bereich), optional extern (Firma, Kontakt, Angebot, Rechnung, Stand angefragt/beauftragt/erledigt/bezahlt) * einmalig: offen oder fertig, optional fällig bis * jährlich ab Monat X: davor "geplant", nach "erledigt" fertig für dieses Jahr, im nächsten Jahr von selbst wieder offen * saisonal in gewählten Monaten: außerhalb "ruht bis ...", erledigt gilt für die laufende Saison * Rang: nach jeder Änderung wieder auf 1000, 990, 980 ... durchnummerieren; bei Gleichstand gewinnt das gerade geänderte Projekt; ohne Angabe ans Ende; erledigte einmalige Projekte fallen aus der Reihenfolge, wiederkehrende behalten ihren Platz; Rangfeld direkt in der Liste, Enter speichert * Liste: Offen / Später / Fertig, sortiert nach Rang; "Erledigt" kann jeder im Team, "wieder öffnen" ebenso; archivieren statt löschen, Stunden bleiben Stunden und Auslagen * eintragen in halben Stunden mit Schnellknöpfen (0,5 bis 8), Tag (nicht in der Zukunft), optionale Notiz; keine Stoppuhr, keine Uhrzeiten, kein Standort * "Etwas anderes (freies Budget)": Notiz ist Pflicht; das Monatsbudget je Person wird angezeigt, Überschreiten ist erlaubt und wird nur freundlich erwähnt * Auslage mit Betrag und Belegfoto; das Foto wird im Browser auf 1600 px verkleinert und als JPEG geschickt * jede Person sieht ihren Monat und kann eigene Einträge löschen; ein Satz erklärt offen, was der Owner sieht * Owner kann für andere eintragen Auswertung für den Owner * oben: offen, fertig, Budget des Jahres in Prozent * Bereiche mit Jahresbudget (direkt editierbar) und Balken: Stunden × Satz + Auslagen + Fremdfirmen * Zeit je Projekt: Stunden dieses Jahr, insgesamt, gegen die Schätzung, Kosten * Abrechnung je Monat und Person: Stunden, davon frei, Auslagen, Summe, Häkchen "bezahlt", CSV-Export mit Semikolon und deutschem Dezimalkomma (für Excel) * Protokoll: wer hat was erledigt, angelegt, geändert Fertig ist es, wenn der Owner eine Person anlegt, deren Link aufs Handy schickt, die Person dort 2 Stunden auf "Rasenpflege" und 1 Stunde frei mit Notiz einträgt, und der Owner beides in der Monatsabrechnung mit dem richtigen Betrag sieht.