Skip to content

Repository files navigation

VoyagerModule

VoyagerModule is a diagnostic tool for service technicians. It automatically collects hardware data from a PC, including CPU, RAM, drives, GPU, battery, and network details, sends it to the Houston server, and generates a QR code with a link to the device record.

How It Works

  1. The program runs on a Windows machine that is being audited.
  2. It collects hardware data through WMI and WinAPI.
  3. The technician answers a few questions about the physical condition of the device, such as the class, display housing, keyboard, and similar items.
  4. The collected data is sent as JSON to the Houston endpoint (POST /api/computers/ingest).
  5. The program prints a QR code in the console, which can be scanned with a phone to open the device card and add photos.

Requirements

  • Windows 10 / 11 (x64 or x86)
  • Visual Studio 2022 or newer with C++20 support
  • Downloaded third-party libraries (see below)
  • A configured and running Houston server on the local network

Configuration

Before building, open VoyagerModule.cpp and set the Houston server IP and ports in the CONFIG namespace:

namespace CONFIG {
    constexpr const char* SERVER_ADDRES = "127.0.0.1"; // Houston server IP address
    constexpr unsigned int SERVER_PORT  = 3001;         // API port
    constexpr unsigned int FRONTEND_PORT = 3000;        // Frontend port, used to build the QR link
    constexpr const char* TMP_API_KEY = "api_key";      // Temporary API key
}

The API key is stored in main() in the api_key variable. Replace it with the real one before deployment.

Third-Party Libraries

The third-party libraries are not stored in the repository. Before the first build, run the PowerShell script below to download them automatically into ThirdParty/:

.\setup-dependencies.ps1

The script downloads:

Library Version Source
nlohmann/json 3.12.0 GitHub Releases
cpp-httplib 0.41.0 GitHub Releases
QR Code generator main GitHub

Build

  1. Open VoyagerModule.slnx in Visual Studio 2022.
  2. Select Release | x64.
  3. Build the project with Ctrl+Shift+B.

The executable will be created in x64/Release/.

Usage

Run VoyagerModule.exe on the machine you want to audit. The program will:

  • Show hardware scan progress.
  • Ask the technician to answer questions about the physical condition of the device.
  • Send the data to the server and display a QR code that can be scanned with a phone.

Note: The program needs administrator privileges to read some WMI data correctly, including drive information through ROOT\Microsoft\Windows\Storage.

Project Structure

VoyagerModule/
├── VoyagerModule.cpp          # Entry point: core logic, payload, HTTP upload, QR code
├── SystemAudit.h / .cpp       # Hardware audit through WMI and WinAPI
├── Utility.h / .cpp           # Helper functions, such as Trim
├── VoyagerModule.vcxproj      # Visual Studio project file
├── VoyagerModule.slnx         # Visual Studio solution file
├── setup-dependencies.ps1     # Script that downloads third-party libraries
└── ThirdParty/                # Generated by the script, not stored in the repo
    ├── httplib.h
    ├── json.hpp
    ├── qrcodegen.hpp
    └── qrcodegen.cpp

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages