starlink
starlink copied to clipboard
This project implements dynamic shortest-path routing for Starlink using Memgraph. Starlink satellites are low earth orbit communications satellites currently being launched and operated by SpaceX.
Starlink Demo
This demo application simulates and visualizes the Starlink internet constellation. It also demonstrates how MemgraphDB can be used to find the shortest routing path in such networks.
To find out more about the subject, read the accompanying blog post.
[!NOTE]
We no longer host the Starlink Simulator app onhttp://starlink.memgraph.com/. You can still check out this project to learn how to build an app with Memgraph.
Prerequisites
Before you can run the application, you need to have the following tools installed:
After you installed Docker you need to download the Memgraph image for Docker and load it.
The container with the image should be stopped before attempting to build and run the app.
Start the app
First, position yourself in the root folder of the project. Build the Docker image and run the application with the following commands:
docker-compose build
docker-compose up
If everything was successful you can open it in your browser. The app will be listening on: http://localhost:5001/.
Project structure
The app is divided into three separate modules:
- memgraph - the database where all the positions of satellites and cities are stored and updated.
- simulator - a Python program that utilizes the Skyfield package to calculate satellite positions in orbit. Those positions are then stored in the Memgraph database.
- web_app - a client-server app that fetches data from the database and renders it.
Technologies used
- Python 3.7
- MemgraphDB 2.2.1
- Apache Kafka
- Poetry
- Skyfield
- Flask
- Leaflet