COVID-19 Tracker

Description: This is a covid-19 tracking web application built with React.js as the framework, Redux as the state management, and other third party middleware such as Redux-saga.

Initially I intended to build an instagram search application, that would allow for a user to enter in an instagram user name and view their profile and all of its respective data, however I was having a rather difficult time finding an instagram api that was both free and of high quality so I decided on something else. I searched around for a different api that I can use in my final project and shortly afterwards I found this covid api. The api can return any covid related data from a specific nation but unfortunatly it can not return data from a specific state or province, but that is truly a minor critique, the api gets the job done and it gets it done well.

I decided on using React.js for two main reasons, the first of those being the fact that React is simply a great framework by which to build just about any type of user interface, and the second of which being the fact that I personally have a rather significant amount of experience working with React, so it was just a logical choice to use React for this project. Redux was chosen because of how often the individual components would need to access the same data, I have built applications with React before and not used any state management library in the process of doing so, but this time however it was just a logical decision to include some form of state management within this application simply because of how often the components would need to display the data within the state itself. If I were to simply utilize local state within the components themselves the application's general architecture would have required for the components themselves to be tightly coupled together, making any future changes or updates very difficult to manage. Additionally the decision to integrate Redux-saga was entirely motivated by the fact that I wanted the components themselves to simply focuse primarily on the style of the user interface as opposed to api calls or anything else for that matter, Redux-saga allows for me to seperate the user interface from the api calls, which in my view makes for a more understandable, managable, and readable project file structure.

The UI design choices themselves are rather simple, dark mode UI are generally easy on the user's eyes, and I didn't think going through all the trouble of using something like styled components was worth the implementation of a switch that can change the UI to or from either dark mode or light mode. So I simply decided to keep it entirely dark mode. My decision to add the Particles.js library was entirely an aesthetic one, there was no reason other than the fact that I really and sincerly love the library itself.

Overall the web application itself is very simple, however I do feel as if it is a worthy final project to cs50. I have enjoyed the course very much and I have truly learned a significant sum of new information regarding computer science and programming in general.

That is everything I can cover within the contents of this README file, so thank you for reading and have an extraordinary day.