TL;DR It’s all about the User eXperience, design and making software fit you, and not the other way around.
I’m an amateur radio operator. as all hams, we are required to save a log of our contacts with other people. besides the legalities, it’s nice to have a record of places & people I’ve talked with. when I’ve started my hobby, some 30 years back, I received a paper logbook which I’ve been using untill recently, and I’ve been very happy with it.
I’ve been thinking of using a computerized logbook software, but to be honest, I really had no incentive. pen and paper were good enough for me. plus, the ones I’ve tried to use (out of the thousands out there) left me with a horrible experience. i consider my self as a savvy computer user, but most of the programs I’ve tried had a “designed by an engineer” look and feel, which in this day and age is simply a crime.
a log book is basically a table. and how do you feed data to a database table? using a form of course. so here’s how a fairly simple example of such form from one of the most renowned log software (HRD)
when I’m working the radio, I’ve got the mic on one hand, two ears trying to decipher what the other guy is talking about (HF communication sounds like an old 1920’s recording, so it takes some effort), I’m turning the radio knobs for best reception, and with the 5% attention span and three available fingers it’s too hard for me to navigate around that form.
so I’ve set out to build something different.
as far as hams go, I’m a very casual operator, definitely on the rag chewers side. I don’t like contests, I don’t apply to any awards & I rarely chase DX’s. so my requirements are simple: should be easy to operate without taking too much of my attention span, preferably minimizing the movements between mouse and keyboard. and I’ve also wanted to provide backup so if something happens to my laptop, I’ve got a copy of the log, which is a big plus over what I have now.
I’ve experimented with various technologies untill I found the right balance between ease of development (this is a hobby project after all) and a UI that is easy to use as I was thinking about. I ended up using electron running a react.js app which also makes a great multi platform (win/mac and future web/mobile) solutio.I chose couchdb as the database as it has great online-offline and synchronisation capabilities.
the UI itself is split into 3 parts : an input area, the log table, and a toolbar.
the input part is a simple text area where you can enter your data in a free-form format. I strongly believe in “don’t let people do stuff computer can do better” so whatever field I can detect automatically, the software figures out its type without a problem. this includes callsigns, signal reports, grid location, time and date etc. text attributes like names and locations might also be detected in the future, but for now you need to write “n ” or “q ” before the text. as a short cut, where I have the data from hamqth.com, if you write “n” or “q” and press the software auto complete the field from the online data. all other lines are saved as comments.
submiting the QSO is a simple three clicks on the “enter” key (or cmnd+enter ).
if I didn’t complete the QSO, clearing the data is cmnd+delete
the toolbar is divided into 2 parts. on the left I can enter information that stays static between QSO’s such as which band and mode I’m using, my location and equipment used. on the right hand side I can search the database, by looking at all fields for the string, sync with eqsl and also import and export ADIF files.
some other nice features include integration with other software and services. when making a QSO on digital mode using either wjsx or fl-digi, the QSO is automatically registered, not even one click is needed. when I’m online i can download the other ham info from hamqth.com and send & receive QSLs from eqsl.cc. and of course the database synchronises automatically with the backup server.
currently this is a me-ware (software used only by the developer), so only features i need (or like) are implemented. other stuff get dubious solutions. like the configuration is just a json file you need to edit externally. editing QSOs for mistakes is done via the backup server web UI. but I might fix and add more features as I go along….