2025-03-17 20:39:00 +00:00

61 lines
1.2 KiB
Markdown

# 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
```