diff --git a/docs/personal-documentation/Luca/infrastructure-design.md b/docs/personal-documentation/Luca/infrastructure-design.md index b327d75..e2bfc50 100644 --- a/docs/personal-documentation/Luca/infrastructure-design.md +++ b/docs/personal-documentation/Luca/infrastructure-design.md @@ -2,30 +2,41 @@ --- +As for our project, we've made the following design choices for our infrastructure. +We've decided to implement a NodeJS server on a Raspberry Pi, which will handle the requests for retrieving exercises. +This server will communicate with a MariaDB database, which contains the exercise data. +The Pepper robot will host a web server, which will handle the incoming rotational data from an ESP8266. +This data will then be processed by a motion processor class, `InputProcessor`, which will compare the rotational data +to the data of the current exercise and show how well the user is performing. + +Down below is a visual representation of how this infrastructure will look like. + ```mermaid graph TB subgraph "Raspberry Pi" - server[NodeJS Server\nHandles requests for\nexercises] - db[Database] - server --Fetch exercise--> db - db --Exercise--> server + server[NodeJS Server\n\nHandles requests for\nretrieving exercises] + db[Database - MariaDB\n\nContains exercise data] + server --Fetch database entry--> db + db --Return retrieved entry--> server end subgraph "Pepper Robot" webServer[Web Server\n\nHandles incoming rotational data\nfrom ESP8266] motionProcessor[Motion Processor\n\nProcesses rotational data,\ncompares it to the current exercise\nand shows the statistics on the screen] + ui[User Interface\n\nShows the current exercise,\nhow to perform it and the\nstatistics of the user's performance] motionProcessor --Send HTTP GET for Exercise--> server - server --Send exercise in JSON format--> motionProcessor + server --Send exercise data\nin JSON format--> motionProcessor webServer --Process rotational data--> motionProcessor + motionProcessor --Show statistics\non the UI--> ui end subgraph "Motion Sensing Device" esp[ESP8266\n\nMeasures sensor data\nand sends it to the web server] - gyro[Gyroscope\n\nMeasures rotational data\nand sends it to the ESP8266] + gyro[Gyroscope\n\nMeasures rotational data\n(Rx, Ry, Rz)] esp --Send rotational data\nto Pepper Web Server--> webServer - gyro <--> esp + gyro <---> esp end ``` \ No newline at end of file