WW0CJ

Building my own (MVP) Ham Radio Log

The other day, I saw a really cool Fediverse post from KC8JC - J.C. is writing his own logging software in Python and used it for the K1USN Slow Speed Test as a beta test!

In my previous post, I discussed my own experience participating in a recent K1USN SST, and when I saw J.C.’s post I had already known I was soon to participate. I got inspired and decided that morning that I too was going to build my own logger and use it for the contest.

I’ve been learning Golang for a bit now, and wanted a project to practice and learn by doing, so I’m using that for this project. To start for the contest, I wrote a very very simple CLI program that used an ORM to store the log in a SQLite database, the fmt package to process user input, and took the basic information for the contest (Callsign, Name, QTH, RST) in a space separated input and saved it.

For a very basic program written in an hour and a half, it worked perfectly and was very efficient for contest style logging. I was quite proud of the work so far, and it was a fantastic ā€œminimum viable productā€ (MVP) test of both the program and my Golang skills.

Later that night and since then, I’ve been working on expanding the program a bit. Thanks to some Go advice from DuÅ”an, I have: added callsign lookup with the net/http package and the HamCall.devAPI, moved to a single dependency by using database/sql instead of an ORM, and made the CLI interface a bit more intuitive.

There’s still a lot of work to be done, but it’s pretty cool what I’ve managed to setup in the 24 hours prior to writing this blog post. I am very picky about my logging software and its functionality, so despite it being a very opinionated program in the way it operates I am excited to keep working on it as a hobby project and learn more about Golang, databases, and programming in general.

Building a logger has been a project I’ve wanted to do for a while, although initially I had wanted to do it in a web interface. Starting simple and getting a usable product is awesome and checks off one of my ham radio bucket list items!

I’ve published all of the code on Codeberg if you’d like to check it out - although my practices for writing clean and safe code might not be the best around, I still plan on working in public and hopefully can inspire someone else to work on a project they’re passionate about.