Introduction
During the summer of 2016, I worked full-time as a software engineering intern at a company called MAYA Design, located in downtown Pittsburgh, PA. I would call this not only my first internship, but also my first real job as a developer. Writing this now, I still have trouble believing it. Earlier this spring, by some miracle, I managed to convince these guys that I actually knew what I was doing and land a job. Here's the harsh truth – my only experience as a programmer was my Java data structures class, and the only "development" I had ever done was modify some Twitter Bootstrap templates for static one-page websites. I had a large gap to bridge before I would ever consider calling myself a full-stack developer.
I am writing this blog post, now, at the end of summer 2016 – my last week at MAYA. Now, finally, I believe I've earned the title. Let me tell you about what I made.
The Emergency Law Inventory
Luckily for me, the first project that I was placed on was one that was still in very early stages of development, so I didn't need to spend a ton of time diving into the code base. In fact, the website was pretty much non-existent when I was placed on the team. In order to understand the scope of the project, some background info is probably necessary.
The Problem
First, imagine you're a medical reserve corps (MRC) emergency respondent that lives in Pennsylvania. You work as an EMT, so you're frequently involved in life-threatening situations. Unfortunately, these types of situations don't always end well. Fortunately for you, as a certified EMT in Pennsylvania, you know that you're protected by scope of practice and liability state laws. Now, on the other hand, imagine that a devastating natural disaster occurs in West Virginia, not far from where you live in Pennsylvania. The MRC calls on you to respond and lend your skills and time to help those in need. Normally you would be more than happy to help, but there's one thing you can't help but wonder about – "Do the West Virginia liability laws apply to me the same way that they do in Pennsylvania?"
Well, as it turns out, they don't. Liability and scope of practice laws vary quite a lot from state to state, and it's not uncommon for MRC emergency respondents to be unaware if they're liable for certain actions they take while deployed to a state outside their own. This is a problem. A big problem, actually, because it gets the best kinds of people in the worst kind of trouble. Emergency respondents end up being sued for reckless endangerment and other related issues, even though they were just trying to help. Until recently, there was no easy way to prevent these unfortunate situations. Thankfully, due to the efforts of the MRC community, The University of Pittsburgh Law School, and MAYA Design, this is no longer the case.
The Solution
It's the 21st century. Where do people go when they have questions that need answers quickly? The Internet. So, naturally, the solution to our emergency law problem is a website. In this particular case, a sort of "emergency law inventory" available online for the public to visit. Somewhere where emergency respondents can go and quickly find the relevant information for their particular scenario. Liability and scope of practice laws can also vary depending upon the profession of the emergency respondent and whether or not an official state of emergency has been declared, so these things need to be accounted for as well. Our website will do all of this.
The site itself should be very easy to navigate, guiding the user from start to finish and then presenting the relevant information for them in an organized and highly readable manner so that the user can quickly access their information during times of emergency. The actual text of the laws tends to be convoluted and confusing with lots of legal terms, so our website should have summaries of the laws in layman's terms rather than outright listings.
The emergency law inventory home page describes the project to the user to give them some background information, and provides a link to get started. Once clicked, the user is prompted for their profession, location, and state of emergency to filter the laws in the database down to only the relevant ones for this particular person. They can then browse through summaries of these laws (provided by the wonderful law students at the University of Pittsburgh) which are divided up into four categories on the page: Liability, License Reciprocity, Scope of Practice, and Workers' Compensation.
The Stack
What's funny is that, coming into this internship, I had never written a single line of PHP, or SQL. I had written some pretty basic JavaScript, but not much, and I had only just begun messing around with jQuery. The stack for this project is a largely jQuery driven front-end and a PHP back-end which utilizes Kirby CMS and a PostgreSQL database. I also wrote some Python scripts to build the database from scratch, initially using the Google Drive API to get the law information from an input form and spreadsheet that the law students had been filling out. Later on I built an extension to the website which uses simple authorization to allow the law school to continue to add and edit emergency law information as it changes over time.
The Result
All things considered, I learned a ton from this project and it was an excellent starting point in my career as a full-stack developer. The project touched many important areas of development, most importantly scalability and usability, and it's something that will actually make a real impact on peoples' lives, which is very important to me.
The website is not live yet because laws are still being added to the database at the time of me writing this, but when it is finished I will provide a link.
Click here to check out part two of this blog post series and read about my other major project at MAYA Design.