E6 Evaluation Guidelines and Class Retrospective BLOG

14 May 2022

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

My system is a sports shop that focuses on selling three types of sports-related products, which are balls, equipment, and miscellaneous items.


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

At the time of submitting our assignment 3, we did not have any notable shortcomings, bugs, problems, or additional features not implemented. Throughout the creation of our assignment 3, Kai and I ran into numerous problems (ex. shopping cart not displaying the right products and quantities, not being able to update or remove products from the cart, the invoice not printing out user's full name in the personalized thank-you message, and etc.), but we were able to solve these problems such that the store is now fully functional. Last night, we also ran into another problem of not being able to update inventory after hitting the "complete purchase" button, but after working together, Kai was able to identify and correct the errors in the package-lock file and move some parts of the server code in a more correct sequence such that we were able to eventually update the inventory after a purchase is complete. All the required features were implemented, except some of the features mentioned in the extra-credit section of the assignment 3 decription.


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

What I am most proud of our system is that it is much more advanced in comparison to the system I created for assignment 1 and assignment 2. By being more advanced, our system for assignment 3 is almost close to an online store that people would use in their day-to-day lives. Another part that I am also proud of is to implement all the major requirements into our store while also eliminating as many problems as possible.


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

What I am least happy with our system is that we could have improved the user interface better to make it more nice and pleasing, but due to the time restraint and the large amount of work that Kai and I had to perform for assignment 3 and other classes, we were not able to get to improve the user interface design. Also, I am least happy with the organization of the code, as there were too many lines of code and similar variable names that made it difficult for us to use these variables at their rightful places.


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

In assignment 2, the requirements were much less in comparison to the requirements in assignment 3, as we just needed to build from assignment 1 and implement a login, register, and update page in between the products display page and the invoice page such that the user has to log in, register, or update their information first before being able access the invoice. However, in assignment 3, we had to implement more advanced features that were challenging to do, and these advanced features came from individual requirements, extra credits, and partially from the major requirements. For example, we had to implement a shopping cart that utilized session such that the shopping cart allowed users to come back and forth between different pages to either add more new products to or remove some of the current products from the shopping cart. Some of the other advanced features that we implemented that did not exist in assignment 2 requirements were password encryption and using session to keep track of a user's login status and log the user out if the user is inactive for a certain amount of time.


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

Just like Kai, when I ran into a problem, I would also inspect the browser console and the Visual Studio Code terminal and see where exactly the errors were coming from. Then, I would look into the lines of code that contained these errors and thought of possible reasons that might have caused these errors. If I deem a reason as the most probable cause for these errors, then I would immediately start editing the specific lines of code containing these errors in a way that would attempt to address the reason that I thought was the cause for these errors. At the same time, Kai would also utilize the same process of solving problems as me to increase the efficiency of solving problems.


7. Describe what worked well in doing this assignment.

What worked well in doing this assignment was that by working with Kai, we were able to actively contribute novel and constructive ideas to the creation of assignment 3 that both of us had never thought of before. At the same time, we were able to work efficiently by holding each other accountable in making progress, holding hours of Zoom meetings each day to work together, looking at the assignment 3 code examples, and asking Professor Port multiple times for help and support. All of these positive factors certainly pushed us to the final finish line of completing assignment 3.


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

Just like what Kai said in his essay, during the past week and a half, we would always plan out what requirements we needed to finish by a certain day and time. However, sometimes I felt that we would underestimate the difficulties of doing some of these requirements such that we took more time than we had planned on working on some of these requirements. As a consequence, just like Kai, sometimes I also felt a little bit behind in completing assignment 3 throughout the entire process, but we are glad that we had eventually completed assignment 3 just in time. Another part that did not work too well was that we implemented more complicated codes than what would have been needed, which took longer for Professor Port and us to solve the problems that once existed in these complex codes. For example, for Kai's individual requirement, Professor Port said it would have taken half the amount of time to finish this requirement had we developed the codes for this requirement from scratch instead of borrowing and editing the complex codes from online sources.


9. What did you learn from doing this assignment?

What I had learned from doing this assignment is to always start complex assignments as early as possible. Even though we started on May 2nd, which gave us about eleven to twelve days of doing assignment 3, we still felt we were running out of time towards the end of the semester as we needed to take care of homework and finals for different classes, tackle the major and individual requirements, and solve the various problems that arose from working on these requirements. What I had also learned from doing this assignment is time management, and without time management, it would not have been possible for Kai and me to successfully complete the work for this assignment, the work and finals for other classes, and other events and situations that arose in other aspects of our lives. In terms of the technical aspects, I also learned how to redirect the user back to the last page that the user had visited after the user had completed a certain action (ex. logging in, registering, updating, and returning to the store from an external web page). I also learned how to use session to maintain a shopping cart and the user's login status, which is the core part of assignment 3.


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 could have partnered with Kai a littler sooner than May 2nd, since starting earlier than May 2nd (our start date for assignment 3 this semester) could have let us be less rushed on completing assignment 3 and work on more extra credit opportunities. Another thing that I could have done better would be to do a more thorough research on utilizing sessions and maintaining and removing a shopping cart since these topics are the fundamental parts of assignment 3. Thus, if I were to do more research on these aspects, then I could have understood better how sessions affect the aspects associated with sessions, and that way I could have helped complete the assignment 3 much faster with a more solidified knowledge about assignment 3.


11. Estimate the % of the time you spent (a) thinking about how to do something, (b) writing code (but do not include testing, (c) testing and debugging

a) 25% of my time thinking about how to do something, b) 25% of my time writing code, c) 50% of my time testing & debugging 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 worked with Kai, and I would assign my percentage of contribution as approximately 55% to 60% and Kai's percentage of contribution as approximately 40% to 45%. We started assignment 3 by using my assignment 2 as the base, and then we subsequently built upon from my assignment 2 bit by bit, after we both discussed whose assignment 2 we would use based on the grades and the number of errors we received from the grader's feedback. Therefore, since I worked on making assignment 2 functional, I would deserve a higher percentage of contribution. Besides this point and working on our individual requirements separately, Kai and I almost always worked on all aspects of assignment 3 together. We met at least six hours every day for the past week and a half on Zoom to work on the code together by using a live session on Visual Studios Code which allowed us to tackle all aspects of assignment 3 in a synchronous manner.