The purpose of building this project is to keep myself motivated towards the goals that I have set for 2024. I track my goals, habits, and thoughts using Google Forms and realized that looking at the Spreadsheet is going to kill my motivation whenever I recollect, strategize, and plan for my goals.
I've decided to create this React project for that purpose. As a side goal, I've decided to use different library dependencies and packages for this project to get exposed to other technologies that I do not use and get used to them.
This project can be used to fetch data from your own personal Google Spreadsheet. You just have to set your own .env variables with the same columns that I used in each card if you like.
The first step that I did with this project is to plan and decide what tools and frameworks I will be using for this project. I've been using Next.JS recently so for a change, I decided to use Vite to learn more about it and how it works with the simple CI/CD I developed through GitHub Actions. For the design and components, I used shadcn/ui to expand my tools of component libraries.
The second step is code and develop. This is where my leniency got the best of me. I've been developing in a Test-Driven Development and have been setting up CI/CD for each of the repositories that I work on. For this project, I decided to develop all of my code on master
branch thinking that it would be a quick and simple project. ROOKIE MISTAKE. Turns out, there was a lot of unknown unknowns that I did not prepare for which led to poor development experience.
The challenge that I struggled with is fetching the data from the Google Spreadsheet. I was trying to implement the fetching feature using google-spreadsheet package, but failed to do so. I struggled for a day or two. Having this roadblock made me ponder of creating a backend, but that will be way out of scope for this project. After more research, I found SheetDB.io which saved me ton of time.
As a personal note, I told myself to keep continuing the CI/CD pipeline, tasking out tasks, and TDD practice that I've been doing until now NO MATTER HOW BIG OR HOW SMALL I think the project is.
Spencer Rafada - email@neilspencerrafada@gmail.com
Project Link: https://github.com/spencer-rafada/2024-Tracker
Production: https://spencer-rafada.github.io/2024-Tracker/
This is for my wife, Hana. I do everything for you and for us.