diff --git a/README.md b/README.md index 2c35383..6b1c1d6 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,82 @@ -# netxml2kml – .netxml to .kml converter +# netxml2kml – .netxml to .kml CLI converter & tools - - - + + - +### Download all-in-one executable + +Download the latest executable suitable for your system at [Releases](https://github.com/cuqmbr/netxml2kml/releases) page + +### Compile yourself + +1. [Download](https://dotnet.microsoft.com/download) and install .NET Runtime or SDK >= 6.0 +2. Clone this git repository: `$ git clone https://github.com/cuqmbr/netxml2kml.git` +3. Compile (deploy) the app: `[~/netxml2kml]$ dotnet publish -c Release -r --self-contained true` + +Reference [this](https://docs.microsoft.com/en-us/dotnet/core/deploying/) page to learn more about deployment of .NET apps + +NOTE: + +- RID – [runtime identifier](https://docs.microsoft.com/en-us/dotnet/core/rid-catalog) of a targeted platform +- ~ – project root directory +## SQL querying reference + +This section will help you to understand database structure the program uses ang give you examples of filtering input/output data using SQL queries + +### Example SQL queries + +Select wireless networks where: + +- column name matching some pattern: +`SELECT * FROM WirelessNetworks WHERE *column name* LIKE '%*pattern*%'` + +- clients with a specific manufacturer has been spotted: +``` +SELECT WN.* FROM WirelessNetworks AS WN + INNER JOIN WirelessConnections AS WCo ON WN.Bssid = WCo.WirelessNetworkBssid + INNER JOIN WirelessClients AS WCl ON WCl.Mac = WCo.WirelessClientMac +WHERE WCl.Manufacturer LIKE '%*manufacturer*%' +``` + +Reference [this](https://www.sqlitetutorial.net/) tutorial to learn more about various sql querying techniques + +### Database schema + +
+/----------------------\                                                                                         
+|   WirelessNetworks   |                                                                                         
+|----------------------|                                                                                         
+|    PK Bssid TEXT     |1-----\      /--------------------------------------\             /---------------------\
+|      Essid TEXT      |      |      |          WirelessConnection          |             |   WirelessClients   |
+|  Manufacturer TEXT   |      |      |--------------------------------------|             |---------------------|
+|   Encryption TEXT    |      \-----∞|      /- FK WirelessNetworkBssid TEXT |      /-----1|     PK Mac TEXT     |
+|  FrequencyMhz REAL   |             | PK -|                                |      |      |  Manufacturer TEXT  |
+| MaxSignalDbm INTEGER |             |      \- FK WirelessClientMac TEXT    |∞-----/      |  FirstSeenDate TEXT |
+|   MaxLatitude REAL   |             |          FirstSeenDate TEXT          |             | LastUpdateDate TEXT |
+|  MaxLongitude REAL   |             |         LastUpdateDate TEXT          |             \---------------------/
+|   MaxAltitude REAL   |             \--------------------------------------/                                    
+|  FirstSeenDate TEXT  |                                                                                         
+| LastUpdateDate TEXT  |                                                                                         
+\----------------------/                                                                                         
+
+ ## How to contribute? If you want to add a feature, you should follow these steps: @@ -30,10 +89,12 @@ If you want to add a feature, you should follow these steps: If you found an issue or would like to submit an improvement to this project, please submit an issue using the issues tab above. If you would like to submit a PR with a fix, reference the issue you created! - +- The route management page will not load if database contains a route with an empty departure/arrival city date +--> ## Development status -Prototype – An early prototype for testing an idea out, fate of project unknown +Released — Project is complete, but might receive some updates