I (to) did it! (To-do project)


Things I've worked on/completed since my last post…
I completed the To-do project!
https://codecara.github.io/To-do-list-The-Odin-project/
Issues I had…
I noticed that some of my buttons were not firing on the first click and tried to figure this out using the debugger, but the problem was not clear to me. I had encountered this problem earlier in the course but could not remember how to fix it. In the end, it was because I was attaching the event listener to each individual button. I fixed this by attaching the event listener to document.
I then has another event listener issue - an event that was firing on first button click, but only only firing after two clicks after that. I literally went through it line by line and saw an error in my if/else conditions and managed to fix it.
I noticed another problem where is a task was entered without a date. After some testing, I realised that this was because some tasks were being saved to the data object even when no date had been entered, which then caused a ‘read error’ when date-fns was trying to read data from the data object. I ended up putting conditions in placed to prevent this from happening and implemented a modal pop-up error when the date field was empty.
I had an issue trying to align a checkbox with a label which proved to not be as obvious to fix as I expected. I decided to leave it and move on. I may try to fix it later, but I will decide then if it’s worth the time investment. The CSS I implemented was to a satisfactory level, but I did not put much thought into it after that.
Just as about to deploy, a bunch of errors started appearing - the last thing I would have wanted to happen. I just had to go through the debugger and realised I had deleted unused parameters from a function definition, but forgot to the delete the corresponding parameters in the function call, which messed everything up. Fortunately, I fixed it.
Things that went well...
I managed to fix all of these issues without any external help, excluding Mr. Google. In fact, I made myself solve the vast majority of problems I encountered in this project, which was very satisfying.
I finished the To-do list on 8th March 2025!
Things I've learnt/need to improve on...
I should possibly think about refactoring bits of code as I build instead of leaving it all to the end.
I’ve learned that it is possible to do To-do - it just may take a while!
I need to improve my consistency with git commits.
Other…
I decided not to do any refactoring, but spent some time looking at other people’s solutions. I also plan to scan the study material in the build-up to the project, to see how many of the principles I actually managed to incorporate into it. It gets to the point where you’re just trying to get something working - for me at least.
I did try to structure it in a somewhat appropriate way, but was advised by someone to just keep one file with variables and another with logic and to keep data and the DOM separate - I accomplished that at least.
I am proud to have finished this project and amazed that I didn’t give up at certain points - I guess this means I have developed some of the famous ‘grit’.
Plan for the forthcoming week...
I will be continuing on with the JS course - ESLint.
Subscribe to my newsletter
Read articles from CodeCara directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
