One thing I find myself doing, I’m revisiting a lot of the more advanced FCC challenges, and trying a different framework or library, or no library at all.
It’s interesting to revisit something I’ve built with, say, React, and build it with Backbone. Or to simply strip it to vanilla JS, and build as robust an app as I can.
Currently, I’m tinkering with the pomodoro challenge, and building each component as pure vanilla JS, but much more – each component is emitting its own events (“counter.change”, “counter.increment”, “timer.pause”, “timer.complete”), and having the main component listen for those events in order to trigger actions. By doing so, each component is completely unaware of any sibling components.
Another approach I’m trying to integrate into this same experiment is allowing the child components to receive callbacks. So, for example, when the timer component completes, it will emit a “timer.complete” but, if given a onComplete() callback, it will run that. Thus the main Pomodoro app can simply iterate over an array of session/break periods, and when the onComplete is called, it can shift the next session/break off the stack, and re-initialize the timer component.
My suggestion? Revisit what you’ve already done, and look for the better way. If you’re planning to use these challenges as fodder for your portfolio, it just makes sense to make that stuff SHINE!