February 2019. Still on 9th grade. The day of hearts was nearing and I knew it was the perfect opportunity to find out the compatibility of my classmates with each other.
The idea was for everyone to take a test to determine their personality and interests. Using that information, it is possible to match those whose personality and interests align with each other.
The test was multiple-choice. It was a user-experience design to make the test as short as possible so as to not bore the user and make the results as accurate as possible. Otherwise, they'd just start picking random answers.
I successfully deployed the website on Heroku without fully understanding what an ephemeral filesystem meant. I didn't use a real database and instead auto-generated a JSON file to store the data. I asked my classmates to take the test. They could check the current results which would show their profile with a ranked list of who their interests are. That doesn't necessarily mean that the rank one on their list has them also as their rank one.
To complete the matchmaking, everyone should have had already taken the test as the stable-marriage algorithm will compute the stable pairs given their list (people they're interested in based on the test).
On Valentine's Day, I asked my classmates to use the site and they did. It went smoothly. However, the next day all the data was gone. I was using Heroku for free and when the site became inactive, the dyno slept which meant the program halted. How is that a problem? Answer is ephemeral filesystem. It meant that any auto-generated file which was not included on the commit will be deleted.
Well, I asked my classmates to take the test again, and fortunately, they did. This time, I exposed a route which would respond with the database, and I wrote a script on my local machine to get the database every unit of time.
Everything ended well. Results were accomplished. I removed the website after the week, deleted the source code and made sure to remember what ephemeral filesystem meant.