diff --git a/sdnr/wt/helpserver/provider/pom.xml b/sdnr/wt/helpserver/provider/pom.xml
index 8c64c47..487e088 100644
--- a/sdnr/wt/helpserver/provider/pom.xml
+++ b/sdnr/wt/helpserver/provider/pom.xml
@@ -41,6 +41,7 @@
     <name>ccsdk-features :: ${project.artifactId}</name>
 
     <properties>
+        <maven.javadoc.skip>true</maven.javadoc.skip>
         <checkstyle.skip>true</checkstyle.skip>
     </properties>
 
@@ -70,6 +71,7 @@
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
+
     </dependencies>
 
     <build>
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
index 29a6787..208bee0 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/meta.json
@@ -120,6 +120,36 @@
                     }
                 },
                 "label": "EventLog"
+            },
+            "networkApp": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/networkMap/README.md",
+                        "label": "NetworkMap"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/networkMap/README.md",
+                        "label": "NetworkMap"
+                    }
+                },
+                "label": "NetworkMap"
+            },
+            "linkCalculationApp": {
+                "versions": {
+                    "0.4.0": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/linkCalculator/README.md",
+                        "label": "LinkCalculator"
+                    },
+                    "current": {
+                        "date": "2018-02-24",
+                        "path": "sdnr/linkCalculator/README.md",
+                        "label": "LinkCalculator"
+                    }
+                },
+                "label": "LinkCalculator"
             }
         },
         "versions": {
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/general.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/general.md
index d908d12..a91b485 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/general.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/general.md
@@ -19,7 +19,7 @@
 
 |Data type | Possible Filter | Example |
 | ---------|---------------|---------|
-| Text | Any characters or numbers, matches exactly unless a * is used. The * acts as a wildcard and can be used for contains, ends with and begins with queries. |Test, Tes*, *t |
+| Text | Any characters or numbers, matches exactly unless a * or a ? are used. Both special characters act as wildcards, which can be used for contains, ends with and begins with queries. The * matches any number of characters whereas the ? matches exactly one character. Both wildcards can be used in the same query. |Test, T*, *st, Te?t, ?est |
 | Numeric | < or <= or > or >= or exact number |>5000, 20, <=82 |
 | Boolean |None (no filter set), true or false |true, false |
 
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/linkCalculator/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/linkCalculator/README.md
new file mode 100644
index 0000000..0c7e202
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/linkCalculator/README.md
@@ -0,0 +1,51 @@
+# Link Calculator
+
+The 'Link calculator' analyzes the microwave propagation measurements of the wireless links. It can be accessed through the Network Map by clicking on the 'link calculation' button available in microwave links.
+
+## View
+
+The app includes two view possibilities. If it is accessed via the menu, the view provides a form table and a blank information table. The form table offers inputs for latitude and longitude values of the two points of a link. By entering this geographical information the data in the information table gets updated. 
+
+The information table contains the calculation inputs and outputs. If the Link Calculator is accessed through the 'calculate link' button, only this table with pre-filled geographical locations is shown. Currently, input variables of the link calculation include Polarization, Frequency, Rain Model, and Rainfall Rate. Outputs of the calculation are Free Space Loss and Rain Loss. The results will be visible upon clicking the 'Calculate' button at the bottom of the table.  
+
+### Average Mean Sea Level
+
+Denotes the ground elevation of the sites on each end.
+
+### Antenna Height Above Ground 
+
+Is the height at which the antenna is mounted from the ground.
+
+### Distance 
+
+The distance in the information table is auto-filled when the microwave link is selected and the calculator is accessed through the 'calculate link' button in the Network Map. If the points are entered manually, the distance is calculated after clicking the 'Calculate' button.
+
+### Polarization 
+
+A selection of Vertical and Horizontal polarization is possible.
+
+### Frequency 
+
+A selection of known and regulated microwave bands is possible.  
+
+### Rainfall Rate
+
+Rainfall rate can be entered in the field, however if the local information is not available, the digital map and rainfall values of ITU-R P.837-7 [^1] is used. The latitude grid is from -90 North degrees to +90 North degrees and the longitude grid is from -180 degrees East to +180 East. For this calculation, the pre-computed R_0.01 map is used. A selection is possible through the Rain Model drop-down list. When the ITU model is selected, the rainfall rate will be shown in the rainfall rate field after clicking the 'Calculate' button.
+
+## Calculations
+
+Wireless signal attenuation is calculated based on ITU Recommendations for Propagation. At the moment these calculations include the free space loss and rain loss.
+
+### Free Space Loss
+
+Calculates the Free Space Path Loss for a point-to-point non-terrestrial link using the recommended formula in ITU-R P.525-4 [^2]. The output is shown in dB hence the distance is attributed in the calculation. 
+
+### Rain Loss 
+
+Calculates the rain induced attenuation on microwave signal. The calculation is based on the recommended formula in ITU-R P.838-3 [^3], taking into account the polarization of the signal, rainfall rate, and distance. The manual calculation is also possible if 'Specific Rain' is selected as rain model. After selecting the inputs, rain loss will be calculated by clicking the 'Calculate' button. 
+
+------------------------------------------------
+
+[^1]: Radiocommunication Sector of International Telecommunication Union.  ITU-R P.837-7:  Characteristics of precipitation for propagation modelling 2017.
+[^2]:  Radiocommunication Sector of International Telecommunication Union.  ITU-R P.525-4:  Calculation of free-space attenuation 2019.
+[^3]: Radiocommunication Sector of International Telecommunication Union.  ITU-R P.838-3:  Specific attenuation model for rain for use in prediction methods 2005.
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/networkMap/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/networkMap/README.md
new file mode 100644
index 0000000..98d4135
--- /dev/null
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/networkMap/README.md
@@ -0,0 +1,46 @@
+# Network Map
+
+The 'Network Map' visualizes a network by showing the location of a site and its connections (links) to other sites in a geographical context.
+
+## Views
+
+The 'Network Map' consists of two side-by-side views: The map and the details-panel.
+
+### Map
+
+The geographical map visualizes sites and links of a network. Sites are usually displayed as blue circles and links are shown as lines connecting sites.
+
+If a link or site is clicked, its information is presented in the details panel. If more than one site or link is clicked, or if links or sites are too close together to determine which element should be selected, a selection popup appears to select one of the elements.
+
+The map offers statistics information to visualize the number of links and sites in the currently shown map area. The statistics information gets updated when the map stops moving.
+
+Additionally, the map offers a search field. The user can enter the name of a site or link. If an element was found, the map will center on the given element and its information is loaded by the details panel.
+
+If the zoom level is bigger than 11 and the loaded sites have a type of high-rise building, datacenter, factory, or street-lamp, the blue circles are swapped against icons, which visualizes the type of site.
+
+The swapping of icons can be activated or deactivated via a switch on the left-hand site of the map. The switch only becomes visible, if the zoom level is bigger than 9.
+
+The map supports zoom levels between 0 (furthest zoomed out, the entire world is visible) and 18 (most detailed).
+
+Whenever the map stops moving, it updates the URL with its current latitude, longitude, and zoom values. If the 'Network Map' application is opened with those URL parameters present, it will display the given area. That way, the map can be bookmarked or shared and will always display the same result.
+
+
+### Details
+
+The details panel shows information specific to the selected element.
+
+Sites offer information about itself, such as name, address and owner, and a short overview of its links and nodes data. The nodes are physical network elements, comparable to the elements of the 'connect' application, and offer an interface to other apps via buttons, such as connect, configure, and fault. Currently, those buttons are disabled. By clicking on a link, the given link is loaded into details.
+
+If a link of type 'microwave' is selected, the 'calculate link' button is available, which opens the [Link Calculator](../linkCalculator/README.md) in a new tab or page.
+
+Just like the map, the details panel updates the URL if data is loaded. Once again, the 'Network Map' application will try to load the element specified in the URL, if one is present. 
+
+## Connection Error
+
+If no tile or network data is available, an error popup is shown.
+
+## Load Network- and Tile-Data
+
+On startup of the sdnc-web container, a topology URL for the network data and a tile URL for the tiles can be specified.
+
+A ready-to-use topology server offering pre-defined network data is available here. There is no way to import generic network data as of now.
\ No newline at end of file
diff --git a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md
index f09a492..1f2dd88 100644
--- a/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md
+++ b/sdnr/wt/helpserver/provider/src/main/resources/help/sdnr/pnfInventory/README.md
@@ -2,7 +2,17 @@
 
 The application offers basic inventory management of devices supporting ONF-TR-512 and ietf-hardware.
 
-The view displays the inventory data of the network element – for example, serial-numbers and part-numbers according to the containment of the equipment.
+## Views
+
+The inventory application offers two different ways to visualize inventory data.
+
+### Tableview
+
+The view displays the inventory data of the network element – for example, serial-numbers and part-numbers according to the containment of the equipment – as a table. By right-clicking on an entry, the element can be viewed in the treeview.
+
+### Treeview
+
+The treeview visualizes relations between the inventory data of a network element. To load all relations, a '*' can be entered in the search-field.
 
 
 ##### Inventory Export:
