Agriculture in the Classroom

USDA

Project

A big refactor of an existing project written in Django and PostGres.

Front end: HTML5, CSS3, Javascript

Back end: PHP, MySQL

A Little Ambiguity

Problem: At the beginning, the overall idea was clear, but there was a lot of ambiguity to work through.

Solutions: When I wasn't sure how to move forward, I made sure to keep talking to the stakeholders and we kept the lines of communication open. I also took pains to try an organize the code base as much as I could.

At the beginning of the project, we thought that each state site (of 11) would be hosted by each state. Everything was set up with this in mind. As time went on, that changed. They were moved to one host, and I should have modularized the repeated scaffolding for each site, but I didn't until a bit later.

REST API

Problem: The old API had a lot of problems and no documentation.

Solutions: I created all brand new endpoints and designed a new authorization scheme.

One of the more important things to come out of this was some documentation for the API endpoints. I followed the look and structure of some of the best documentation I have used, jQuery and Stripe.

Find and Replace

Problem: The old information in the database was repeated a lot.

Solution: The answer was to create a new database schema and convert the old Postgres tables into a schema that kept the data DRY.

Media Content

Problem: I needed to add a way to upload and organize several gigabytes of images, Power Points, Word docs, pdfs, and audio files.

Solution:

Lesson Plan Reorganization

Problem: The old UI was painful to use and the page was tough to scan through.

Solution: The lesson plans page was revamped.

There was no way to quickly go to different parts of the page. I added a fixed flyout that allows for navigation to any portion of the page.

The relative links did not work. I added functionality to the custom instance of the text editor to add flags into the text for a later swap by the API when calling for the lesson.