# SEAWeb

The WEB GUI client of SEA.

This repository contains the code of the server for the control and graphical parts, plus the client code (HTML, CSS, JS)

## Documentation

```
./doc/
    blocks.tsv              <-- (DE) Indicates the position of the different blocks depending on the screen size
    client.md               <-- (ENG) Developper documentation about the client part
    message_chain.txt       <-- (ENG) Gives the message chain (API calls) for builiding the different blocks
    protocol.txt            <-- (ENG) Gives a summary of the different server response payloads
    server.md               <-- (ENG) Developper documentation about the server part
    variables_config.md     <-- (ENG) User/programmer documentation about configuring parameters for the graphical part
```

## Procedures

### Installation (!!! WIP !!!)

1. Clone this repository on the `~` folder on your machine
2. If not done yet, activate a Python environnment
3. Run the command `cd seaweb`

### Configuring the application (!!! WIP !!!)

### Starting the application (!!! WIP !!!)

1. Run the command `cd ~/seaweb`

### Stopping the application

1. Run the command `ps ax | grep seaweb`
2. In the output of the previous command, identifiy the PID corresponding to the server process
3. Run the command `kill <previously_identified_PID>`

## Possible improvements to bring

- When the livemode is activated on the server, the data of all available variables is sent, even if some of them are not displayed on the client
- The components made on the client use class instead of ids to identify the elements that are in their own context. To have a more lightweight code, and prevent side effects, it would be a good way to see if HTML shadow root could be used to isolate elements.