E5: Reflecting on Assignment 2 Technical Essay

22 Nov 2022

Provide a brief introduction to the assignment along with a link to this page for further details.
This assignment builds upon Assignment 1. Assignment 2 now required our ecommerce store to have a login, registration, and edit account page. In addition to that, users should not be allowed access to the invoice page without having been logged in first. There was also a large number of validation checks we had to do when creating a new user. Registered users also had to be saved so that they would be able to login in the future. In addition to that, we had to make sure that user data was persistent, check for security, and add personalization. More information on Assignment 2 can be found here.
What did you learn from this assignment?
I was able to learn a lot from this assignment in a short period of time. I think we encountered a lot of issues which helped our learning in the long run as well. After this assignment, I became a lot more comfortable with passing params across different pages. In addition to that, some of the things I think I am more confident in are my ability to create statements for validation, passing the appropriate error messages, and creating sticky forms. This assignment also gave me great practice on how to read and write files, which is something I feel that I am a lot more proficient in compared to the beginning of this assignment.
Did you work with a partner? Assign an estimated percentage on the amount each team member contributed to the assignment (including yourself).
Yes, I worked with a partner. I would assign my partner (Deborah Yuan) 55% and myself, 45%. We both spent many long hours and completed what we were “assigned”. I would give my partner a bit of a higher percentage because she was responsible for some of the “heavier” portions such as security.
How did you get help when you needed it? What did you need help with?
My partner and I did not really ask our instructor for help for this assignment. However, we were able to receive some help from our TA and classmates. Something that we got stuck on in the beginning of the assignment was passing the query parameters across our different pages when we had separate html files. We spent a lot of time trying to fix our issue, but in the end we decided to move most of our pages to the server to overcome the problem. Our classmate was able to explain his process through this since he decided to build his site on the server as well. This gave us a good idea of how we wanted to approach our project. In addition to this, I would review the old WODs and labs such as the File I/O lab to get a better understanding and use certain pieces of code as inspiration when necessary.
How was developing this assignment different than assignment #1?
Developing this assignment was different from Assignment 1 because I was working with a partner this time. It was also new for us to have to figure out how to pass the query parameters across different pages instead of just one. In addition to that, we decided to build the majority of our website on our server. I was used to building pages using separate html files, and only began getting more comfortable with creating things on the server-side in Assignment 1. I got a lot more used to doing things on the server-side in Assignment 2, but it did end up making our code very long.
Estimate the % of time you spent (a) thinking about how to do something, (b) writing code (but do not include testing, (c) testing and debugging
I think we spent about 15% of the time thinking about how to do something, 55% of the time coding, and 30% of the time testing and debugging. We ended up spending a lot more time coding than we originally anticipated at the start of this assignment. I think this assignment had many more intricate requirements compared to Assignment 1, consequently leading us to spend a lot of time coding, testing, and debugging.
Describe what worked well with this project? What did not work well?
Something that worked well with this project was getting to work with a partner. It was helpful to hear another way of thinking to approach a problem and to have someone to figure out this assignment with. However, we also faced quite a number of problems. There were a few moments where we had an issue, fixed it, and then it would show up again. There were also moments where we would be stuck for hours not understanding why something wasn’t working. This all ended up being really time consuming, especially when our code was over a thousand lines. I found that we really had to be careful when going back and fixing pieces of our code, especially since there were 2 of us working on it.
If you could go back in time and do things differently, what would you do differently?
If I could go back in time and do things differently, I would have confronted this assignment in a more organized manner. Since I did this with a partner, we had a joint repo. However, we wanted to be very cautious of when we would pull and push code so that we wouldn’t accidentally overwrite each other’s work. Because of that, we would work in different sections of the code at the same time. Then, I would copy the entire section of code I worked on and send it to her in a .txt file, to which she would paste into our code. In addition to this, I would have started sooner if possible. Although we spent many long hours working on this assignment, we unfortunately still had to turn it in late.