Personal Project Overview — Goal, Scope, and Struggles

Martin Mička
3 min readMar 13, 2023
Photo by Michael Dziedzic on Unsplash

It has been a few months since I embarked on a journey to explore new technologies and try something outside of my usual stack. When I look at surveys, I can’t help but wonder why TypeScript is gaining so much popularity. I am familiar with TypeScript on the frontend, usually in conjunction with the Vue framework. The idea of having one language for both parts of the application was appealing to me, so I started exploring this Pandora’s box.

I have decided to create a small full-stack application called Quizae. It is intended to be a trivia platform where users can define questions and answers in categories, and then start a trivia game with friends. The idea has changed a few times with every iteration, so it is still a work in progress, but I want it to be a journey and share my progress with others.

My ultimate goal with this project is to learn new things and experiment with something I have never tried before. Doing a “hello world” program in a desired technology is a good first step, but it does not have any tangible impact, and I cannot form an opinion on such simple cases. This small project gives me better insight into whether a given framework/technology is suited for my needs.

For the backend, I’ve chosen TypeScript and Node. While I have some experience with Node from taking a few courses and working on an app in Electron, I wanted to see how the ecosystem and community have evolved in recent years. I read about new frameworks and libraries in tech newsletters and wanted to give them a try. Additionally, I wanted to separate the backend and frontend, so I’m exploring Nuxt/Next frameworks for the frontend. Although I enjoyed working with Nuxt 3, I encountered some inconsistencies and issues with it, which I attribute to its early adoption. As a result, I’m now revisiting React/Next after a few years to see how it has evolved. While I’m not primarily interested in the frontend, it’s still intriguing to experiment with it from time to time.

To manage and orchestrate the whole stack in both server and local environments, I used Docker, as I’m also interested in DevOps and automation. This project provided an opportunity to try out orchestration and virtualization in multiple environments. Although I plan to explore Kubernetes and other orchestration tools in the future (Nomad by HashiCorp is also on my list), Docker Swarm sufficed as a starting point for the server environment. Along the way, I also tried other tools, such as Github Actions for CI/CD and Portainer for cluster management. I will provide more updates with a deeper dive into all these areas.

With this project, I am also learning more about scoping the work and logic of the application itself. At times, I have felt overwhelmed, but with each iteration, I see that some things could have been implemented later or are not important for the project. I am rethinking the scope of logic with each iteration, and currently considering downsizing it for a bit. Again, I’ll write down and share my findings along the way.

If you’re interested in how things are going outside of my posts, I decided to make Quizae open source. You can find it on my GitHub. Thanks for reading this post, see you next time!

--

--

Martin Mička

I’m 27 years old, working as a Software Developer, mainly interested in new technologies and psychology.