61 lines
1.2 KiB
Markdown
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
|
|
|
|
|
|
|
|
|
|
|
|
``` |