The making of marks.database

April 7, 2019

I used to keep text files, tracking movies, books, my music collection, and various long term to do lists. Last year, I transferred some of this information over to a MySQL database, managed with a couple python scripts that just wrapped MySQL commands. It was fairly clunky though, and pretty limiting too. Even php myadmin would’ve been easier. So recently, I created marks.database, which is a node front end for my specific database needs. It manages those things listed above. Additionally, I have created a meal planner section, which allows me to store the items in my pantry and combine them into recipes.

The program is built on node with vue and sequelize. Not much else is really needed. The CSS is fairly brief, though I might expand it later. Currently, it is just locally run, so performance isn’t a big deal. Each update sends back the whole table.

There are some other things that should be improved about this project. I mentioned that it is running locally. The only requests it accepts are ones from the local IP. This might be a security flaw, and I could instead include an authentication scheme. The project should be organized better too. Each table should be a separate page, but instead it just hides all the non current tabs.

Working on marks.database taught me a little about design too. Initially, everything was on one page, which quickly became too clunky. With such large datasets it’s important to be able to sort and filter. At first, I had the fields to add a new item to a table at the bottom, which was annoying. Every time you added an item, the fields scrolled off the bottom of the screen. With sorted data, you aren’t appending to the end, so it works just as well to include the input fields at the top too. Colors to differentiate rows in a table are important too, they make viewing much easier on the eyes.

I want to expand the database to be able to track my expenses. This will probably have to wait until this summer, where I might get some more free time to work on something like that. The meal planner system could work better too, it should be easy to add an ingredient to your shopping list for example. I also want to be able to sort movies by director, for example. I am happy with the progress that I have made so far on marks.database.

My pancake recipe