updated featurecreep

This commit is contained in:
kolaente 2018-08-29 08:02:12 +02:00
parent 5db306bacc
commit f71f98b8f4
No known key found for this signature in database
GPG key ID: F40E70337AB24C9B

View file

@ -17,7 +17,6 @@
* Liste wo der Punkt drauf ist * Liste wo der Punkt drauf ist
* Timestamps * Timestamps
### Websockets ### Websockets
Das ganze soll als Websocket zur verfg gestellt werden, der dann automatisch bescheidsagt wenn sich was ändert. Benachrichtigungen machen clients. Das ganze soll als Websocket zur verfg gestellt werden, der dann automatisch bescheidsagt wenn sich was ändert. Benachrichtigungen machen clients.
@ -29,18 +28,22 @@ Ab v0.3 können wir mit clients anfangen.
#### v0.1 #### v0.1
* [x] Listen erstellen/bearbeiten/löschen * [x] Listen erstellen/bearbeiten/löschen
* [x] Ansehen
* [x] Übersicht * [x] Ansehen
* [x] Einzelne liste mit allen todopunkten * [x] Übersicht
* [x] Erstellen * [x] Einzelne liste mit allen todopunkten
* [x] Bearbeiten * [x] Erstellen
* [x] Löschen * [x] Bearbeiten
* [x] Löschen
* [x] Todopunkte hinzufügen/abhaken/löschen * [x] Todopunkte hinzufügen/abhaken/löschen
* [x] Erstellen
* [x] Bearbeiten (abhaken) * [x] Erstellen
* [x] Löschen * [x] Bearbeiten (abhaken)
* [x] Löschen
* [x] Überall nochmal überprüfen dass der Nutzer auch das Recht hat die Liste zu löschen * [x] Überall nochmal überprüfen dass der Nutzer auch das Recht hat die Liste zu löschen
* [x] Swaggerdocs !!!! * [x] Swaggerdocs !!!!
Neues Konzept: _Namespaces_ Neues Konzept: _Namespaces_
@ -51,36 +54,41 @@ wird automatisch einer für den Nutzer erstellt.
Es gibt Lese- und Schreibrechte pro Namespace und Nutzer. Es gibt Lese- und Schreibrechte pro Namespace und Nutzer.
Namespace: Namespace:
* ID
* Name * ID
* OwnerID * Name
* Timestamps * OwnerID
* Timestamps
Teams: Teams:
* ID
* Name * ID
* Description * Name
* Rights (Selbsthochzählende Konstanten als json-array abspeichern) * Description
* CreatedByUser * Rights (Selbsthochzählende Konstanten als json-array abspeichern)
* Timestamps * CreatedByUser
* Timestamps
TeamMembers: TeamMembers:
* ID
* TeamID * ID
* MemberID * TeamID
* Timestamps * MemberID
* Timestamps
TeamNamespaces: TeamNamespaces:
* ID
* TeamID * ID
* NamespaceID * TeamID
* Timestamps * NamespaceID
* Timestamps
TeamLists: TeamLists:
* ID
* TeamID * ID
* ListID * TeamID
* Timestamps * ListID
* Timestamps
(+Check ob das Team schon Zugriff auf den Namespace hat und dafür sorgen dass das sich nicht überschneidet) (+Check ob das Team schon Zugriff auf den Namespace hat und dafür sorgen dass das sich nicht überschneidet)
Bsp: wenn ein Namespace-Team Schreibrechte hat, soll es nicht möglich sein dieses Team mit Schreibrechten Bsp: wenn ein Namespace-Team Schreibrechte hat, soll es nicht möglich sein dieses Team mit Schreibrechten
@ -101,47 +109,51 @@ Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
#### Neues Todo #### Neues Todo
* [x] Teams * [x] Teams
* [x] Erstellen
* [x] Ansehen
* [x] Bearbeiten
* [x] Löschen
~~Ein zu lösendes Problem: Wie regelt man die Berechtigungen um Teams zu verwalten?~~ * [x] Erstellen
* [x] Ansehen
* [x] Bearbeiten
* [x] Löschen
~~Ein zu lösendes Problem: Wie regelt man die Berechtigungen um Teams zu verwalten?~~
* [x] Namespaces * [x] Namespaces
* [x] Erstellen
* [x] Ansehen * [x] Erstellen
* [x] Bearbeiten * [x] Ansehen
* [x] Löschen * [x] Bearbeiten
* [x] Teams hinzufügen. Der Nutzer kriegt nur Teams angezeigt die er erstellt hat. * [x] Löschen
* [x] Alle Listen eines Namespaces anzeigen * [x] Teams hinzufügen. Der Nutzer kriegt nur Teams angezeigt die er erstellt hat.
* [x] Alle Listen eines Namespaces anzeigen
* [x] Listen * [x] Listen
* [x] Listen zu einem Namespace hinzufügen
* [x] Listen zu einem Namespace hinzufügen
#### v0.2 #### v0.2
* [x] Listen teilbar * [x] Listen teilbar
* [ ] Mit anderen Nutzern
* [x] Teams
* [ ] Mit Link
* [ ] Offen
* [ ] Passwortgeschützt
* [x] Rechtemanagement (Und damit Unterscheidung zwischen Ownern und Mitgleidern)
* [ ] Mit anderen Nutzern
* [x] Teams
* [ ] Mit Link
* [ ] Offen
* [ ] Passwortgeschützt
* [x] Rechtemanagement (Und damit Unterscheidung zwischen Ownern und Mitgleidern)
* [x] Mange Team members * [x] Mange Team members
* [x] Hinzufügen * [x] Hinzufügen
* [x] Löschen * [x] Löschen
*Routen* *Routen*
* [x] `namespaces/:id/teams` * [x] `namespaces/:id/teams`
* [x] Create * [x] Create
* [x] ReadAll * [x] ReadAll
* [x] Delete * [x] Delete
* [x] `lists/:id/teams` * [x] `lists/:id/teams`
* [x] Create * [x] Create
* [x] ReadAll * [x] ReadAll
* [x] Delete * [x] Delete
#### v0.3 #### v0.3
@ -162,11 +174,11 @@ Teams sind global, d.h. Ein Team kann mehrere Namespaces verwalten.
## Anderes ## Anderes
* [ ] Refactor!!!! Alle Funktionen raus, die nicht mehr grbaucht werden + Funktionen vereinfachen/zusammenführen. * [ ] Refactor!!!! Alle Funktionen raus, die nicht mehr grbaucht werden + Funktionen vereinfachen/zusammenführen.
Wenn ein Objekt 5x hin und hergereicht wird, und jedesmal nur geringfügig was dran geändert wird sollte das Wenn ein Objekt 5x hin und hergereicht wird, und jedesmal nur geringfügig was dran geändert wird sollte das
doch auch in einer Funktion machbar sein. doch auch in einer Funktion machbar sein.
* [ ] ganz viel in eigene neue Dateien + Packages auslagern, am besten eine package pro model mit allen methoden etc. * [ ] ganz viel in eigene neue Dateien + Packages auslagern, am besten eine package pro model mit allen methoden etc.
* [ ] Alle alten dinger die nicht mehr gebraucht werden, weg. * [ ] Alle alten dinger die nicht mehr gebraucht werden, weg.
* [x] Die alten handlerfunktionen alle in eine datei packen und erstmal "lagern", erstmal brauchen wir die noch für swagger. * [x] Die alten handlerfunktionen alle in eine datei packen und erstmal "lagern", erstmal brauchen wir die noch für swagger.
* [x] Drone aufsetzen * [x] Drone aufsetzen
* [ ] Tests schreiben * [ ] Tests schreiben
* [x] Namen finden * [x] Namen finden
@ -183,16 +195,14 @@ doch auch in einer Funktion machbar sein.
* [ ] Viper für config einbauen und ini rauswerfen * [ ] Viper für config einbauen und ini rauswerfen
* [ ] Docs für installationsanleitung * [ ] Docs für installationsanleitung
* [ ] Tests für Rechtekram * [ ] Tests für Rechtekram
* [ ] "Apiformat" Methoden, damit in der Ausgabe zb kein Passwort drin ist..., oder created/updated von Nutzern... oder ownerID nicht drin ist sondern nur das ownerobject * [ ] "Apiformat" Methoden, damit in der Ausgabe zb kein Passwort drin ist..., oder created/updated von Nutzern... oder ownerID nicht drin ist sondern nur das ownerobject
* [x] Rechte überprüfen: * [x] Rechte überprüfen:
* [x] Listen erstellen * [x] Listen erstellen
* [x] Listen bearbeiten (nur eigene im Moment) * [x] Listen bearbeiten (nur eigene im Moment)
* [x] Listenpunkte hinzufügen * [x] Listenpunkte hinzufügen
* [x] Listenpunkte bearbeiten * [x] Listenpunkte bearbeiten
* [ ] An "accepted" für post/put payloads schrauben, man soll da zb keine id/created/updated/etc übergeben können. * [ ] An "accepted" für post/put payloads schrauben, man soll da zb keine id/created/updated/etc übergeben können.
* [ ] Globale Limits für anlegbare Listen + Namespaces * [ ] Globale Limits für anlegbare Listen + Namespaces
* [ ] Mgl., dass die Instanz geschlossen ist, also sich keiner registrieren kann, und man sich einloggen muss * [ ] Mgl., dass die Instanz geschlossen ist, also sich keiner registrieren kann, und man sich einloggen muss
* [ ] mgl. zum Emailmaskieren haben (in den Nutzereinstellungen, wenn man seine Email nicht an alle Welt rausposaunen will) * [ ] mgl. zum Emailmaskieren haben (in den Nutzereinstellungen, wenn man seine Email nicht an alle Welt rausposaunen will)
* [ ] Mgl. zum Accountlöschen haben (so richtig krass mit emailverifiezierung und dass alle Privaten Listen gelöscht werden und man alle geteilten entweder wem übertragen muss oder auf provat stellen) * [ ] Mgl. zum Accountlöschen haben (so richtig krass mit emailverifiezierung und dass alle Privaten Listen gelöscht werden und man alle geteilten entweder wem übertragen muss oder auf privat stellen)