TRTC-Go is a modern, user-friendly tool for uploading files to the Tennessee Reverse Transfer (TRTC) API. It provides both a command-line interface (CLI) and a graphical user interface (GUI) for ease of use.
- Download the latest Windows release from the Releases page.
- Look for files named
trtc-go_Windows_x86_64.zip(for 64-bit Windows) ortrtc-go_Windows_i386.zip(for 32-bit Windows)
- Look for files named
- Extract the ZIP file to a location of your choice.
- Double-click on
trtc-go-gui.exeto run the application. - For first-time setup, you may need to configure your API key in the application settings.
- Download the latest macOS release from the Releases page.
- Look for files named
trtc-go_Darwin_x86_64.dmgortrtc-go_Darwin_arm64.dmg(for Apple Silicon Macs) - Note: "Darwin" is the name of the macOS operating system core
- Look for files named
- Open Terminal and navigate to your Downloads folder:
cd ~/Downloads
- Remove the quarantine attribute to allow the app to open:
xattr -c trtc-go-gui.app
- Move the application to your Applications folder:
mv trtc-go-gui.app /Applications/
- Open the app from your Applications folder.
- For first-time setup, you may need to configure your API key in the application settings.
- Download the latest Linux release from the Releases page.
- Look for files named
trtc-go_Linux_x86_64.tar.gz(for 64-bit Linux) ortrtc-go_Linux_i386.tar.gz(for 32-bit Linux) - For ARM-based systems like Raspberry Pi, look for
trtc-go_Linux_armv6.tar.gzortrtc-go_Linux_arm64.tar.gz
- Look for files named
- Extract the archive file:
tar -xzf trtc-go_Linux_x86_64.tar.gz
- Make the file executable:
chmod +x trtc-go-gui
- Run the application:
./trtc-go-gui
- Upload Courses, Equivalencies, Students, and Student Courses files
- Support for both CSV and Excel file formats
- Simple, intuitive graphical interface
- Powerful command-line interface for automation
- Detailed logging and error reporting
- Cross-platform support (Windows, macOS, Linux)
# Clone the repository
git clone https://github.com/chatt-state/trtc-go.git
cd trtc-go
# Build the CLI
go build -o trtc-go ./cmd/cli
# Build the GUI (macOS with full features)
go build -o trtc-go-gui ./cmd/gui
# Build the GUI (Windows/Linux or cross-platform)
go build -tags=gles -o trtc-go-gui ./cmd/guiThis project uses Fyne for its GUI, which has specific requirements for cross-compilation due to its CGO dependencies. For cross-platform compatibility, we use the gles build tag which enables software rendering.
For Windows and Linux builds, we use the -tags=gles flag to ensure compatibility:
# Build for Windows/Linux with software rendering
go build -tags=gles -o trtc-go-gui ./cmd/guiFor convenience, build scripts are provided for both macOS/Linux and Windows:
macOS/Linux:
# Build for current platform
cd cmd/gui
./build.sh
# Build for macOS with app bundle
./build.sh macos
# Cross-compile for Windows
./build.sh windowsWindows:
cd cmd\gui
build.batThis project uses GoReleaser to automate the release process. To create a new release:
-
Tag the commit you want to release:
git tag -a v0.1.0 -m "First release" git push origin v0.1.0 -
GitHub Actions will automatically build and release the binaries for all platforms.
The graphical interface provides an intuitive way to upload files to the TRTC system.
- Launch the application by double-clicking the executable (Windows) or opening the app (macOS).
- Configure your API key if this is your first time using the application.
- Use the file selection buttons to choose your data files for upload.
- Click the "Upload" button to begin the upload process.
- View the logs panel for detailed information about the upload process.
# Upload a courses file
trtc-go upload -apikey="your-api-key" -courses="path/to/courses.csv"
# Upload multiple file types
trtc-go upload -apikey="your-api-key" -courses="path/to/courses.csv" -equivalencies="path/to/equivalencies.csv"
# Configure settings
trtc-go config set -endpoint="https://api.example.com"
# Get help
trtc-go helpTRTC-Go stores its configuration in a file located at:
- Windows:
%APPDATA%\trtc-go\config.yaml - macOS:
$HOME/Library/Application Support/trtc-go/config.yaml - Linux:
$HOME/.config/trtc-go/config.yaml
You can edit this file directly or use the configuration commands in the CLI.
The default API endpoint is set to https://rts.tnreversetransfer.org/api/Upload. If you need to change it, you can use the following command:
trtc-go config set --endpoint="https://your-api-endpoint.com"This project uses pre-commit hooks to ensure code quality and that tests pass before commits. To set up the pre-commit hooks:
We provide setup scripts to make it easy to install the pre-commit hooks:
macOS/Linux:
./scripts/setup-dev.shWindows:
scripts\setup-dev.bat-
Install pre-commit:
# Using pip pip install pre-commit # Or using Homebrew on macOS brew install pre-commit
-
Install the git hooks:
pre-commit install
-
(Optional) Install golangci-lint:
# macOS brew install golangci-lint # Windows choco install golangci-lint # Linux curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Now, every time you commit, the pre-commit hooks will run to ensure tests pass and code quality is maintained.
This project is licensed under the MIT License - see the LICENSE file for details.