I spent Friday and Saturday launching the first version of the note-taking app I’ve been working on, live now at trovedex.com. Woohoo! I’m glad I was able to get it up just before the end of May.

As stated before, there are still quite a few features I’d like to add. But even before I go about adding new features, there are a number of glitches that need fixing. It’s really annoying how some things that work fine in production (when running on my computer) suddenly stop working or glitch out when live on a server.

Deploying the Vue app wasn’t too difficult in and of itself, though I will need to develop a more efficient deployment strategy than just uploading files. The trickiest part for me was getting the API back-end server, which manages requests from the app to the database, to use the more secure “https” protocol. The front end, built with Vue, was easy; you can just set a variable in its config file and *poof* it works. The back-end API, however, needed info about a valid SSL certificate to be recognized as secure. Googling around, just about all the info I could find involved creating a self-signed certificate, which most browsers won’t trust, so that didn’t help me much. I finally figured out how to get the “key” and “cert” files from my server’s certificate. A simple solution, but difficult to find. Also, if you know how to look at your browser’s javascript console, you’ll see that my implementation of firebase, which I’m using for user authentication (hence why you can log in with Google or Facebook without having to create a new account), outputs a warning about my code using a “development build” of the SDK. I couldn’t figure out how to get rid of that. It probably also has a simple solution I just haven’t found yet.

At the moment, I know this note-taking app is nothing amazingly innovative, but it’s been great for learning “the stack” (the layers of tools used to build a web app) and I think continuing work with it (and on it) will be fun. Now that this is up, I’m going to switch my focus back to TuneSage, my in-development music-writing app. I’ll still work on Trovedex to fix the current glitches, add features, and make improvements, but I’d like to launch TuneSage before Christmas and there is a ton of work to do on that.

Happy note-taking!

Categories: Programming

7 Comments

Michael · June 1, 2020 at 5:04 AM

Congratulations on getting your app online. I was hoping you’d get tunesage online first, but it’s good to see you getting web development experience which will help with tunesage.

I created an account but when I click on the new trove nothing happens. There are connection timeouts with your API.

Do you have monitoring on your api to alert you when it’s down? I’m a web developer so if I can help let me know.

    S P Hannifin · June 1, 2020 at 6:33 AM

    Yeah, something’s wrong with the API, but I can’t seem to figure out what it is. It’s a node/express server but it’s not really going down, it just seems to go unresponsive, especially to new connections / accounts. (I don’t have it set to alert me, I’ve just been monitoring it with PM2, which says it’s running fine even when it’s unresponsive… I’m not sure if it’s something with my code getting it stuck, or something else…)

    Thanks for trying it out, sorry the API is being stupid at the moment. 🙁

    S P Hannifin · June 1, 2020 at 9:10 AM

    I think I fixed it… I think the main issue was actually my server’s firewall settings blocking the port, a rookie mistake!

Michael · June 1, 2020 at 9:31 AM

It’s working for me.

For your monitoring, I like to have my monitoring send a request to the API that requires a database call and that makes sure everything is working. Actually in my APIs I create a healthcheck that calls any required backends such as other API’s and if one is down then my healthcheck returns a down status.

congrats.

    S P Hannifin · June 1, 2020 at 1:14 PM

    Do you use any special software for that? That’s something I’ll have to explore…

Michael · June 1, 2020 at 2:43 PM

For calling the API’s, I write custom code for that. I develop in Kotlin & Java, and the Spring framework makes this easy as it does all the boilerplate and I just have to implement a method to make the API calls, which I do by re-using my services which are already used for my app.

For monitoring, I use whatever my client uses. Currently we use Grafana/Prometheus which are free open source.

Leave a Reply

Your email address will not be published.

*