# TrackStr TrackStr is a privacy-preserving time-tracking tool for organisations who pay remote staff on an hourly basis. ## Architecture ```mermaid architecture-beta group user(internet)[End User] service browser(internet)[Browser] in user group home(logos:aws-s3)[Under the Desk] service dvm(logos:aws-ec2)[DVM] in home service k(logos:aws-ec2)[Kimai] in home service db(database)[Database] in home dvm:T -- B:db dvm:T -- B:k dvm:T -- B:relay dvm:T -- B:blossom group cloud(cloud)[Cloud VPS] service relay(disk)[Relay] in cloud service blossom(server)[Blossom] in cloud browser:L -- R:relay browser:L -- R:blossom ``` ## Basic Flow ```mermaid sequenceDiagram autoNumber actor u as User participant e as Electron App participant b as Blossom participant r as relay participant d as dvm u->>e: Choose project <br> & Start timer Note over u: Do work & <br> prepare PoW u->>e: Register PoW e->>b: Load encrypted<br> PoW to Blossom e->>r: Notify DVM Note over u: Snooze d<<->>r: Fetch notification Note over d: fetch & decrypt<br> data, add <br> to DB Note over d: stop timer after<br> interval ```