TL;DR Simple looking parts of Fubolista took a lot of time to build and previous experiences helped me speed things up.
For the last 5 days, my focus was to finish enabling Anton to edit his online player resumé.
I had already set up a way to enable editing simple text fields like his name and email.
The next step was to enable editing fields like his nationalites and his soccer positions (he has 2 in both cases).
I figured it would be straightforward because it's just a list of options and I had seen multi-selection lists on other websites.
I was wrong.
I started by looking for a multi-selection list component online and in my previous projects. I could not find one that fit my website.
That meant I had to build one myself. It was nighttime, and I was dreading the task, so I decided to sleep on it.
The next day, I had accepted that I needed to build it myself. I wanted it to be a list of checkboxes with a search bar on top that would filter the list.
I planned to support 246 countries and 24 soccer positions, so I decided to load them all into the lists instead of fetching them from the internet as the user types.
That meant a lot less work to build the search bar. After a few hours, I had a working component, and Anton was able to edit his nationalities and soccer positions.
The next item I decided to build was the photo update feature.
I had built an image upload component for the ilufy.io project. It took me 4 weeks.
I had spent a couple of weeks trying to decide which service to upload the images to.
I ended up going with Cloudflare because other services charge you when someone downloads your image to look at it.
These are called egress fees. They become absurdly expensive if your platform becomes popular.
I think there's a lot of greed involved in charging those fees. You always need to be careful when choosing your cloud provider; there are many cloud horror stories out there.
Some people wake up with unexpected bills of $100,000 or more...
You can understand a lot of the 4 weeks were spent worrying about egress fees.
I ended up building the component for ilufy.io using Cloudflare and I still haven't paid a single dollar for it, which is nice.
I reused my image upload component for the player photo edit, and it took me 2h30 instead of 4 weeks 🤯. I was shocked.
And most of my time was spent renaming and deleting things because I didn't need to upload video files.
The lesson is, if you build something once, you can reuse it later to save time.
Next, when Anton edits his player experience, I want to suggest a list of teams he can choose from.
The idea is to let him add teams to the system and giving him suggestions will help reduce typos and duplicate teams.
It'll also allow him to select a team that has information in the system, like a logo, which will make his resumé look nicer.
I needed to let him search for teams in the database. So this time, I could not escape the search feature.
I've never built a search feature before, so I started looking for help online. Again, I could not find anything that fit my needs.
It was a bit frustrating because it took me a full day of work (compared to 2h30 for the image upload component). I did not expect that.
I needed an additionnal day of rest to recover from this but at the end, I was happy with the result.
For the final week of my 4 week challenge, I will focus on delivering the initial version of the platform to Anton.
This way, he can actually start updating and sharing his website with soccer recruiters.
As always, I kept him and my friends/family in the loop with my progress.