Assignment2 built upon the very basic design of Assignment1 to give it more depth and user personalization, by adding a login, register, and edit log-in information page to the site. The usual path of the web site is from the home page to the store, then the user has the choice to register, login, or update their information. The most important part of Assignment2 was to validate the information the user enters, as well as have the invoice be secure and personalized.
Here is a link to the Assignemnt2 instructions:
Assignment2 was difficult and was quite different in the new pages I needed to implement into my website. Although the foundation of it was the data validation I learned in creating Assignment1, I was able to better udnerstand my comprehension of objects, properties, and how to use the URL to carry over data. The most satisfying part of building my new pages and developing my server.js was finally being able to get my register to write properly, and being able to grab my user data from the login page. I also learned how to better approach my coding and really understood how to best get the help I need.
I worked on the assingment by myself.
First I’ll talk about the things I needed help with. My registration writing properly, personalization on the invoice, and encrypting my passwords. For the first two, I got help from upperclassmen and was able to use their code as a basis for my understanding and for the formatting of my code. Instead of just copying their code, I tried to compare the methods we both used to complete a certain task, and I used ChatGPT and Google to ensure I knew what each line of code wanted to achieve. For the password encryption, it was something totally new to me. For this reason, I first did research on the crypt() function and the crypto library to see how the encryption would take place, and where I would need to make adjustments to my code. Through the use of ChatGPT, I was able to see examples and carefully tweak my prompts to better suit my code and level of undertanding.
Assignment1 was definitely more of a foundation building assignment using forms to POST to a server and redirect depending on the data inputted. Assignment2 had me validate new data and write them in different ways, retrieve and pass user data, and redirect the user depending on new conditions on each page.
My process might be a bit different than others and as I thought about it, it resembled how one would write a research paper/essay. More than 50% of my time was spent reading others’ code, building my understanding through research, writing what I had to do and ideas on Post-Its, and looking for problems in my code. When it actually came to writing code, I spent maybe 7.5% writing new code, and 7.5% adjusting my code for issues, and probably 20% was spent making my CSS and making my pages display in a satisfying way. The subsequent 15% was spent on testing and debugging.
What worked well in this project was that I laid out what I wanted to do early on, and used Post-Its to organize my thoughts before writing anything in my Assignment2 code. By writing it out and going through every requirement on the scorecard and the assignment page, I was able to ensure I didn’t miss anything and knew what I wanted to do first. What didn’t work well is that because I wrote everything out, I got complacent and waited a bit too long to start. This made me a bit underprepared for the time committment needed to complete it. Despite this, by continuously outlining what I wanted to do, I was able to complete everything on time.
If I could go back, I would most likely just start earlier. If I did so, I would’ve had more time to do assignments for other classes, as well as have more free time. I often spent hours in one sitting trying to complete my code. I ended up burning out and I lost motivation for my other classes.