Nodetree was my first project written with 'nodeJS', after a few weeks of learning the basics as part of my adventures of a hobbyist series I decided to jump in and actually make something, that something was a MySQL editor named Nodetree. You can try out the demo the password is
To get the project off the ground it only took around a week, at this point I should point out I only get a couple of hours per week to use for these projects, but it took a further 4 weeks, totalling 5, to get it to a place where I felt it was "finished" enough to stop. That being said it's up on Github any issues and pull requests are more than welcome. I may not be documenting the project anymore but I hope to keep it active.
As this was really an exercise of putting together things I'd learnt previously there wasn't too much new I came away with.
I had a lot of fun using classes to define 'elements', not true custom elements but rather styling and state handling existing elements, like inputs. I like the idea of using custom elements so maybe my next project will incorporate them.
I also learnt to use npm for packages, I had a little experience with bower so it wasn't a huge change really.
Balancing making things look nice, be functional and be intuitive isn't as easy as I thought it ought to be, but maybe that's just me.
Having to remind myself not reinvent the wheel everytime I wanted to do something different, 'someone has probably done this already' I had to remind myself. Even if I didn't use their solution, in the end, it was worth looking at how other people solved the problem.
There is still a fair bit to do, the mobile interface is a bit lacking on the database page, users can't add new rows to a database (a huge oversight on my part). Over the coming weeks, I plan to make issues for each thing I've forgotten. If you want to help feel free to have a look at it and raise some issues.
Next, I'm going to do a few small learning exercises, at the moment I'm looking at SQLite, in Nodetree I made a JSON file called servers.conf that contained all the connection details but I'm thinking a 'servers.sqlite' may have been better.
After that I will start another project, my end goal is to make a PWA, named ignis, for sysadmins to manage their sites. I hope to make it so anyone can make a plugin that can be found and installed by anyone that wants to use the system. I feel I probably need at least one more small project before I tackle ignis.
That's it for this week, let me know if you like the postmortem format. If you don't you can let me know that too but please let me know what I can do better.
Thank you for reading all the way to the end and coming on this adventure with me.