How long did you spend on this assignment?
4–5 hours
Where did you spend the most time?
Figuring out Typescript and designing my API. I thought a lot about those sample questions within the hw1, so it took me a bit to decide that authors must be populated before adding a book, authors cannot be deleted if they have books, etc.
What did you struggle with the most?
I struggled most with deciding whether users should provide IDs or whether the server should generate them, and how authors and books should be linked. Understanding that books must reference a valid author through a foreign key constraint took me a bit to fully internalize. After I realized this, it became clear that authors must be created before books. If I had remembered more about relational databases and foreign keys earlier, I probably would have reached this conclusion faster.
Bugs Typescript helped catch vs. didn’t catch
It helped me with keeping my data flow consistent between the Zod schemas, my route
handlers, and my database types. It caught issues like treating UUID IDs as numbers
and mixing up request field names like author_id and authorID.
I did not find any holes in the type system.
What kinds of values did you struggle to type?
I struggled to type the UUID correctly. There are no Typescript topics that are still confusing to me.
What was your experience writing tests?
It was boring, and they did not impact my development process as I chose to manually test with curl before making my test cases.
Did your tests help you find any bugs?
No.
How would you structure testing differently in the future?
I think I would build test cases first instead of manually testing. I would still manually test, but having the test suite run automatically is really nice.
Did you use LLMs?
I used LLMs to create some of my test cases, such as examples of each GET, POST, and DELETE request, and then I replicated those patterns for the rest of my tests.
How did LLMs affect your experience?
It made it more fun because it saved me some time! I do not think they affected my learning because I already have a lot of experience creating test cases.