You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2a67099
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,15 +4,15 @@
4
4
5
5
# AutomataExplorer: visualize and compare automata
6
6
7
-
The Automata Explores is a web-based tool to visualize differences and similarities between (finite) state machines. The tool is interactive and helps users to analyze, interpreted and understand the comparison results. The tool offers multiple filters and manipulations to investigate the results from different viewpoints and perspectives. To compare and merge the inputs into the difference automate the [gLTSdiff library](https://github.com/TNO/gLTSdiff) is used. The difference automata is a single combined automata where common parts, reference-only and subject-only are color coded, an example can be found below under preview.
7
+
The Automata Explores is a web-based tool to visualize differences and similarities between (finite) state machines. The tool is interactive and helps users to analyze, interpreted and understand the comparison results. The tool offers multiple filters and manipulations to investigate the results from different viewpoints and perspectives. To compare and merge the inputs into the difference automata the [gLTSdiff library](https://github.com/TNO/gLTSdiff) is used. The difference automata is a single combined automata where common parts, reference-only and subject-only are color coded, an example can be found below under preview.
8
8
9
-
This Automata Explores is developed in the context of automata learning and supports two kinds of automata's. A regular automata where the matching for the difference machine is based on the complete label. And the Mealy machine where the matching is based on input and output under the condition that labels are structured as *input/output*. The (backend) build and processing actions are standardized (type based) and therefore easy to extend to support new types or (gLTSDiff) build configurations.
9
+
This Automata Explores is developed in the context of automata learning and supports two kinds of automata's. A regular automata where the matching for the difference machine is based on the complete label. And the Mealy machine where the matching is based on input and output under the condition that labels are structured as *input/output*. The (backend) build and processing actions are standardized (type based) and therefore easy to extend to support new types or difference automata build configurations.
10
10
11
11
## Core features
12
12
-**Input** two automata's in the [`.dot format`](https://graphviz.org/doc/info/lang.html) and visualize the difference machine.
13
13
- Select a **layout algorithm** that is most suitable for the visualization.
14
14
- Use **filters** and/or custom **processing actions** to investigate the result.
15
-
- Use the **context menu** options on visualization elements to work through the result or get detailed element information.
15
+
- Use the **context menu** options on visualization elements analyze the automata or to get detailed element information.
16
16
-**Export** the result as a `.pgn` or comprehensive `.pdf` report.
Copy file name to clipboardExpand all lines: docs/getting-started.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,5 @@
1
1
2
2
# Getting Started
3
-
4
3
The application consist of a a Spring Boot backend and a React frontend. The setup is dockerized for easy deployment and usage. This guide will help you to run the Automata Explorer using Docker for regular users as well as developers.
Copy file name to clipboardExpand all lines: docs/structure-and-architecture.md
+2-8Lines changed: 2 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,6 @@ AutomataExplorer/
23
23
└── README.md # Root for project documentation
24
24
```
25
25
26
-
27
26
## Backend
28
27
The Spring Boot backend exposes its functionality via a RESTfull api allowing clients to interact over HTTP using JSON.
29
28
@@ -37,11 +36,9 @@ The Spring Boot backend exposes its functionality via a RESTfull api allowing cl
37
36
38
37
A detailed API description for the backend services with all the endpoints and messages can be found [here](/docs/api.md).
39
38
40
-
41
39
### Controller
42
40
The `restcontoller` handles all incoming HTTP request and acts as an entry point for the backend application. In the controller endpoints are mapped methods and request are orchestrated and delegated to the appropriate services. To decouple the internal (domain) model from the external API `Data Transfer Objects (DTOs)` are used. The `DTOs` define the JSON structures for the request and response messages used by the controller.
43
41
44
-
45
42
### Services
46
43
The `service` layer contains the core logic for the Automata Explorer. The services generalized and designed with type-based components to support extensibility.
47
44
@@ -70,10 +67,8 @@ The `ProcessingModel` contains the enumeration types and data structures for the
70
67
- The backend is equipped with an interactive Swagger UI for exploring and testing the REST API. The UI is available at `http://localhost:8080/swagger-ui/index.html#/`. This UI will show all available endpoints as well as all the request and response formats. The API can also be used from the browser directly. The openApi file can be downloaded via `http://localhost:8080/v3/api-docs`.
71
68
- The backend the Grapviz dot tool to parse the input files. All files which conform to this specification will be parsed successfully.
72
69
73
-
74
70
### Tests
75
71
Automatic testing is part of the overall applications build pipeline using gitHub actions. About 60 test cases are crafted to validate the backend implementation.
76
-
77
72
- The controller is test using the `@webMvcTest`to validate the HTTPS request and response handling in isolation.
78
73
- The services are tested to validate the common business logic using `@SpringBootTest`, `Mockito` and `JUnit`.
79
74
- Integration test are performed to combine multiple behaviors to validate real workflows and edge cases.
@@ -86,13 +81,12 @@ The frontend is built using React and Vite and written in typescript. The fronte
86
81
2. The frontend sends the request to the backend and initiates the build without any processing actions.
87
82
3. The frontend routes to the `VisualizationPage` loads the visualization and displays the build results.
88
83
4. The user can filter, change layout, select context menu actions and or modify the modal.
89
-
5. The user exits the application, the fronent sent a session close request to the backend.
84
+
5. The user exits the application, the frontend sent a session close request to the backend.
90
85
91
86
### API
92
87
-`SessionApi.tsx`: Utility for sending messages to the backend API and to enforce proper exception handling.
93
88
-`RequestResponse`: Contains all interfaces for the messages exchanged with the backend.
94
89
95
-
96
90
### Hooks
97
91
-`useSession`: Custom react hook that manages the state and encapsulates all communication with the backend API by leveraging the `sessionApi,tsx`.
98
92
-`useTransform`: Custom react hook to transform backend responses to usable data for the visualization. It decouples raw API data from rendering and visualization logic.
@@ -103,5 +97,5 @@ The frontend is built using React and Vite and written in typescript. The fronte
103
97
104
98
### Components
105
99
-`InfoModal`: a general Modal to be used in the application which can handle different inner contents such as `AboutContent`, `ActionContent`, `BuildContent` and `ElementContent`.
106
-
-`CytoscapeVisualization`: The action visualization component. To prevent the file to be bloated congifuration are implemented in the utils classes `attachContextCollapse`, `attachCytoscapeMenus`, `cytoScapeStyles` and `exportPdfs`.
100
+
-`CytoscapeCanvas`: The action visualization component. To prevent the file to be bloated configuration are implemented in the utils classes `attachContextCollapse`, `attachCytoscapeMenus`, `cytoScapeStyles` and `exportPdfs`.
107
101
-`DragAndDrop`: a drag and drop file upload element to be used in the `UploadPage`.
0 commit comments