While building the front end, I modified my back end to make it
easier for the UI to consume, including standardizing JSON
response formats and improving error messages.
I also prefixed routes with /api to support Vite
proxying.
Looking back at Homework 1, I would have designed the API with front-end usage in mind from the start instead of treating it as a purely server-side system.
I relied primarily on server-side validation. This ensured correctness and consistency, but meant users only saw errors after submitting forms. Client-side validation could improve UX but would require duplicating logic.
My experience with React was challenging at first, especially understanding state updates and re-render behavior. Once the data flow clicked, building the UI became much more intuitive and enjoyable.
Compared to plain JavaScript DOM manipulation in CS375, React felt cleaner and more scalable. Instead of manually updating elements, I focused on state and let React handle rendering. I strongly prefer React.
Using TypeScript on the front end was mostly helpful. It caught issues like incorrect prop usage and API response mismatches, though typing event handlers and async data was sometimes tedious.
I did use LLMs to help brainstorm UI designs and help with some CSS. I understood the concepts but found it faster to use an LLM to do it for me while I focused on other parts of the project like the logic behind the UI.
LLMs have made coding a bit more fun and interesting. It has introduced me to new ideas that I would not have thought of otherwise. It has definitely sped up my workflow in some areas and saved me time. I don't believe it has had a significant impact on my learning process, but I do need to keep in mind how much I rely on them so that I can still learn the material effectively.