Keep track of any changes you made to your back end as you implemented your front end. What changes did you need to make and why? If you could go back in time, is there anything you would change about the way you approached making your back end for HW1?
I had to adjust the routes so they start with /api so Vite can proxy HTTP requests. I didn't really make any other changes, but if I could change the way I approached making the backend for HW1 I would of structured the API more consistently.
When adding books and authors, did you only use server-side validation, or did you also use client-side validation? What are the pros/cons of making either choice?
I primarily used server-side validation such as Zod, but I also have client-side validations such as HTML required. Server-side validation ensures database integetrity and client-side validation provides immediate feedbacks to the user when something goes wrong.
What was your general experience using React? What did you struggle with? What did you enjoy?
My general expereince using React was that it made state management and UI updates much easier, but I struggled with using hooks sometimes. I enjoy declarative UI since it made it easier to imagine how the page will look like.
Compare and contrast writing React versus writing plain JS DOM manipulation code as you did in CS375. How was your experience different? Which do you prefer and why?
With JS DOM manipulation in CS375 there was a need to find elements assigned in the HTML and manage event listeners, which increases the chance mistakes are made and it gets messy. React makes the code cleaner and less error-prone through components and hooks. I prefer React because in the long term it keeps the code cleaner, which is better for long and complex projects.
What was your experience using types with the front-end? Did they catch any bugs? Did you struggle to type things correctly? Did they feel helpful, useless, tedious?
A few bugs were caught related to API responses and there was some frustration typing Axios responses. Types felt helpful since it made things explicit.
Did you use LLMs to help you write your code? If yes, explain how you used them.
I used LLMs to help integrate the Activity 2b frontend into my HW2 frontend. Also, when I got stuck and needed help continuing. Lastly, I used it to help when debugging my code.
If you used LLMs, reflect on how they changed your experience of coding. Did they make it more or less fun? Did they save you time? How do you think they affected what you learned from this assignment?
I would say it balance things out in terms of fun since it made me loss the satisifcation of solving some problems myself, but it also made things less stressful. I think it did save time, but I did have to review the code carefully. I think it made learning more efficient since I could ask it questions to reinforce what I already learned.