-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #333 from bptlab/282_update_wiki
282 update wiki
- Loading branch information
Showing
16 changed files
with
164 additions
and
843 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# How the approach with socket.io was implemented on our platform | ||
|
||
**Desktop app:** | ||
Here we implemented a CLI that reads the userId the user enters, saves the userId and uses the userId as an authentication for the communication with the web app server. Once started, the desktop app connects with the server by using a socket connection. A socket connection is this bidirectional connection that exist between every client and server. Moreover we use the userId the user entered and ask the server if this socket connection can join the room userId (we have one room for every userId). Once the socket connection was added to the userId room we wait for robots to be executed. Because we are in the userId room we receive robot execution jobs of web frontends that are connected to the same room. | ||
|
||
**Database/Server:** | ||
We implemented a jobs collection in MongoDB as well as a Mongoose jobs model. Every job has a robotId, a userId, a status (waiting/executing/success/failed) and an array of parameters that contains the arguments the user entered in the web frontend when starting the robot execution. | ||
|
||
**Server:** | ||
Sets up a server and socket instance, establishes socket connection with the web frontend and the desktop app, groups sockets by userIds (by using the room concept), reacts on robot execution commands and forwards this command to the desktop app and updates the jobs collection in MongoDB continiously. | ||
|
||
**Web Frontend:** | ||
Connects with the server using a socket connection. Also, like the dektop app, we join a userId specific room whenever the robot overview is rendered. Additionally, we send a robot execution job to the backend when the user clicks on the play button in the robot container. | ||
|
||
## Why we Use Socket.io | ||
|
||
In the end, we decided for socket.io as it is open-cource, well-supported, 'easy' to use, robust and websocket based enabling a bidirectional communication. | ||
To get started it is recommended reading [this](https://socket.io/docs/v4/index.html) introduction to socket.io. Especially these two subpages [1](https://socket.io/docs/v4/server-socket-instance/) & [2](https://socket.io/docs/v4/client-socket-instance/) are relevant for this usecase. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,23 @@ | ||
# Welcome to the Ark_automate wiki! | ||
# Welcome to the Ark Automate wiki! | ||
|
||
Ark_automate is an open-source RPA tool that uses several modeling languages to create bots. | ||
Ark Automate is an open-source RPA tool that uses several modeling languages to create bots. | ||
|
||
In our Wiki you can find the following: | ||
|
||
- our [vision](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate) for this project including a [pitch](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate#Pitch), the [features to be implemented](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate#Until-summer-2021-we-want-to-implement-a-first-working-web-app-for-our-use-case) in the summer of 2021, the [architecture](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate#Architecture) and the [user interaction](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate#Using-Ark_automate) | ||
- documentation regarding [the structure](https://github.com/bptlab/ark_automate/wiki/Documentation-Folder-structure) of this project | ||
- our [code documentation](https://github.com/bptlab/ark_automate/wiki/Documentation-Folder-structure) hostet on GitHub Pages grouped by modules and classes | ||
- documentation regarding [our single source of truth](https://github.com/bptlab/ark_automate/wiki/Documentation-single-source-of-truth) | ||
- documentation the [corporate identity of Ark_automate](https://github.com/bptlab/ark_automate/wiki/Documentation-Corporate-Identity) | ||
- documentation regarding our [team work](https://github.com/bptlab/ark_automate/wiki/Team-Scrum-process) | ||
- concepts on how we think users to interact with [the bots](https://github.com/bptlab/ark_automate/wiki/concept-Starting-and-orchestrating-Bots) | ||
- our own guides to learn how to | ||
- write [code documentation](https://github.com/bptlab/ark_automate/wiki/How-to-write-code-documentation) | ||
- write [tests](https://github.com/bptlab/ark_automate/wiki/How-to-write-tests) | ||
- sytle [our components using css](https://github.com/bptlab/ark_automate/wiki/How-to-style-using-css) | ||
- our [vision](https://github.com/bptlab/ark_automate/wiki/Vision-for-Ark-automate) for this project including a pitch, the architecture and the user interaction | ||
- our [code documentation](https://bptlab.github.io/ark_automate/) hostet on GitHub Pages grouped by modules and classes | ||
- documentation regarding [the structure](https://github.com/bptlab/ark_automate/wiki/Documentation-Folder-Structure) of this project | ||
- documentation regarding [our single source of truth](https://github.com/bptlab/ark_automate/wiki/Documentation-Single-Source-of-Truth) | ||
- documentation the [corporate identity of Ark Automate](https://github.com/bptlab/ark_automate/wiki/Documentation-Corporate-Identity) | ||
|
||
## API documentation | ||
|
||
The OpenApi documentation of the offered API can be found when fetching the /docs route from the running backend, which is up to date with everything in the Code, as it is generated at runtime. | ||
The OpenApi documentation of the offered API can be found when fetching the `/docs` route from the running backend, which is up to date with everything in the Code, as it is generated at runtime. | ||
WHen running a local version of the software you can access the documentation using `localhost:5000/docs` | ||
|
||
## How to contribute to the wiki | ||
|
||
To contribute a page to the wiki, please create a markdown file in the `wiki` directory or edit an existing one. It will automatically be deployed as a wiki page once it is pushed onto the DEV branch. | ||
To contribute a page to the wiki, please create a markdown file in the `/wiki` directory or edit an existing one. It will automatically be deployed as a wiki page once it is pushed onto the DEV branch. | ||
The page title will have the same name as the filename of your created file and will show hyphens as empty spaces. Therefore, we ask you to not use empty spaces in your filenames. | ||
|
||
> The deployment of wiki pages will overwrite the existing pages, so if you want to persist your article in the wiki, please go the route of creating a markdown file. |
Oops, something went wrong.