Reflection 2

Node

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 changed the routes to now have the /api and I added a type.ts for the BookDB and AuthorDB. No I would not change anything my backend worked perfectly after those additions

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 only used server-side validation. With server-side validation it can validate real constraints i.e DB rules, however it is slower feedback. Conversely client-side validation can give immediate feedback, but causes risks of things like duplication

React

What was your general experience using React? What did you struggle with? What did you enjoy?

I liked React, I have used it priorly before so it is not too bad. I also have a lot of experience with Vue, so I am able to draw similarities and draw conclusions on how to proceed based on my previous work. I struggled with the useEffect dependency list, I was just really confused so I had to reread it a couple of times. I like making components, it is so nice that I can make something and just plop it in.

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?

Writing in React is definitely harder than plain JS DOM code, as it is a lot at once especially if you have not used frontend frameworks before. React just has niche things like hooks, whereas with JS everything is pretty straightforward. I prefer React as you can do really cool things that would be more difficult in just JS.

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?

I used types within the frontend for my BookDB. It did not catch any bugs. I did not struggle with typing things correctly. It felt pretty useless.

LLMs

Did you use LLMs to help you write your code? If yes, explain how you used them.

I asked it to help me make a toTitleCase function so that when users would type in the input, since the data is in the DB with title case, if users typed in lowercase there would be no results, so I had it make a function to convert the user’s typing so there would be data as opposed to manually making the user only type in title case for genres.

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?

It made it more fun, as it saved me time doing a basic conversion function, as that was not the point of the assignment at all, just something I added to make things more clean and nice.