1. Coding a. How long did you spend on this assignment? If you don’t remember, give a rough estimate. It’s okay if you spent very little/a lot of time on the assignment — answering this question honestly will help me figure out how to balance out this course. If I had to guess, I spent roughly 5-10 hours on Homework 1. b. Where did you spend the most time? Fixing configuration, figuring out Typescript, designing your API, writing tests, debugging your request handlers, etc.? I spent most of my time designing my API and writing tests. Afterwards, it took me some time to debug my API code after I made some significant TypeScript changes. c. What did you struggle with the most? What would’ve improved your experience on this assignment? I struggled the most when debugging my code. Knowing more about TypeScript would have improved my experience. I am unsure if my code usese TypeScript properly or to its fullest extent. Writing a majority of my code felt like writing normal JavaScript. 2. TypeScript a. Keep track of the bugs Typescript helped you catch and the ones it didn’t catch. What are some of the issues Typescript helped you prevent? What are some of the holes in the type system? TypeScript helped prevent issues when data passed to the server was not formatted correctly. I made sure to utilize Zod and other previous TypeScript code examples, so I did not experience any holes or missed bugs. b. What kinds of values did you struggle to type correctly? Are there any Typescript topics that are still confusing you? Setting up the initial interfaces and ServerResponse type was confusing at first, but other than that I did not have any issues. My lack of issues makes me think I did not type all of my variables properly. I am still unsure when I should type variables and why TypeScript complains about typing sometimes but at other times compiles fine. 3. Testing a. What was your experience writing tests? Was it boring, soothing, rewarding? How did they affect your development process? Writing tests felt much like SE-181 again. Writing the inital versions of my tests went fine, but it took some time to fix them once I refactored parts of my API. I did not follow test-driven development, but writing tests as I coded help me catch issues and bugs before I moved on to other parts of the API. b. Did your tests help you find any bugs? If so, which ones? Yes, the tests helped me find lots of bugs, especially after I refactored my code. My tests helped me catch database issues, other test issues, and logic errors. c. How would you structure your testing differently in the future? What did you learn while testing? I wish I knew about describe(), beforeAll(), and afterAll() before I started writing my tests. Using those functions helped me organize my tests better and better keep track of test failures and database issues. I learned while testing that tests can be annoying to construct at times, but in the long run they prove to be useful at catching simple to large code mistakes.