Isaac Nicholas

Full-Stack Web Developer

Hello, I am a full stack web developer mostly experienced in Python (Flask framework) and vanilla JavaScript/JQuery, but I can work in other Python frameworks, PHP (including WordPress), and Node.JS. Below are some of the projects I have worked on.

Cuyahoga Land Bank

The Cuyahoga Land Bank's Mission is to strategically acquire properties and return them to productive use. To help us manage our over 14,000 properties, we developed our internal software as a service to make it happen, the software that I work on.

A screenshot of a parcel inside of PPS

  • PPS is our property management software. We use it in house to manage the acquisition, maintenance, and disposal of properties. We have also sold it to 10 other land banks as a SAS product. The product is written in Python and uses a custom datastore method on top of MySQL. This custom datastore allows custom classes and attributes to be made on the fly and allows easy linking between objects. The datastore also has triggers, allowing the creation and modification of objects and the sending of emails based on criteria. We also have scheduled tasks, such as email reminders and daily imports from county auditor's offices.

    WRUW is the college radio station of Case Western Reserve University. Since graduation, I've stayed active with the station, acting as the web director and creating custom software to run our archives, analytics, automation, and other pieces. I also manage all our servers.

    The upload form for a recorded show

  • Automation
    In March of 2020, like the rest of the world, we had to shut down without much notice. Starting out, I tried to find some off the shelf solution for automation and customize it for our needs. Eventually I developed our own custom solution with scheduling for legal announcements, a web interface for uploading and scheduling people's shows, and a random play option for when nothing is scheduled to play. A DJ may upload either a full audio recording (or two files with top of the hour announcements added in the middle) or a playlist file created from our subsonic server (a web based audio player with our million+ song library), which it then imports and adds to the random song list.
  • Archiving/Analytics
    We wanted to build an archiving system to allow anyone to play anything from the past two weeks and follow the legal requirements of not allowing scrubbing, lasting at least four hours, and disabling downloads. With these parameters, I built both the recording program and the web interface using the HLS standard allowing someone to select any time from the past two weeks (usually the start of a show) and start playing. I'm also using the IP address of the listener (including the live stream), and built an interface to view the analytics of who is listening to your show and from where.
  • Every year, we host a telethon to help our operating budget, raising around $70,000 in a week. As the telethon co-director, my job is to create a platform to take donations and order premiums. I decided to use Wordpress/WooCommerce and have heavily customized it to meet our needs. This includes show specific pages and premiums, the ability to donate to one or more specific shows, station wide and show goals, and in studio alerts via a custom made receipt printer.
  • Global Health Metrics

    As a side project, I work with GHM as an independent contractor primarily building and maintaining their health risk assessment software and the accompanying portal, of which both I had a large part in originally building.

    The result page of an HRA

    • Health Life HRA is our flagship product, a Health Risk Assessment based of research done at Case Western Reserve University. Healthy Life HRA will give you advice based on your lifestyle to live a longer and healthier life. We have tooled this product for hospitals, insurance companies, and employee wellness programs. The API handles giving the questionnaire, running the risk engine, and delivering the responses, while the portal runs on a separate server and handles user management.
    • Housing.Health is a project between several partners in Cleveland, OH as a way to tell the health safety of a rental property in the city. The tool can look up and compare properties on lead and structure risks. We built this in Flask/MySQL and use extensive Jinja templating to create the interactive pages.

    Boy Scouts of America

    I currently work with Section E-13 of the Order of the Arrow, which is the honor society of Boy Scouts of America. Our section covers nearly all of West Virginia and the eastern half of Ohio and I server as the tech adviser, managing software and equipment (sound, streaming, computer networking, etc) for our events.

    The start of a registration page

    • Registration
      When our section was created as a merger, I was tasked with looking into registration systems for our events. I decided to build a system from scratch to fit our needs more than an off the shelf registration site. Some of our custom features include a backend available for adult leaders to see who from their lodge is going as well as age/gender breakdowns for youth protection, a separate SMS portal (using Twilio's API) allowing us to send a text to all participants or to receive and send messages to one person to act as a help line, and the ability to control and limit add-ons based on multiple factors.
    • SMS Internet Scavenger Hunt
      In 2020, we had to make our main event virtual due to the COVID-19 pandemic. On top of handling all the streaming and building a WordPress site to act as a guide, I was tasked with coming up with an "internet scavenger hunt". What I came up with is an SMS game (using Twilio's API and flask) composed of 8 locations the player had to guess, one for each lodge of our section. Once the player opted in, they would receive a clue for one of the locations being chosen at random. Every five minutes, they would receive an additional hint (five hints in total) until they were able to successfully guess it. Once they got it correct, they would receive the next question at random. The first person to get all 8 questions right received a prize.