Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,12 @@ For the moment, it does not work with docker compose. But if you install the clo
`nx affected:test --all --parallel --maxParallel 10 --watch` will run the tests affected by your code changes.

`npm run fixlint` to fix lint errors.

### Architecture Diagram

- The PlantUML architectural diagram is located in doc/flyxc_arch.puml
- The doc/flyxc_arch.puml diagram depicts a visual representation of the different components of the flyxc app and the logical connections among components.
- PlantUML requires Java to be installed on your machine.
- Then download the plantuml.jar file and execute it to access PlantUML’s graphical user interface.
- [PlantUML Starting Guide](https://plantuml.com/starting)
- On VS Code, install the PlantUML extension. To preview diagrams: Press Alt + D to start PlantUML preview (option + D on macOS).
Binary file added doc/flyxc_arch.png
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can remove desktop/mobile and connect users to the frontend directly

  • fxc-tiles has no direct connection to the frontend. It writes to the cloud storage and the frontend reads from there.
  • I think you can split the cloud storage into 2 differents pieces (they are actually stored in different "buckets")
    • the tiles (generated by fxc-tiles)
    • the tracks (generated by both Cloud functions and fxc-server)

Otherwise this looks pretty good, should be ready to merge soon.

Thanks for your work on this!

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
64 changes: 64 additions & 0 deletions doc/flyxc_arch.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
@startuml flyxc_arch
!define GCPPuml https://raw.githubusercontent.com/Crashedmind/PlantUML-icons-GCP/master/dist
!include GCPPuml/GCPCommon.puml
!include GCPPuml/Compute/Cloud_Functions.puml
'!include GCPPuml/Networking/Cloud_Firewall_Rules.puml
!include GCPPuml/Compute/Compute_Engine.puml
!include GCPPuml/Storage/Cloud_Storage.puml
!include GCPPuml/Databases/Cloud_Datastore.puml
!include GCPPuml/Databases/Cloud_Memorystore.puml
!include GCPPuml/Compute/App_Engine.puml
!include GCPPuml/Compute/GPU.puml




/'
The other icons will need to come from other stdlib libraries
'/
'!include <awslib/AWSCommon>
!include <awslib/AWSSimplified.puml>
!include <awslib/Compute/all.puml>
!include <awslib14/FrontEndWebMobile/all.puml>
!include <awslib/general/all.puml>
!include <awslib14/ApplicationIntegration/all.puml>

'Elements
Users(Users, "Users", "Users")
FrontEndWebMobile(Mobile, "Mobile Users", "")
Client(Desktop, "Desktop Users", "")

Cloud_Datastore(Datastore, "Datastore", "Tracks, Accounts")
Cloud_Memorystore(Redis, "Redis", "GPS Positions, Status")
SimpleQueueServiceQueue(Message_Queue, "Message Queue (Elevation, Airspace)", "")
Cloud_Functions(Cloud_Function, "Cloud Function [run]", "Run Queues")
Compute_Engine(The_Server, "Compute Server [fxc-server]", "API, Static Files")
App_Engine(The_Frontend,"Frontend [fxc-front]", "Maps")
GPU(Airspace_Processing,"[fxc-tiles]", "Airspace Processing")
Cloud_Storage(Cloud_Storage, "Cloud Storage", "Airspaces")
Cloud_Memorystore(Fetcher, "Fetcher", "GPS Positions, Users")
App_Engine(Tracking_Platforms,"Tracking Platforms", "Live Positions")


'Relations:
Users -down-> Mobile: 1.
Users -down-> Desktop: 2.

Mobile -down-> The_Frontend: 3.
Desktop -down-> The_Frontend: 4.
Airspace_Processing -right-> The_Frontend: 5.
The_Server --> Redis: 6.
The_Frontend -down-> The_Server: 7.
The_Server -right-> Message_Queue: 8.
The_Server -down-> Cloud_Storage: 9.
The_Server -down-> Datastore: 11.
Message_Queue -right-> Cloud_Function: 10.
Airspace_Processing -down-> Cloud_Storage: 12. Airspace Tiles
Cloud_Function -down-> Datastore: 13.
Cloud_Function -down-> Cloud_Storage: 14.
The_Frontend -down-> Cloud_Storage: 15. Retrieve Tiles
Fetcher --> Datastore: 16. Fetch User List
Fetcher --> Redis: 17. Store Positions
Fetcher -up-> Tracking_Platforms: 18. Fetch Live Positions

@enduml
Binary file added out/doc/flyxc_arch/flyxc_arch.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.