Family Promise of Spokane is a nonprofit organization with the mission of combating homelessness in the Spokane, WA area. It is part of the Family Promise network. The Spokane chapter became its 49th affiliate in 1998, when Linda Barnes, a local church attendee, saw an increasing need for the care of local families experiencing homelessness.
Over the course of the last month, as part of Lambda School Labs, my team was given the task of implementing an executive director role into an existing codebase. The purpose of this was to give the executive director increased ease of access to relevant data. We were also tasked with implementing Facebook and Google login into the application to allow for a quicker, easier, and more convenient way to log in for guests. We also hoped to use the data we received from Facebook and Google to pre-populate some of the form data required for the intake process. Somewhat coinciding with this, we had to implement DocuSign into the intake process. The intake process is something that involves the guest signing a plethora of forms, and the implementation of DocuSign should make that significantly easier for guests who don’t need any unnecessary stress added to their lives. The end goal — with all of this — is to make the guest experience as compassionate as possible.
At first, the project was a bit intimidating to me. It utilized a lot of technologies that I wasn’t familiar with (Okta, Facebook, DocuSign), and this was also my first time working on a cross-functional team, being that our team was comprised of 4 data scientists, and 4 web developers. As I dove into the codebase, however, many of those fears, for the most part, were alleviated.
I was originally assigned to work on the back-end with another developer, however after we took a good look at the codebase and what the product roadmap required, we concluded that there really wasn’t a whole lot of back-end work to be done. This meant helping the front-end developers with the things they needed to do. I, along with the same developer who was supposed to work on the back end with me, took on the task of integrating Facebook login into the app. I knew this was on the roadmap, and it was one of the things I was initially uneasy about — it was a totally new technology for me. Thankfully, after we started working on it, it became clear that, although somewhat unfamiliar, the process was not that hard. Facebook has very clear and easy-to-understand documentation on how to implement the code. It was as simple as adding the Facebook SDK to the HTML, and from there writing the required code as specified by Okta.
After Facebook login was implemented and ready to do, I was assigned to also integrate Google login into our application as well. After a small bit of research, I found that the process for this was nearly identical to Facebook, simply add the Google SDK to the HTML, and from there add it to the Okta code.
Next, it came time for me to tackle one of my other fears coming into this project — cross-functionality. When I was finished working on Facebook and Google login, I was assigned to refactor the guest dashboard into another dashboard that could be used for the executive director. Included with this was interacting with the data science API. To be honest, I wasn’t sure entirely what this meant for what I had to do. This was the first time I had ever been in a cross-functional role. Much like Facebook and Google, however, it turned out to not be that bad at all.
The executive director dashboard had to include some visualizations with data from the data science API. What did that mean for me? Axios! Something I’ve been using for quite some time now. Essentially, I just had to use Axios to request data from the data science API, the process was the same as requesting data from any RESTful API. I had to make a GET request to the specified endpoints for visualizations, and I used the data from those endpoints with Plotly (yet another new technology) to make the visualizations.
The Final Results
Now with only two days of Labs left, most of the things we set out to accomplish, we did. Facebook and Google login were both integrated successfully into the sign-in process. Unfortunately with the current user flow, it doesn’t appear that it will be possible to pre-populate the form data as we had hoped. This is because supervisors must create the guest accounts for new guests, meaning a supervisor has to be signed into the app to make an account for a guest. With the current state of the app, although Facebook and Google login are functional, they are not necessarily usable.
Additionally, we now have an executive director dashboard that contains visualizations coming from the data science API. The dashboard also features forms that allow the user to specify the criteria for those visualizations. The executive director dashboard also contains two placeholder divs for future teams to add their own visualizations.
The DocuSign team made significant progress toward full implementation, but it still is not quite ready. With that said, they spent a multitude of time researching DocuSign, attended a webinar, and were very close (probably only a few days off) to having DocuSign fully integrated into the intake process.
This was my first time working on something that is going to be used by real people. Although the app isn’t quite ready for production yet, it is getting close, and we without a doubt made very significant progress during this unit. Once the app is in production, it will indubitably have a tremendous positive impact on the lives of countless people, and I couldn’t be more grateful for the privilege of taking part in it.
Looking back on everything, I’m very happy, not only with the current state of the application, but with my experience in Labs and in Lambda School as a whole. Coming into this month, I didn’t think I would be able to do it. It really felt like I was going into the unknown. Now that I’m nearly on the other side, I can say without a doubt that working on this app, and going through Lamda School, has been one of the most definitively positive things I’ve done in my life.