Assignment 2 consisted of upgrading our e-Commerce website that we created for assignment 1, to where it requires users to login to their account or register for a new one in order to complete their online purchase. You can find out more on this assignment here.
The most important thing I had learned during this experience would be to start things sooner. I judged assignment 2 as being "easy" before I actually took a look at it and I learned very quickly that, that was not the case. Especially when you run into bigger problems that require a bit more time to fix. I was humbled, but I walk away with the lesson of knowing I have to manage my time correctly.
No, I did not work with a partner. I did however refer to ChatGPT quite a bit.
I asked for help from the TA's, and my other classmates. They were all so helpful and I was glad to not have to experience an assignment so difficult, alone. As I previously mentioned, I also referred to ChatGPT, but I had a love hate relationship with it. It would have its moments where it would be super helpful, and moments where it was super useless, but we figured it out together!
I think what I needed help with the most was displaying my errors. I could not for the life of me figure it out. I tried to implement a function that would be able to display all of them if needed, but that did not work the way I expected it to. It would only display select errors, so then I had to implement different functions to call the specific errors that had issues displaying. It was so tedious and frustrating, but I was able to somewhat figure it out. I hope it works!
While this one was difficult, I do not think it was as bad as assignment 1 was. I was able to implement the login and registration pages pretty easily, and I didn't have so many issues trying to implement my IR this time around. Assignment 1 was SUPER tedious, whereas this one we actually had something to build off of that was more tailored to our understanding so it was a bit less complicated.
I think I spent about 50% of my time thinking about how to do something. I stressed myself out so much when it came to doing tasks that seemed difficult, but were much easier than anticipated and vice versa. I thought personalizing the invoice was going to be much easier than it looked...until I spent 2 hours figuring out how to tailor it to a specific user, but I digress. I spent about 25% on writing my actual code and about 25% testing and debugging things. I do however wish I spent more time on testing and debugging to actually get down to the bottom of some issues I was having. ie. all my errors not being displayed. If I had spent a bit more time on that, maybe I wouldn't have had to write more code to display specific errors.
I think having a good assignment 1 foundation helped a ton with this. Like I had mentioned, since assignment 1 was more tailored to my understanding so it made getting around assignment 2 a bit easier. I think figuring out how to integrate my login and registration pages worked well. That was probably the easiest part of the entire assignment though. I think displaying my errors did not work out as well as I had hoped. That was more difficult than getting my quantities to carry over to the invoice.
As I had mentioned, definitely getting started earlier! I feel doing that would have gave me an entirely different experience. I would have been able to clean my code up a bit more and focus on smaller issues I had that I just let go due to time contraints. However, I am accepting of the experience I had since there were so many valuble lessons here to learn. Lessons beyond just coding!