Finally got some forward progress done. I wrapped up the first user facing feature! All it is, is users can now edit the first name in their profile, but hey the app actually does something! :Happy Dance!:
One thing to note, is most of my features will be behind authentication. This means I will need to figure out how to authenticate with Cypress.io testing; Until then, I can't really run my integration tests. This goes against my normal principle of making sure I have fully tested features, but since the app has no user base, and can't really do anything of value... I think I have some wiggle room to establish some more features first.
I realized that I also left my GraphQL endpoints (queries?) completely open and un-secured. (Whoops... :orz:) Quickly patched that with some simple check if the current user and the target are the same person. I'll have to implement an actual user and roles architecture, but that's a later problem.
While working on this, I realized it would be great to have a feature flag system in place. I could turn features off until there were ready (and secure) for real users. I checked out Split.io and their pricing. They have the basics of what I needed, would not have to host it on my own, and more importantly they had a free tear for open source projects.
Great, but this would distract me from getting more feature work done, and there is no user base yet. Feature Flags can wait until after I have a fully working app. It's just scary shipping to prod while still working on the first steps.
With this feature in place, I took a quick look at the app... and its ugly. There is no design in place. If I don't fix this now, later it will be too cumbersome to fix. For my next few features I'm going to clean up the page layouts, and put a basic styling theme together. Spacing, Colors, etc. With these pieces in place, I think things will go even smoother for the next couple weeks.
Oh and before I forget, I found that using Milestones in Github Projects as collections of related issues, instead of general milestones (i.e. Alpha, Beta) seemed to really clean up and focus my project issues. I highly recommend it. The smaller your issues and milestones, the faster your work is done!
Till Next time,