GridTracker listens to traffic from WSJT-X and displays it on a map. It will also load ADIF log files
Go to file
T Loomis c66d2f2cf0 Merge branch 'mid-may-2' into 'master'
Hash compatiblity check

See merge request!315

If this is changing anything in the UI or operational behavior, please prepare to update the wiki!
2024-05-12 21:18:39 +00:00
arch-linux Corrected GridTracker URL 2023-03-19 00:16:43 -07:00
arm Squashed commits '${title}' 2023-10-19 23:39:48 +00:00
debian Fix for QSO unique hash 2024-05-12 13:56:13 -07:00
docker Squashed commits '${title} 2022-01-25 04:57:42 +00:00
macos Move the final result from the right directory. 2020-11-17 17:06:35 -08:00
package.nw Hash compatiblity check 2024-05-12 14:14:19 -07:00
windows Squashed commits '${title}' 2024-01-03 02:05:31 +00:00
.eslintrc.js Updated ecma version to 2021 2023-01-28 19:17:46 -08:00
.gitignore minor cleanup 2022-12-31 08:45:54 -06:00
.gitlab-ci.yml Squashed commits '${title}' 2024-01-03 02:05:31 +00:00
.npmrc Squashed commits '${title}' 2023-10-16 19:57:58 +00:00
LICENSE Squashed commits '${title}' 2024-01-03 02:05:31 +00:00
Makefile Trigger COPR and AUR repos and build .deb 2021-12-15 17:19:00 +00:00
NWJS-LICENSE copy of NWJS's license 2021-09-28 14:58:22 -05:00 Allow reordering of roster columns 2022-05-20 10:33:12 -05:00 Chrbayer smoke test plan 2021-04-02 00:40:14 +00:00
gridtracker.1 Squashed commits '${title}' 2024-01-03 02:05:31 +00:00
gridtracker.desktop Squashed commits '${title}' 2023-10-19 23:39:48 +00:00 Clean up debian and make linux packaging generic 2020-11-09 00:59:02 -08:00
gridtracker.spec Fix for QSO unique hash 2024-05-12 13:56:13 -07:00 Moved importer script out of package 2022-11-20 12:01:12 -08:00
package-lock.json Squashed commits '${title}' 2023-10-16 19:57:58 +00:00
package.json try new phoenix 2023-10-16 19:27:15 -05:00
version.js Move all versioning to package.json and create an architecture independent RPM .spec file. 2020-11-17 20:08:56 +00:00

About GridTracker

GridTracker is designed for Amateur radio use. It's original tag-line was:   "GridTracker listens to traffic from WSJT-X and displays it on a map. It will also load ADIF log files". This was back in February of 2018.  At its core GridTracker has remained true to that description but it has evolved to be a very powerful amateur radio tool and not just for FT8. GridTracker is a warehouse of amateur radio information presented in an easy to use interface, from live traffic decodes, logbooks, spot reports, weather, current solar conditions and more. Read more

See the Wiki for the user documentation.

Getting GridTracker

GridTracker can be downloaded for nearly all common platforms (Windows, MacOS, Linux, Raspberry Pi) from the downloads page on our website

Developing GridTracker

GridTracker runs using NWJS, a tools that wraps both Chrome windows and node processes into a native application.

To work on GridTracker you need to clone this git repository and then invoke NWJS with the contents of package.nw.

NWJS comes in two flavors, "normal" and "sdk". GridTracker is distributed with the normal flavor, but for development work we recommend the SDK flavor because it provides access to Chrome's Developer Tools, among other things.

Code Formatting

We use eslint to enforce code formatting rules.

You can use all kinds of plugins and configurations in your text editor to verify these rules, and even reformat code automatically, but if you want to run on the command line, you can (after running npm install) run the npm run lint-check command to verify the formatting of all files, or npm run lint-fix to reformat all files to match the standard.

Developer Environment Setup

Our builds and development environment are usually managed by nwjs-builder-phoenix, but it only supports Intel-based architectures.

x86-based Windows, Mac, Linux

Run npm install and then npm start

Apple Silicon Macs (M1, M1 Pro, M1 Max)

Phoenix does not support ARM-based macs, so we have to explicitly tell it to use Intel-based versions of NWJS.

Run npm install and then npm run start-x64

ARM-based Raspberry

Run npm install.

Install the SDK version of the unofficial NWJS for ARM

For example, by running these commands in the parent directory containing your local copy of the GridTracker repository.

mkdir -p nwjs && cd nwjs
tar zxvf nw49_2020-11-22.tar.gz
cd usr/docker/dist/nwjs-sdk-chrome-ffmpeg-branding
tar zxvf nwjs-sdk-v0.49.3-linux-arm.tar.gz
mv nwjs-sdk-v0.49.3-linux-arm ../../../nwjs-sdk
cd ..

And now you can run GridTracker from your local repository with a command like

../nwjs/nwjs-sdk/nw ./package.nw

Developer Tips

To access the Developer Tools, right-click on an unused area of a window, or press F12.

In the map window, most of the right column background areas will respond with the developer context menu.

In the roster window, only the "Transmit/Receive" indicator on the left side, and the "more controls" link on the right will respond with the developer context menu.

Building for Distribution

Docker Build Environment

The following code uses docker to create a build environment for packaging GridTracker for distribution. It can be used to support, or in lieu of, GitLab's CI/CD chain.

  • docker/

    1. Build a build-environment container. This container does NOT carry the source code of GridTracker inside it, it is merely a build container.
    2. Execute the build container, linking it up to the current directory and ../gridtracker-dist
  • docker/

    1. Package the full debian release for gridtracker (which does not require binaries).
    2. Build npmjs+gridtracker native binaries for Win (32, 64) including installers, Mac OS (Intel 64), and Linux (I386 and AMD64) binaries. THe Linux binaries are for use in non-debian/raspbian/ubuntu distributions.

TODO: 3. Package up a release for Fedora/RPM distributions.

Temporary artifacts are left in: gridtracker/node_modules (including cached copies of npmjs binaries) gridtracker/package-json.lock

Final build results are left in: gridtracker-dist/ gridtracker-dist/debian

Editing GeoJSON files

We've had success using and then cleaning up the output with