Week 8 - Building APIs and More
Last week I took a break from my structured learning schedule and I accomplished a lot of different things across three different domains:
Project Planning Documentation
I wrote a solid draft of the ReadMe / Overview as well as a list of features in the finished project. Each section is a summary of the corresponding planning document. I felt I couldn’t start my project’s repository without a good ReadMe and it also helped me refine my other documents.
Version Control and GitHub
I want this project to look and feel professional from end to end. In that regard I brushed up on my git and GitHub usage. I created a repository for my application and set up branch version control utilizing a branching strategy for each feature. I submitted my first pull request! I also played around with milestones and issues and associating those with the pull request. I started a milestone for version 1 of my app.
I made a template for pull requests and saved it in the repository so that it appears as a default in the description.
API Implementation
I used my last mini project on user authentication with JSON web tokens as a template for my application. I hit a block while trying to write tests for the Auth methods and routes. In the end, I got a basic batch of unit tests working and shelved the integration tests for now. I’m happy that my project has some tests working.
I extended the auth controller with a few new routes:
- change password
- Set user role (only for admins)
This week I will finish my API implementation with the Projects entity and router. Originally, I was going to spend this week on the front end and we’ll see if I have time to make progress on that. I found an interesting free template on Material UI’s website called dashboard that could be a good starting point for my app.
My main impediment is that I used .NET 8 for my testing week and .NET 9 (current) for my user auth week. Putting them together, there were some changes made to integration testing frameworks from v8 to v9 and not much documentation on it. I just need more time to sort through this but not at the expense of the rest of my project. In general, I have a hard time letting go when things don’t go the way I planned.
For my reflection. I have an ambitious project and a limited time frame with many external commitments. I am getting a lot of good work done but it’s easy to forget when I’m in the zone. I’m feeling pretty good about my progress but I wish there were more days in a week. I do need to work on letting go when things do not go as planned.