Assignment 3 Reflection

15 Dec 2021

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

I developed an eCommerce website that sells a variety of grocery products. Product categories included fruits, meats, vegetables, and dairies. The total weight of the products determined the shipping costs for my grocery store.

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

The design of the emailed invoice confirmation is very minimal, with no styling. The emailed invoice only contains the users’ names, product names, and quantities. It would have been ideal to include more personalization and styling.

The shopping cart and final invoice page are also similar in design and style. Besides a few minor modifications, there is not much differentiation between the two pages. After processing their order, the user may not recognize that they were redirected to a different page. The design for the shopping cart or invoice may need to be changed.

Describe what you are most proud of about your system:

I am most proud of the user interface for the login, registration, and products display page. The navigation between pages are easy to understand and follow. Also, after the user logs in, the ‘Sign In’ button turns into a ‘Logout Button.’ Changing the visibility of each button will let the user know if they are already signed in. The login and registration page has a clean design, and the instructions for each page are clear. When the user registers and inputs their desired credentials, they are automatically notified of an error in the data they inputted. As users correct their mistakes, they will be notified when their information is acceptable. Overall, the interface is clean and user-friendly.

Describe what you are least happy with your system:

I am least happy with the design of my shopping cart. The shopping cart design is similar to the invoice. The shopping cart layout is better suited for an invoice or summary of the order. A way to improve the design of the shopping cart is to include images of the product to help the customer quickly identify the product. I should have also implemented a ‘Delete’ button to quickly remove an item from the cart without needing to set the quantity input value to 0. It may have also been helpful to include a feature where the user can input the total weight of a product that they would like. Sometimes, customers who purchase food in bulk measure the amount by the total weight.

How was developing this assignment different than assignment #2?

Implementing a shopping cart and multiple pages of products made Assignment 3 more challenging. However, the use of sessions and cookies made it easier to keep track of the products that a user selected. Once a user selected a product, it would be added to the session data. That session would remain persistent unless it was overwritten or destroyed. The server could send the session to all the pages, and the pages could display the data in the session. The user, when logged in, must be associated with their shopping cart.

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

When I came across an issue that I could not quickly solve, my first instinct was to do a Google search and find a solution online. Online solutions usually work out 50% of the time. I asked Professor Port for assistance when I could not solve an issue within a few hours. Office hour sessions help to reduce the time it takes to solve an issue.

Describe what worked well in doing this assignment?

After an office hours session with Professor Port, I grasped the idea of sessions and implemented it to meet other requirements for the assignment. Sessions are the backbone of Assignment 3 and they will allow you to maintain a shopping cart, verify that a user is logged in, associate a user with a shopping cart, and personalize the page. Understanding how sessions work and how to access the data in sessions will make Assignment 3 more manageable.

Describe what did not work well in doing this assignment?

I spent about 4-5 hours troubleshooting an issue before asking Professor Port for help. I was determined to solve the issue on my own and prove that I could learn programming by myself. However, as I grew more frustrated, I recognized that the problem would not be solvable by myself. After wasting precious time troubleshooting myself, I asked for help, and in a matter of two hours, I was back on track and could understand how to use sessions to implement features to my website.

What did you learn from doing this assignment?

I learned how to implement sessions to allow multiple users to access the website. Sessions can store the same variables for different users with different values. Without sessions, it would be complicated for more than one user to use the website at a time. After learning about sessions, I can now implement this technology into other websites to allow multiuser access.

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

I would have asked for help sooner. Learning to program requires a bit of mentoring and guidance. Help from someone more experienced in programming will improve the learning efficiency and overall programming experience.

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 spent approximately 35% thinking about writing code, 20% writing code, and 45% testing and debugging code. I spent a substantial amount of time debugging code because I was trying to understand how to send data in a format and structure that would be easily accessible.