Took a heavy handed approach to tests by just brute forcing passing tests. Removed just about all of the boilerplate as we are actually no longer really routing as the scaffolding created for us. There's no new or edit link though the behavior is still present. Moved our initialization from the index action to mount as we needed it for the toggle/2
test to pass. This is pretty typical behavior I think, placing everything in mount as this is technically correct though the route for index always hits the index action.
Given more time I'll likely revisit the tests to see if I can address them. Of the 4 tutorials I pulled from, [https://github.com/dwyl/phoenix-todo-list-tutorial], [https://dev.to/amencarini/liveview-todomvc-4jin], [https://github.com/toranb/phoenix-live-view-todomvc], and [https://github.com/dnsbty/live_view_todos] only the 1st from dwyl has any relevant tests unless I'm not looking hard enough.
I was hoping to have this more wrapped up in 7 days as that seemed like a nice round number. I believe the only days I spent considerable amount of time on it was day 3 and day 5. I had spun my wheels a bit before realizing I could move beyond hurdles to produced a much better flow. It's hard to gauge a total time spent on this. I would say no more than 20 hours conservatively but it should be closer to 10. I spent a fair amount of time translating the more traditional tutorial to LiveView and getting up to speed on behavior. Once I understood how events and bindings work though, it was a pretty quick endeavor. I used Google extensively as I do with most projects but nothing left me stumped to the point that I quit as I have done in the past.
All in all, I'm proud of this work even if it's very basic and very little of it is truly my own. I pieced together Frankenstein's monster but those aren't entirely my limbs or organs. I won't pretend things aren't all over the place and my freshness may be showing here but I don't mind. I know I'll get better the more of these I complete. I've also had less of an issue working on something like this versus Exercism or Advent of Code. Phoenix takes care of a lot of the hard parts and I'm left with what I somewhat do normally, glue pieces together with lightweight functionality. It also helps that I don't have to unwind intricate requirements and I can see an end result quickly. A lof of the examples for Exercism or Advent of Code go a bit over my head and it becomes difficult to find an implementation that seems more like my style. Reading all of this you may be thinking "Well why don't you just write in your style?" but I'm a very visual learner so unless I can work backwards from a finished work, I can sometimes have difficulty deciphering all of the steps I may need to take. I like doing mazes from the end to the beginning for many of the same reasons. Once I'm proficient enough in a language or framework I really don't need these "training wheels" but I do fall back on them every so often when I lose my way.
It also feels a little weird to be done with this project. Is this bug free? No, but I think it's pretty feature packed for what it is.