For this assignment, I decided to use react, because it not only facilitates quick development, but its component driven development philosophy allows for efficient and modular user interface development. For styling, I used Tailwind CSS because its utility classes not only provided me with all the styling that I need, but there was also room for extensive customization to make the application look the way that I wanted.
In order to keep the code clean and leave the application open for potential improvements down the road, I decided to use React Context API for global state management. Though the application is small, and it is possible to handle state locally inside the components, this increases the prospect of prop drilling and could cause maintenance issues if the application's functionality is to be expanded in the future.
I enjoyed working on the assignment a lot. Much of this largely due to the fact that it allowed me to showcase my coding skills, while at the same time giving me the freedom to utilize a design that I like.
The most challenging aspect of the assignment was coming up with a good design that not only looks appealing on desktop, but also mobile devices. Achieving the desired level of responsiveness also proved a bit challenging, but using a mobile first approach helped overcome this issue.
I followed clean code standards while doing the assignment, mainly making sure that variables are well named, and avoiding overly complex solutions.