-
Notifications
You must be signed in to change notification settings - Fork 0
System Design
Robert L edited this page Nov 8, 2024
·
11 revisions
flowchart TD
F@{ shape: rect, label: "Racer Mobile Client"}
R@{ shape: rect, label: "RC Web Client"}
B@{ shape: rect, label: "Backend"}
D@{ shape: database, label: "Database"}
RD@{ shape: database, label: "RC Database"}
FLD@{ shape: database, label: "Local Storage"}
F <--> B
R <--> B
RD <--> R
F <--> R
F <--> FLD
B <--> D
erDiagram
tracks {
int Id
REPLACE_ME REPLACE_ME
}
boatrace {
int ParticipantsId
int RacesId
}
results {
int Id
REPLACE_ME REPLACE_ME
}
races {
int Id
REPLACE_ME REPLACE_ME
}
regattas {
int Id
string Name
string Description
}
courses {
int Id
REPLACE_ME REPLACE_ME
}
boats {
int Id
REPLACE_ME REPLACE_ME
}
ratings {
int Id
}
coursemarks {
int Id
REPLACE_ME REPLACE_ME
}
regattas ||--|{ races: REPLACE_ME
courses ||--|{ races: REPLACE_ME
races ||--|{ results: REPLACE_ME
races ||--|{ tracks: REPLACE_ME
races ||--|{ boatrace: REPLACE_ME
courses ||--|{ coursemarks: REPLACE_ME
coursemarks ||--|{ coursemarks: REPLACE_ME
ratings ||--|{ boats: REPLACE_ME
results ||--|{ boats: REPLACE_ME
tracks ||--|{ boats: REPLACE_ME
boatrace ||--|{ boats: REPLACE_ME
sequenceDiagram
participant R as Racer(s)
participant C as Race Coordinator
participant B as Backend
loop Every (Time interval)
alt has Internet Connection
R ->>+ B: send Location
B -->>+ C: send Location of Racer
C ->>- B: send Location of Racers(s)
B -->>- R: send Location of Racer(s)
else has RC Connection
R ->>+ C: send Location
C -->>+ B: send Location of Racer(s)
B -->>- C: send Location of Racer(s)
C -->>- R: send locaiton of Racers(s)
Note over B: Hold Transfers
else has No Connection
Note over R,B: Hold Transfers
end
opt Update Both
R ->>+ B: send Location
B -->>- C: send Location of Racer
R ->>+ C: send Location
C -->>- B: send Location of Racer
end
end
sequenceDiagram
participant R as Racer(s)
participant C as Race Coordinator
participant B as Backend
Note over R,B:. . .
rect rgba(10,10,100,.25)
R ->>+ B: receiving
B -->> R: sending
B -->>- C: sending
end
rect rgba(100,10,10,0.25)
C ->>+ B: receiving
B -->> R: sending
B -->>- C: sending
end
sequenceDiagram
participant I as Racer / Coordinator
participant B as Backend
I ->>+ B: request a Race Course
alt Item Does Exist
B -->> I: return a Race Course
activate I
else Item Does NOT Exist
B -->>- I: {404} Not Found
end
I ->>+ B: submit (New / Modified) Race Course
deactivate I
B -->>- I: return return results
sequenceDiagram
participant R as Racer(s)
participant C as Race Coordinator
participant B as Backend
loop Every (Time interval)
alt has RC Connection
R ->>+ C: send Info
C -->>- R: send Info of Racers(s)
Note over B: Hold Transfers
else has No Connection
Note over R,B: Hold Transfers
end
end
sequenceDiagram
participant R as Racer
participant C as Race Coordinator
participant B as Backend
alt has Internet Connection
R ->>+ B: request Race Results
B ->>+ C: check for race updates
C -->>- B: send any race updates
B -->>- R: send Race Results
else has RC Connection
R ->>+ C: request Race Results
C -->>- R: send Race Results
else has No Connection
Note over R,B: Hold Request
end
{eof}
- Sailing Race Analyzer
- Features
- Web App
- Mobile App
- Repo
- Issue Tracking
- Branching
- Dev Tools & Programs
- Architecture
- Database Structure
- Network
- Sequence Diagrams
- Backend
- REACT
- Flutter