Closed henrybrink closed 4 months ago
Auf der Basis des Datenschemas von FitBit habe ich folgendes Daten-Format vorzuschlagen:
Beispiel-Daten in JSON (Austauschformat muss nicht unbedingt als JSON serialisiert werden, dass dient nur der Veranschaulichung):
{
"dataSource": "fitbit",
"syncDate": "2024-04-29T16:17:000S",
"owner": "867ad0ae-597d-448e-924c-f8369298115e",
"activities": [
{
"type": "bicycle",
"start": "2024-04-29T12:00:000S",
"end": "2024-04-29T14:00:000S",
"steps": 0,
"elevation": 195,
"reporting": "tracked"
},
{
"type": "walk",
"start": "2024-04-29T15:00:000S",
"end": "2024-04-29T16:00:000S",
"steps": 5215,
"elevation": 231,
"reporting": "auto"
}
],
"goals": [
{
"type": "steps",
"goal": 10000,
"value": 7612,
"unit": "N/A"
}
]
}
Das Datenformat ist an dem orientiert was uns FitBit liefert, wir können es stellenweise noch erweitern, aber ich empfehle zunächst so wenig Daten wie möglich aufzurufen.
Ich werde gleich noch die Komponente weiter beschreiben um zu zeigen, wie man diese Daten dann abrufen kann.
@benedictweis @OG-NI
Klingt Schlüssig, wir werden aber keine Aktivität "Radfahren" anbieten oder? Also es geht nur um "Gehen", "Laufen", etc.
Mit Anpassungen umgesetzt (bereits gemerged)
Die Daten von Drittanbietern sollen über eine Standardtisierte Schnittstelle geladen werden, sodass es aus Anwendungssicht einfach ist den Anbieter auszutauschen.
Abhängig davon wie viele Anbieter für die initiale Integration herangezogen werden sollen ist es ausreichend dieses Austauschformat an den Daten des ersten Anbieters zu orientieren.
Es ist empfehlenswert, dieses Format so zu wählen, dass möglichst wenig Informationen über die Aktivitäten enthalten sind, damit die Drittanbieter so austauschbar wie möglich bleiben können.
Zudem ist es aus der Datenschutzperspektive empfehlenswert nicht zu viele Informationen über eine Aktivität zu speichern. Attribute wie z.B. der Ort sind beispielsweise als eine Angabe (z.B. "Karlsruhe" als nächste Stadt) ausreichend (sofern es möglich ist an diese Informationen leicht zu kommen).
Mindestens vorhanden sein sollten:
Wichtig: Neben den Aktivitäten müssen auch noch die Daten zu den Schritten ausgetauscht werden.
Die Idee dafür ist folgende: Schritte werden pro Tag protokolliert (eventuell auch per Stunde, allerdings würde dies die Implementierung erschweren und keinen großen Vorteil bringen. Die Tagesschritte werden bei der Synchronisation mit dem aktuellen Wert überschrieben.