Building An App I'll Actually Use
Tags: javascript, react, codenewbie, showdev
Published: 2020-03-19 01:30:33

It's here, it's here, it's finally here! My final Flatiron project has arrived!! 

I hope you're ready to be underwhelmed, y'all. This project process has been a DOOZY, from personal health problems to a massive global public health crisis, there was a lot that got in the way of this project. BUT, I finally built something that I think is a tool I'll actually use, and something I'm really excited to keep working on. It's an absolute MVP, with emphasis on the M, but I'm still glad to have gotten it done. 

In the run-up to this project, I was *stumped* as for what to build. I had really struggled with the React/Redux curriculum and just felt at a total loss for any ideas on what to build because the idea of building a fully functional React project from nothing felt...scary. But we all know fear is where we grow. 

In talking to my advisor and other students, the recommendation that kept coming up was to build a tool; something you (I) would actually use and find useful in our (my) everyday lives. As someone with chronic health issues who sees (what feels like) an endless stream of doctors and specialists, it can get really difficult to keep track of when I saw which doctor, what was discussed, what new treatment plans we put into place, and whether I need to follow up with them. 

And so, "Doctor's Orders" was born. So far, it's a fairly simple SPA, with 3 routes supplied by React Router. A main home route, a show page, and a new "order" form. You can track your which doctor you saw, their specialty, the date of the appointment, the appointment type (from a set drop-down list), any test results or treatment notes, and whether you need to follow up with your doctor. 

My biggest challenge with this project came from working with Redux, and using it to properly update state across the application. I ran into an issue with fetching data from the database too frequently, and incorrectly updating state in my reducer. It was *super* frustrating, but such a great learning experience. The biggest thing I think I learned from this project was really tracking and controlling state across my entire application, and keeping track of when and how things are being changed, updated, removed, or added, and keeping it in sync with the changes to my database. 

I also decided to work with Semantic UI for styling on this project, which I had never used before and really enjoyed working with. The built-in library of icons was super convenient and a nice perk, and using a library like Semantic helped me to really quickly add cohesive styling with minimal effort. 

You can see the code for my project on GitHub, and I'm hoping to get it deployed to Heroku soon! 

{% github thecodepixi/doctors_orders no-readme %}

I have a TON of ideas for ways to expand this project, including: 
- alerts for following up with doctors on a specific date
- a field for follow-up questions you want to ask your doctor
- a symptom tracker 
- a test results tracker 
- sorting / filtering options for viewing previous doctor's orders by doctor 

Cross your fingers for me as I go into the assessment process for this project. Graduation is on the horizon!