The assignment 2 can be found here: https://dport96.github.io/ITM352/morea/150.Assignment2/experience-Assignment2.html. In this assignment, I was supposed to build on my previous webshop to further create a login and registration page for the user. When the user has selected desired quantity, the user should be redirected to the login page. If the user alreade has registered a user, the customer needs to log in in order to get the invoice. However, if the customer do not have a user, it will be ridirected to the register page to register with a valid email, name and password. When the user is created, the customer will need to log in to get the invoice.
From this assignment, I gained experience in implementing user authentication and registration systems, understanding how to securely store and manage user data. I also learned to about user data persistence, and how it involves storing and retrieving information from files. Further, I gained experience in achieving a personalized user experience by displaying user-specific information, such as greetings and personalized invoices.
I worked alone.
I had some trouble getting the input in the forms sticky. I solved this by RTFMing a lot by searching online, and look at our previous work from class.
I believe it in some ways was harder than assignment 1 as we had more freedom for how to solve the task, as the instructions was not as clear as they was for assignment 1. I also found it hard sometimes to build on top of the previous code from assignment 1 as I had used some logic which needed to be changed in order to fulfill the criterions for assignment 2.
I believe I spent about 25% thinking about how I was going to do something, 15% on writing the code, and 60% on testing and debugging.
What worked well was to implement the code we did in class into the assignment. Clearly use cases also helped guide the development process. They set expectations and provide a roadmap for implementing features. I had a lot of trouble with getting data from one page to another, which is what I also spendt the most time on figuring out how to solve. I also sometimes struggled with figuring out exactly what was required to do, as the instructions were some what more vague than for assignment 1.
When I started working on assignment 2, I just copied a lot of code from the lab and examples into the code I was using. However, I figured out that it was a bad way to do it as it was not quite fit for my specific code. Hence, I had to start all over and figure out how to implement it for my specific usecase. If I could start over, I would have done this from the beginning.