Monday, 7 October 2024

Project 1 - HowMuchIsThisMeetingCosting - under the hood

 


I am writing a blog about my journey to create a side-hustle software project brick-by-brick. I have an end goal solution in mind, but before I start on that solution I am building some projects to ‘level up’ the skills that I think I will need to build it.


For my first project, I decided to build a front-end only meeting timer  website in Vue,  using Vueitfy for UX framework and Vite as a tooling engine.You can find more information about why I chose these technologies in previous posts.


In this quick post I’ll link to the public repository for the site for anyone who wants to look 

through the code. 


Project 1 Code - initial version


You can find the source code for the initial version here Github


The best thing that can be said for this is probably that it works?  This was my first experience using Vuetify bootstrap project and it probably shows.  That being said, it gets the job done gave me enough of a boost with learning Vue that I think I’ll soon be ready to move onto something more ambitious.


To navigate the code, and for people like me who are just learning Vue, here are the major parts to look at:

  • /index.html  - this is the actual html page that loads the vue application.It runs the script in main.ts
  • src/main.ts  -  this is the main typescript application entry point for the application. It bootstraps vue and  creates the vue application, mounting the App.vue component
  • src/App.vue - this is the main 'container' for the application. It sets up the vuetify layout system and the sets up a router view that renders sub components based on the URL path
  • src/pages/index.vue  this is the 'main page' of the meeting timer application. It initializes the timer and switches the various UI components on and off
  • src/components/* these are the various UI components that handle the meeting settings form, the timer display and the focused display and the 'about' overlay
  • src/components/utilities/timerstate.ts - this module maintains the state of the timer and handles the presentation logic.

Big desk and a tiny win

I looked at my desk today and didn't like what I saw.  My desk is two-tier IKEA behemoth that I have had for nearly 20 years - it is sup...