On the Water

A website that promotes and educates safe boating on the water.
By Natalie Evans, 2020

Full-Stack Development

Web Design

UX/UI Design

Illustration


The Prototype

Once I got feedback on my wireframes, I moved on to creating an interactive prototype. This prototype outlines what the general design will be on my site. I found this design changed as I developed the live site and that some of the design choices made were no longer a viable option and I went in a different design direction. 

Making the Site

First, I installed WordPress and set a starter theme using Underscores, I decided to go with Underscores because it had some accessibility and structure already started, taking off hours and hours of code. I created three custom post types in functions.php called Learn, Review, and Challenge. These would be used to separate and organize my posts about each section. 

I started populating those post types with all of the simplified rules, and regulations that I had written, along with all of the visual assets I had made in Illustrator.  For some of the longer rules, I decided to separate them into multiple posts, and break the rule down, point by point, so there isn’t an overwhelming amount of content on each post. I added categories to each post, depending on the page, and section so they could be easily called up in the future.

After populating the posts types and the rest of the pages I moved onto functionality. I created a slider in Learn using Slick Slider, By Ken Wheeler and called the slider into my template, page-learn-slider.php, and using PHP conditionals, added the logic that would display the right posts with the right page. This meant that users could click through all of the posts individually, minimizing scrolling, and keep content down to a nice bite-sized piece to learn.   

I added a similar structure to Review, but I used the Quiz and Survey Plugin to create my quizzes, this allowed me to choose exactly what I wanted, and prioritize the Challenge functionality, which was proving to be a beast of its own.

With the Challenge section, I set up the questions using an Advanced Custom Fields Repeater Field. I had some functionality issues to work through initially, the first being that WordPress uses mainly PHP to customize and call functions. PHP is a server-side language and I needed something that would make my site more dynamic, so I turned to Javascript. 

After a lot of research, and testing, I finally found a solution that worked for me, that had the dynamic aspects that I needed, called the right question and allowed me to customized every part of that Challenge section.  I ended up using a combination of PHP to call all the rows, the CSS to hide all of then but the first question, then Javascript to apply classes dynamically so the challenge section had the illusion of reloading a question every time.