How I Started Working on a Personal Project — Part 1

Keloysius Mak
4 min readMar 22, 2019

--

I always loved working on personal projects, I found that it gave me a great opportunity to practice skills I’ve learnt, to adopt new technologies and to build something new.

I did an internship over the summer, developing and building the backend for a startup trying to reduce food waste in Singapore. In my time, I learnt a lot by working in a fast-paced, committed and driven team, and wanted to build a personal project to put these skills I’ve learnt into practice. Some things that really stood out to me, was containerisation, micro-services, and the relatively new concept of serverless.

So what do I build?

Trying to find something to build was rather challenging. I did not want to build something too simple, and I wanted to build something useful to someone.

The inspiration came from my passion for photography. I have been a wedding photographer for three years now, and in my time I have met many couples and documented their journey to ‘happily ever after’. I’ve learnt from them the challenges of wedding planning, how the glitz and glamour of the big day often requires months of meticulous planning.

Then it struck me.

What if I built an app to solve that?

The first thing I did was to bounce this idea off some of my couples, and hear their opinions on the usefulness of such an application. It was a pleasant surprise to hear that this idea was well-received, and that many gave suggestions on how to take it to the next step.

Great! Now, where do I start. I had a list of things that I wanted to do, and piecing them together surely made for an extremely useful application, but it would be hard to complete within a reasonable time frame, let alone doing it individually.

So I decided to work on the two most important features that my couples requested for: scheduling and budgeting.

Couples wanted a way to keep track of their wedding schedule and budget. To make sure they know what’s happening during the months leading up to the wedding, and to make sure they don’t blow their budget going for something they probably don’t need.

Surely there has to be an application for that?

That was exactly what I thought, but couples I spoke to found that those applications were rather narrow in their feature set. You had to download one application to settle tabling, another to settle your RSVPs, it was extremely complicated. Many of them resorted to creating a complicated Excel / Google Sheets document, and it seems as if this is the modus operandi of couples in Singapore these days.

Now that I had a (useful) idea, the butterflies in my stomach started to tingle.

Setting Goals

I’ll go into dissecting the problem and my rationale for my technological decisions in a later post, but for now I wanted to run through the goals I set out for myself with this personal project.

With each personal project, I aim to learn something new, something I wasn’t too familiar at and would love to put into practice. Many years ago at fourteen, I was ‘addicted’ to this game called MouseHunt, and really enjoyed sounding a virtual horn every fifteen minutes to catch virtual mice. It was like playing the lottery every fifteen minutes — you never knew what you’d get. Along the way, I was fascinated at how they constantly released new updates, and how ‘cool’ it was to own a game. So I went off to learn PHP, HTML and CSS, to create a clone of the game, just for the fun of it. While the process was anything but fun, it did teach me a lot about the fundamentals of PHP, and it built a passion in me to keep building.

With this project, I wanted to use a MEVN stack, and put into practice my extensive amount of time spent with Javascript during my internship. I also knew I wanted to adopt a micro-services based architecture based loosely off what I was working on. Vue was relatively new at the time, and I wanted to see how it fared compared to traditional powerhouses React and Angular, so I gave it a shot.

The goal was simple: to build a website for couples to plan their wedding.

I didn’t want to bog myself down with too many features. I wanted to build a MVP, get it out there and be of use to a couple planning their wedding. With that in mind, I didn’t think about monetisation, advertising or anything of the like. I wanted to build a product that someone would use — that mattered a lot more to me.

I focused on building a rudimentary scheduler and budgeting tool, and incrementally adding features and functionality along the way. I made this decision because I didn’t want the application to be another one of the applications with a limited width of features, however useful it may be. I wanted to build iteratively, constantly hearing feedback from couples and incrementally improving on the previous.

With that in mind, I split my project into two sections — the development of the backend, and the development of the front end (website). I wanted to get the backend done first, to avoid having to concurrently work on both at the same time and have my attention divided between the two.

With a burning eagerness to get started, I fired up Atom, and my journey began. In subsequent posts, I hope to detail more about the entire journey, from idea generation to the troubles faced and some thoughts as I reach the end of my journey towards a MVP. I learnt a lot from this journey, probably my biggest ever personal project undertaken, and I would really love to share more about it.

In the next post, I’ll detail the journey developing the backend for the application, how I got started and how I pivoted halfway during the development.

Part 2: https://medium.com/@keloysiusmak/how-i-started-working-on-a-personal-project-part-2-54f8727e50b8

--

--