Reflecting on Assignment 3

16 Dec 2022

1. Briefly describe your system (e.g. A store selling Pokemon game cards)

My system consists of a store that sells bathroom products. With the introduction of multiple pages containing multiple products in Assignment 3, I had to expand from just plungers as I've done with Assignment 1 and 2. So, in addition to plungers I've added air fresheners and toothbrushes.

2. Any notable shortcomings, bugs, problems, or additional features not implemented?

The most notable shortcoming was not fully implementing my individual requirement (IR4). I was not able to have the favorite products displayed. I also had trouble getting to the invoice page from the shopping cart page. It kept prompting me to log in even though I was already logged in. Even after logging in, it would still prompt me to log in again and again.

3. Describe what you are most proud of about your system:

I'm just overall proud of being able to get the most important elements working. It's a somewhat fully functioning store but it needs some work on the design aspect of it all.

4. Describe what you are least happy with your system:

I am not too happy with the design of my system. It looks basic and not as sophisticated as some of the other student's stores that I've seen.

5. How was developing this assignment different than assignment #2?

Assignment 3 was way different than Assignment 2 with the introduction of cookies and sessions. Assignment 2 was in a way similar to Assignment 1 but Assignment 3 implemented new features. I had to change up the storage of data as it was to be stored in a cookie instead. With sessions we had to keep users logged in, and their data was to be kept as they moved through out the different pages on the webstore.

6. When you ran into a problem, what did you do to address it?

When I ran into a problem, I did a bunch of Googling to help me find the answer. W3Schools and Stack Overflow helped me a lot. Luckily, most of the problems I had trouble with were easily addressed by inspecting the page and looking into the console.

7. Describe what worked well in doing this assignment?

Being able to generate multiple different products display pages from one HTML file worked well for me in this assignment. I was originally going to create multiple pages displaying the different categories of products until I found out that there was a way to display them from one HTML file by calling on the category in the json file.

8. Describe what did not work well in doing this assignment?

I was not able to fulfill my individual requirement, IR4. IR4 required me to implement an "add to favorites" icon that when clicked, indicates that a user has expressed interest in a certain item and has thus added said item into their favorite products list. Although I was able to implement the icon to add to favorites, I couldn't figure out how to have this feature displayed as the user moved throughout the different product pages.

9. What did you learn from doing this assignment?

From Assignment 3, I had a better idea of how online web stores worked. There are lots of websites that offer templates for producers to display their products and all of the features like the shopping cart, user data and products display pages are included into these templates. There is not much work for the owners of the webstore to do in terms of coding the store to their liking as they can essentially drag and drop elements where they want it. Whereas, some online stores are fully customized by programmers, tailoring it exactly to the owner's needs. Just thinking about this and getting a tiny tiny glimpse of how it works with Assignments 1, 2, and 3 makes me realize how much more there is to learn.

10. If you could go back in time and do things differently, what would you change?

If I could go back in time and do things differently, I would focus more time on trying to implement my individual requirement. I spent too much time trying to get everything else to work together. Specifically, having the user be able to go to the different pages with no problems.

11. 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

If I were to estimate the time spent doing these things I would allocate 50% to testing and debugging, 30% to thinking about how to do something and lastly 20% to writing the actual code.

12. Assign an estimated percentage on the amount each team member contributed to the assignment (including yourself) and explain briefly your rationale for the percentage breakdown. Be sure to include an overview of what specifically you and your partners contributed (e.g. “I worked on the security and my partner 1 worked on personalization”)

I did not work with anyone for Assignment 3.