AttributeBank: Part 1
11/05/25
It's been a while since I last put anything on here, so I figured I'd come back to talk about a project I've slowly been banging together with rocks over the last few days, and what I hope will eventually come to fruition as a real, working, and actually USEFUL piece of software!
For the last few years I've been slowly building up a small collection of semi-interesting electronics, tools, or just anything with any sort of technological historical interest. Old phones, laptops, monitors, cables, etc.. I currently have 5 laptops in my bedroom, 3 desktop PCs, 6 phones (which I hope don't raise any suspicions when I show them to people), and plenty of other old curios. Lighters, old coins, walkie-talkies, an old handheld TV. The list goes on, and as you can imagine, it's hard to remember everything on that list.
Every time I go back to one of these items (particularly the electronics) I spend about 15 minutes getting bored looking for manuals, datasheets etc., to help out with troubleshooting when I need to fix something or try to get something working on them, and I thought it would be great to have these all pre-saved and accessible. This could've easily been done with a single nicely-sorted folder on my PC with every piece of documentation I'd need for any device I've got.
Then I thought it would also be good to have little text files storing information about each item, like how old they were, a description, where they're kept, maybe a reference number (so I can always figure out what something is if it ever skips my mind), maybe information about when it was last charged, etc..
Then I just thought, "Why not make a piece of software to manage this data for me, so I don't need to trawl through a bunch of text documents?". So I will.
I decided initially to call it "CollectibleAttributeBank". I figured it was a very telling name, being that I was basically just storing data about items in my collection. Simple. There would be a single "Bank" with a defined schema, and this "Bank" would contain a list of these items, each with a value for each of the predefined attributes. These attributes would just be things like "Name", "Description", "Date of Manufacture", "Condition", you get the picture. As I went on I figured it would be cool to not be fixed to one schema, and be able to set up each "Bank" with new data requirements for each item, and then every time you add an item, it requires a value for each of those attributes.
Since this would be a little more open, it could be theoretically used for pretty much any inventory you need to store data about. For that reason, I decided to take "Collectible" out of the name, just calling it "AttributeBank".
Anyway, that's a lot about the name and not the functionality. I've already created a basic outline of the program in Java (of course it's going to be Java). I'm going to spend some time working on my understanding of the relationship between persistent storage and Java, as I'd love something a bit more elegant than a bunch of text files and what is essentially just a fancy parser. I'd probably like to opt for JSONs as I find them both simple and versatile. I'd love for each "Bank" to be somewhat portable, as it would be cool to host the file/directory on a home server and access it from any device. Right now I'm considering packaging them in a custom .zip of some sort, or maybe I'll just keep all the data in one file. Again, my uncertainty alludes to the need for some more research.
Of course, it will be open-source. I'll try to get a working version on a public Git repo when I get a chance.
It's a fun thing to work at on the side, but I'm a bit swamped with exam revision right now, and I'll hopefully be starting a work placement soon after, so I haven't got all the time in the world to work on this. Hopefully, I'll be writing about this again sooner rather than later!