I've recently implemented Codecov to help me track the code coverage for my unit tests. This tool allows me to see how much of my code is being tested. To integrate Codecov into my development workflow I've set up a CI pipeline using Github actions. Whenever I push my code to Github, the pipeline runs my unit tests and uploads the coverage report to Codecov. Right now my code coverage is at 12% so... Read more
Welcome
Hi, thanks for visiting my site. My name is Adam and this is my online portfolio and blog. Please use the main menu if you would like to know more about what I do.
The majority of the website's images have now been moved to Cloudinary, a cloud-based image hosting platform and content delivery network. By utilizing Cloudinary's compression and optimization capabilities, this should improve the website's performance and page load times. This change will also make it easier to manage images and scale as the website grows. This was a necessary step to support fu... Read more
Sentry is now being used for error logging on both the front and backend. They have a very generous free tier which is more than enough for this site. It was easy enough to set up, although I ran into a problem with my ad blocker stopping the reports from being uploaded to Sentry. After reading the documentation I found that I could get around this by tunnelling requests via the backend and now it... Read more
I haven't had much time to work on the site as I’ve been busy lately. I plan to work on it some more in the near future, in particular I would like to make some improvements around the login and registration forms. I plan to add client side validation by implementing a library such as Formik or React-hook-form, and add more options such as password resets. I would also like to look into logging in... Read more
This site now uses a Postgres database but that’s not how it started out. Originally the plan was to use MongoDB and the MERN stack. After 15 years working with relational databases I wanted to try something new and NoSQL was just what I was looking for. I'd read that relational data could be stored together, avoiding the need for joins across multiple tables. *Data that is queried together should... Read more