Shutdown

April 1st, 2020
shutdown

Finally

It has taken our state government of Florida far too long to make a life or death decision for thousands of people and, unfortunately, I believe it was made well after the damage was already done. As of writing this, we are up to over 7700 cases of the Coronavirus with at least 101 deaths recorded to this point, but the testing is very limited, and it's very plausible the outbreak is far beyond control. We have been in the top 5 highest amount of cases in the country for over a week now, and yet, with over 30 states already on lockdown, we just today announced a stay-at-home order. This virus is already everywhere, and while this will definitely slow the growth of our cases, it is already completely out of control. Because of our lack of leadership all the way up, thousands of lives will be lost, and it's probable we will lose over 100,000 nationwide, if not much more. Stay-at-home orders seem to be working well in other states, so I don't understand what took our governor so long to make such an important move. This is a scary time for everyone, and we're all just trying to handle it the best way we know how.

decisions

There's a lot of work to be done on the job, and we had a busy day, besides the distractions. We are pushing hard to get a new application together to create virtual appointments through a form that is connected to a Facebook advertisement. Since our sales representatives are not able to go door-to-door and meet with their prospects in person, we have moved to virtual meetings through GoToMeeting. This has been quite a nightmare for some of our team members who have been working their entire shifts to try and on-board the representatives into working this way. A lot of these representatives are not very tech-savvy and have never used services like Skype or Zoom before, so they don't know the first thing about setting up and running an appointment like this. They know, though, that if they want to make sales right now, this is the only way possible. To get these appointments, we still have people calling out and trying to book appointments constantly, but we want to have other avenues to be able to do this. This advertisement with the form to collect this data will be pivotal to facilitating these sales. I'm in charge of creating the front end of the website, and I'm nearly finished with the functionality of it. My neighbor has done a lot of the styling for it while I work on the functionality, and it's gone really well. I've borrowed a lot of the techniques we used in the other application, including the reducer for handling state management and context to manage the data. What's left is getting the information submitted to the backend and adding some navigational features, allowing the user to go back and edit information and other little fixes. The validation and error handling is almost done, and I'm pretty happy with the result so far.

protect

The structure of the form is pretty straightforward. I use the reducer to dispatch 5 or 6 different states of the application. You start off on a screen that has one individual field, asking for a zip code. This is checked against our API that holds a collection of all the zip codes we cover in our territory. If your zip code is a match with our API, you proceed on to the next page. If not, you're taken to a page that gives you the option to explore our website and learn more about our services, if in fact our territory changes in the future. The next screen is a simple form collecting the prospect's name, email and phone number, but there ended up being quite a bit of validation that needed to happen in this form. It turns out that I was using .includes to check on the phone number for validation, and that isn't covered in Internet Explorer 11. So, we found another way to validate it, but I had to use a couple of workarounds and different states to handle the errors, instead of just one line checking for underscores that were present if the phone number wasn't complete. Once this form is complete, the prospect moves on to the appointment setting page, where they choose their timezone and a date and time for their appointment. I used React Datepicker to handle the calendar, and it took a while to explore all of the props that come along with datepicker. In the end, I got it working pretty much like I wanted to, although it doesn't look too great. For the most part, though, I'm leaving the styling up to my neighbor. I think he'll be able to handle it well. The final page seemed straightforward, but turned out to be a lot more difficult than I thought. It's just supposed to be a screen that confirms the information given and allows them to edit what they need to if that's the case. The problem was parsing the data from the date into a readable form. I used a couple of extensive ternary operators to create kind of a switch statement to assign the values for the days of the weeks and months to be full names instead of abbreviations, but it's a ton of code. I still have to parse the time into something more readable too, since right now, it's in military time, and I want to change that.

Until tomorrow!

Until tomorrow!

Created by Sam Thoyre, © 2019