An early start to the week with lots of work on my final project over the weekend! It was cold outside (by Phoenix standards, anyway), so I had no problem hunkering down and getting some of my project task list done.
What I learned working on my project over the weekend:
- I dipped a tentative toe into the world of JQuery which I have yet to officially learn, but proved to be the easiest way to open & close my modal log-in form.
- I got my create user and login functionality working – and as we’re not using a database for this initial project, I went with SessionStorage to store some key values that needed to transfer across pages (such as the current logged in user name). I don’t expect to use SessionStorage too much in production environments, but it’s a nice little tool to have in one’s back pocket.
- I got familiar with JSON.stringify and JSON.parse for writing objects and arrays to SessionStorage. Pretty neat stuff! Basically what these methods do is serialize (and deserialize) objects into formatted strings to facilitate data transfer.
Monday morning, and Day 11. We dove into DOM manipulation which is cool, but something I’d already played with. A few things I need to research (best way to call a function when the content of a div or p tag changes, for example), but this felt like familiar ground. Day 11’s homework – a variation on the calculator that we did a week or so ago, this time without the annoying pop-ups!
And Tuesday’s homework? Just my final project. I have another 3 functions to write before Friday, and then a good bit of refactoring, but more importantly – bug fixing. I ran into a doozy tonight where adding additional “registered users” means that looking at the profile page results in seeing only the information of the last user added, not the currently logged in user. I would like to fix that one if I could! And an odd one: a downloaded image file, which appears to be perfectly normal otherwise, will not allow me to add the associated item to the array. Other images work fine. My solution is “find another image” but I’d like to know what the underlying issue is! I will post separately about my project, but I expect to keep working on it and improving it – if only because CRUD operations on arrays are not exactly how I would handle user registrations in real life.
Wednesday: Review Day! Wow, we’ve covered a lot in the past 3 weeks. I doubt I can remember all of it, but it’s really a matter of knowing what is possible and being prepared to research specifics when I can’t remember exactly how to do something. Or never learned how to do it! Lots of work and polishing to do still on my project. I’m incorporating jQuery where I can (and as I have time), but I expect a late night for this one!
Thursday: Project Day! Yes, a whole day to work on my project. Wednesday night was a late one (about 5 or 6 hours spent working on it after class). I ran into some “interesting” bugs as I worked through all possible clicks and navigation routes and added some simple notifications through DOM manipulation. I considered adding more modals, but thought they’d be overkill for all the notifications that could be generated (and clicking on endless modals is no better than clicking on endless pop-ups). I spent a l-o-n-g time trying to figure out the logic for deleting a specific user (and their items) out of the appropriate arrays. In short – I was deleting array items in the middle of the for loop *and* using the same array for the iteration. This meant I never managed to delete all the items, and not always the user! Bad, bad, bad logic flaw. After 2 hours of drawing out flowcharts on paper it finally dawned on me that all I needed to do was add a second variable for iteration based on the number of items in the original (unedited) array. Et voilà! It worked!
Friday: Project Presentation Day! One of the key things I’ve found with coding over the years is that any project you work on is never truly done. And being something of a perfectionist in my work I doubt any project I work on I will be entirely, 100%, completely satisfied with. But, the presentation was today and the clock has to stop at some point! I got almost every bug resolved – just one that only came up sporadically for reasons I couldn’t quite pin down. Still, I met (and exceeded) all the requirements which, in summary, were to have at least 3 pages (I had 4), and two full CRUD operations (using arrays) plus a log-in. I’ll post more about my project this week.