E6: Reflecting on Assignment 3

15 Dec 2023

Brief Description of the System

For Assignment 3, I developed an e-commerce website for a surf shop. The site featured an extensive catalog of surf-related products, including boards, apparel, and accessories. The website offered functionalities like user registration, login, a shopping cart, and an invoice generation system.

Notable Shortcomings or Bugs

One notable shortcoming was that there were occasional bugs in the shopping cart update mechanism when multiple items were added simultaneously.

Most Proud Aspect of the System

I am most proud of the user-friendly interface and the seamless navigation between different product pages. The checkout process is intuitive and the automated invoice email feature works flawlessly.

Least Happy Aspect of the System

I am least happy with the website’s performance optimization. Under heavy load, response times increase, affecting the user experience.

Difference from Assignment #2

Developing Assignment 3 was much more complex than Assignment 2, mainly due to the integration of advanced features like session management and a dynamic shopping cart. It required deeper knowledge of backend programming and a more sophisticated approach to data handling.

Addressing Problems

Whenever I encountered a problem, such as a bug in the cart system, I first tried to debug it myself using console logs and breakpoints. If stuck, I referred to online forums or documentation for guidance.

What Worked Well

Planning and structuring the project upfront worked well. This approach helped in managing the workload effectively and in maintaining a consistent design across the website.

What Didn’t Work Well

What didn’t work well was underestimating the time required for testing and debugging. This led to some rushed work in the final stages of the project.

Learnings from the Assignment

I learned the importance of thorough planning, especially for a complex project. I also gained a much deeper understanding of web technologies like Node.js, Express, and session management.

Changes if Done Differently

If I could go back, I would allocate more time for testing and perhaps simplify some features to ensure smoother operation under load.

Estimated Time Spent

Thinking & Planning: 20% Writing Code: 50% Testing and Debugging: 30%