E6: Reflecting on Assignment 3

12 May 2023

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


Our system is a store selling K-Pop albums featuring four different product types containing various albums.

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


With a couple of days until Assignment 3 is due, we do not notice any bugs or problems not implemented. As for shortcomings, we have yet to implement IR4 which is an “Add to Favorites” option but I am confident that we will have it implemented by the time that this Assignment 3 is due. Throughout the duration of this assignment we did run into numerous bugs and problems such as the admin back end not being implemented properly which is my sole priority. I had bugs getting it to work with a user that is not an admin user, the page did not load but I was able to pinpoint the issue and solve it. I was also unable to edit products and update them but I was able to solve that as well. As for other issues, it pertained to the shopping cart and the IRs but I did not partake heavily in the implementation of the shopping cart as we split the work up and Monica did the shopping cart and Ley focused on the IRs. Once Monica and I finished our parts we started to help Ley with the final IR, we are still working on it at the moment but we are confident in getting it implemented prior to tomorrow’s due date.

Describe what you are most proud of about your system:


What I am most proud of about our system is that we were able to work cohesively and resolve our errors together. It is also more complex and advanced in comparison to Assignment 1 and Assignment 2. As a team, we were able to implement most if not all of the requirements (if not all completed by tomorrow) for a group and have our system work almost like an actual online store. We were also able to resolve as many bugs and issues that we could pinpoint with the time given and the knowledge of the code that we each had.

Describe what you are least happy with your system:


What I am least happy with my system is that as a group we were assigned more requirements and with the time allotted, we were under immense stress and pressure to get it done in time to submit and work adequately. This was due to our limited knowledge of the implementation of a working shopping cart and IRs along with our final exams for our other classes that we had to focus more attention and time on on top of this. I am also least happy with some of the variable names that I personally used because I found later that a lot of them are named very similar to each other which makes it more tedious to ensure that everything is named correctly and to resolve any bugs. Other than that, I am mostly proud of our system.

How was developing this assignment different than assignment #2?


Developing this assignment was different from assignment 2 in many ways. There was a significant amount of requirements to implement in comparison to assignment 2. From what I can remember, in assignment 2, we had to implement a login and registration page, along with validations and security. For assignment 3, we have to implement a shopping cart utilizing sessions and cookies, an admin back end if you are working in a group, as well as more IRs, one for each group member. Other advanced features that we had to implement for this assignment were encryption for passwords, as well as tracking a user’s login status and to be able to automatically log them out after a certain amount of time of inactivity.

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


When I ran into a problem, what I did to address it was similar to my group members Monica and Ley. We added a console.log() to see what error or message we were getting in the terminal for the function or route that we were working on. We also checked the console in the browser to see what error we were getting exactly and pinpoint where in the code that was. We would keep each other in the loop of our errors so that when we each pulled and pushed our codes we knew what was going on at the moment and ensured each other that we were on top of it. Because we did not know how to use the debugger it took us longer to resolve our issues but in the end we were able to do it with help from Professor Port and ChatGPT.

Describe what worked well in doing this assignment?


What worked well in doing this assignment was first, working with my team. I believe that we worked well together and were able to get our tasks done and help each other efficiently. We were also able to understand each other clearly in terms of what each of us were doing with the code. We were also able to successfully meet during the duration of this assignment and meet with Professor Port to gain understanding and assistance in the tasks that we were having trouble on.

Describe what did not work well in doing this assignment?


What did not work well in doing this assignment was the constant pressure that I personally and I am sure goes the same with my teammates to complete our tasks by a certain time. We would plan out times that we would hope to have a certain task completed by but we would often take longer than needed to complete it. We typically ran into a lot of small errors and bugs that were hard to pinpoint because we each did not understand how to use the debugger as we had skipped that module during class. We also implemented more complicated code than what was needed which put more stress on us because we knew that a change in one place could affect something else in another place which would make it more difficult to fix if we went too far. I would say that time management was a problem for me as well as overthinking certain things. For instance, when I met with Professor Port, he would tell me that it would not have taken me so long to do something if I had done this or that way, and after he explained each way, I realized that I over complicated things and did not stick to the simple solutions.

What did you learn from doing this assignment?


What I have learned from doing this assignment is that when it comes to big assignments or prjocts, especially if you already know that it is complex and more advanced than what I have currently been doing, it is to start as early as possible. I have learned how to implement an operating administrator back end which was unknown to me prior to this assignment and upon completion of this task, I felt very proud of myself because I understood everything that was going on with it. I learned how to update user information and their admin status as well as how to edit product inventory, description, price, etc, from one just one page that I was able to successfully only allow users that were an admin user to access. I also learned more about time management believe it or not. My group and I allocated at least 2 hours a day to work solely on this class and now, we are very close to the finish line, with just one last task to complete and then we can submit it. I also learned more about cookies and sessions and giving a user a cookie everytime that they login. I also learned how to encrypt passwords using this encyption and decryption function that I found on stackoverflow. Once I implemented it into our code, and made some adjustments, it worked!

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, what I would change is starting much earlier and forming this group much earlier than one week into assignment 3. I would also most definitely get that debugger up and running because that would have been so helpful for all of us and decrease the amount of time that we each spent on pinpointing and resolving our issues. Most of our issues could have been resolved with the use of the debugger. Personally, I would have done more research on the administrative back end and understanding how all of it works together because ultimately, every change that I make with the code and on the browser, affects something else such as the login of a user.

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 estimate that I spent 35% of my time thinking about how to do something. b) I estimate that I spent about 40% writing code. c) I spent about 25% of my time testing and debugging.

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 Monica Mau and Le Yi Feng Zheng. I would estimate that Monica contributed more with 35%-40% to this assignment. Ley and I spent approximately 33% towards this assignment. I know that this does not add to an even 100% but I believe that we each spent a lot of time on this assignment and that both of my team members deserve a lot of credit. We first decided on whose assignment that we would be using based off of assignment 2. We decided to go forth with Monica’s code because it was more elegant and included some of the base features that were needed for this assignment. I believe that Monica spent more time on this assignment because we used her code so she understood more of what was going on and was able to get started on it before Ley and I began with our tasks. I would say that both Ley and I contributed an even amount to this assignment because we had some interesting tasks to tackle, I say interesting because we both encountered tricky and more advanced errors than others may have encountered. We spent more time RTFMing and reaching out to Professor Port to fully understand what needed to be done. Monica worked on the sessions and cookies-shopping cart, login/logout, Ley worked on the individual requirements that we needed for this assignment, and I worked on the administrative back end.