SE-TINF22B2 / G5-DuoGradus

Sammle Schritte, Tritt gegen Freunde an und steig in deiner Liga auf!
https://docs.duo-gradus.de
Apache License 2.0
3 stars 1 forks source link

Regelmäßige Überprüfung des Ziels #244

Closed henrybrink closed 2 months ago

henrybrink commented 2 months ago

Hat das Feature mit einem Problem zu tun? Falls ja, beschreibe. Eine sehr zentrale Funktionalität unserer Anwendung ist bisher noch nicht umgesetzt: Es gibt keine Punkte, wenn der Nutzer sein Fitness-Ziel erfüllt.

Beschreibe die Lösung die du gerne hättest Im Idealfall wird mind. 1x die Stunde überprüft, ob der Nutzer sein Fitness-Ziel erreicht hat. Ist dies der Fall, dann werden dem Nutzer 10 Punkte gutgeschrieben. Dadurch kann der Nutzer auch seinen Streak aufrechterhalten, wenn er bereits alle Aufgaben abgeschlossen hat.

Die automatische Überprüfung läuft dabei über einen Cronjob, der über Web-Cron (REST-Schnittstelle) getriggert wird. Damit dieser Endpunkt nicht für DDOS-Anfragen missbraucht werden kann, muss dieser geschützt werden, z.B. mit einem Token welches nur dem Backend und dem Webcron-Server bekannt ist.

Zusätzlich sollte eine E-Mail versendet werden, wenn der Nutzer um 20:00 Uhr sein Ziel noch nicht erreicht hat. Hat der Nutzer sein Ziel erreicht, wird auch eine E-Mail gesendet. Beschreibe Alternative Ansätze Gibt es andere Möglichkeiten die das Problem lösen oder gibt es andere Möglichkeiten die Idee einzubauen.

Weiterer Context Füge jeglichen weiteren Kontext hinzu, der helfen könnte das Feature einzubauen.

henrybrink commented 2 months ago

Damit die Ziele automatisch überprüft werden können, muss festgestellt werden können, ob die automatische Zuteilung bereits an diesem Tag erreicht wurden.

Es gibt grundsätzlich zwei Ansätze dafür:

  1. Punktezuteilungen werden nicht mehr pro Tag, sondern generell pro Punktezuteilung gespeichert, dabei wird festgehalten um welche Art es sich handelt (z.B. "Goal Reached"). Diese Umsetzung wäre ideal, ist allerdings zeitlich nicht mehr umzusetzen.
  2. Für jeden Tag wird gespeichert, ob die Ziele bereits errreicht wurden.

Letztere Option lässt sich durch das hinzufügen eines neuen Felds im "Points"-Modell umsetzen.