Summary

The Nepean Sailing Club website is large and complex and has evolved through many re-designs over the years, from a static collection of HTML 4.01 pages, to a custom-made integrated design with partial WordPress implementation, to a full modern WordPress theme implementation, to a modernized WordPress website with Kadence Theme

After many years of reliable service, keeping NSC members current with an excellent information flow and access to online member services, the time came to upgrade the NSC website with accessibility features, features to boost rankings in searches, and a more modern look to attract new potential members, among other things. In 2021 a modernization of the website was undertaken by the then PR Director with a team of web volunteers. The new website development over approximately two years was facilitated by the PR Director and a contractor hired by NSC. Extensive consultation was conducted with key stakeholders including staff. 

The website is actually multisite, comprising the main site and seven sub-websites (BYC/NSC Interclub Racing, Club Championship, FANFARE, Jacques Adam River Challenge, NOD, Ottawa Cat and Skiff GP, Sail Training (includes Able Sail that was previously its own sub website). The multisite approach, adopted from the original website, silos each subsite to protect all others.

The WordPress Kadence Theme now used is a lightweight yet full featured theme for creating beautiful fast loading and accessible websites, easier than past themes. It features an easy to use drag and drop header and footer builder to build any type of header in minutes. It features a full library of starter templates that are easy to modify with our intelligent global font and colour controls, along with extensive integration with the most popular 3rd party plugins.

This site has thousands of files, hundreds of pages, and dozens of home-grown scripts, dynamic functions, online databases, automated scheduled executions, etc.

The website is managed by the Public Relations Director, assisted by a WaveLength Media, a commercial firm which looks after the Content Management System (WordPress) , by Daniel Servranckx who looks after the non-WordPress components of the website, and a number of volunteers.

A four-person webmaster team is responsible collectively for strategic planning.

Until March 2023, the website team consisted of:

  • Daniel Servranckx, the Webmaster since 2000. He was responsible for all the technical and server-side operations and maintenance including WordPress, with an emphasis on keeping the NSC server secure and up to date, in addition to monitoring, developing and maintaining custom-made applications, databases, scripts and automated off-site backup systems.
  • Hugh Morrin was the co-Webmaster since 2005. His efforts were originally focused on sailing and racing content, buut up to March 2023, he had progressively taken on an active management role, focusing on the website content and organization. He was the primary point of contact for all matters related to the website front end.

Highlights of Significant Projects and Milestones

2023

  • On August 14, following 2 and a half years of re-design efforts, the new website is launched.by Wavelength Media.
    • The main features of the new website are:
      • the Kadence PRO theme;
      • a completely re-designed dual main and side bar navigation;
      • a contemporary design look and feel;
      • Search Engine Optimization features,
      • full compliance with the Accessibility for Ontarians with Disabilities Act, 2021; and,
      • an integrated NSC members and WordPress users login.
    • Assembled in Feb 2021, the re-design team consisted of:
      • Project leader: Stephen Kidd (PR Director) since March 2023, and Dave Bradly (PR director) until March 2023;
      • Project Team: Paul Wagner and Ian Miller, until March 2023, and Callum Smith until June 2021;
      • Technical Support: Hugh Morrin and Daniel Servranckx, since inception;
      • Master Editor: Sophie Fletcher, since March 2023;
      • Bid Manager: Zhanna Orazgalieva until Jul 2021.

2022

  • In August, modified the RC Volunteer Registration system to allow the coordinator to add one or two jobs, ‘Race Officer’ and ‘Markset Lead’, to any event. integrated the various Weather Staton, EC Weather and Water data collection and processing scripts into a unified set to resolve timing problems and reduce the CPU load.
  • in July, added the 24-hour x 10-minutes Weather Station plots page.
  • in June, switched the native web hosting email delivery by PHPMailer (used to send an external email by all NSC applications) to an external Google Workspace account using SMTP to circumvent a new (as of May 31) emails throttling of multiple outgoing emails flagged by Google as potential SPAM. While doing so, wrote a new PHPMailer front-end script to be used by all NSC’s email-sending forms to centralize PHPMailer-related configurations.
  • in March, completed the migration from using the FormMail email processor to PHPMailer. Tested PHP version 8.0 but kept version 7.4 as there were some problems with media uploading.
  • In February, at the Fleet Captain’s request, created the Club Championship sub-web using a clone of the FANFARE sub-web.
  • in January and February, member Tom Winlow provided the 1978-1997 directors’ photos commercially scanned from the original wall-mounted frames in storage at NSC. The Web Team cropped, re-scaled and uploaded the photos for display in the Board of Directors Search Tool. Also, added two buttons to the page controls to open and close all the photos at once.

2021

  • In November, switched the RC Volunteer Registration system from native PHP mail to the PHPMailer handler.
  • In October, prepared the haul-out schedules real-time display system.
  • In August, rewrote the Long Distance Finish Times form and handler script, switched the form data mailer package from Formmail to PHPMailer (which supports file attachments), and added the capability to include 1 to 3 photos to the submission.
  • In July, added a new Bar & Galley top navigation link, and relocated the Hall Rental link to Resources.
  • In June and July, developed The PHRF Handicap Comparison application.
  • In May, prepared the Launch schedules real-time display system and performed minor tweaks to the Weather Station display pages following the station relocation to the lighthouse at the harbour entrance on May 28.
  • In April, created an online Google Form signup / COVID questionnaire to monitor yard access.
  • In March, re-wrote the generic file upload script to handle various types of files so it can be used in diverse applications like the Classified Ads and the River Challenge attempt registrations.
  • In March, assisted the Business Manager with the creation of the master careers page and the related “children” employment opportunity pages.
  • In March, replaced the custom-maintained “NSC Member Access” plugin – which only works with the older “Classic Editor” – with the simpler “WP Force Login” plugin which is editor-independent.
  • In March, Hugh Morrin started helping member Romie Kelland establish a new online Regalia store.
  • In February, repatriated the NOD and FANFARE websites, which had been hosted on external sites for some years.
  • In February, updated the RC Volunteer System to the Bootstrap V4 framework, and made other modifications required by the server migration noted below.
  • In February, following migration to the new web server by our hosting service, modified all references to the svr1 server name in PHP scripts.
  • In February, streamlined the weather station data handling to download every 5 minutes a Current Data file (2.6KB) whose content is added to a cumulative 6-hour local file instead of downloading a “raw” 6-hour History file (157.5KB).
  • In February, at the Office Administrator’s request, added a “Valid Until” date to the Proof Of Insurance web application form.
  • In January, resumed work on Version 2 of the Trophy Gallery and Event Winners application to handle multiple events-trophies reassignments and the addition of uncatalogued winners to past events, a common occurrence before 2004.
  • In December 2020 and January 2021, Daniel Servranckx developed the data acquisition mechanism, the Web presentation and Highcharts graphics from the Davis Weather Station’s cloud storage historical data. Marek Dziedzic and Hugh Morrin conducted the acceptance tests. The application is available at nsc.ca/nsc_weather.
  • Between November 2020 and January 2021, Member Marek Dziedzic, assisted by Hugh Morrin, researched the components and defined the technical specifications for a Davis Weather Station to be installed on the lighthouse, to replace the defunct weather station mounted on a light standard in the NSC yard. The Davis system was purchased by NSC in November 2020 and then configured and tested by Marek.

2020

  • Between July and December, created the Trophy Gallery and Event Winners Database and Applications available at nsc.ca/nsc_awards: Hugh revised, expanded and corrected the CSV-based data covering 30+ years of racing events; Daniel designed the database, the user and administrative Web applications, and the CSV to MySQL data upload scripts. Over 700 hours have been spent (so far) on these often complex tasks.
  • Updated the code in several custom PHP scripts to conform to PHP 7.4 standards.
  • Refactored the form-to-email script (our object-oriented version of formmail.php), adding various testing layers and security features. Updated the form processing script PHPMailer to the latest version.
  • Researched, tested then replaced the WordPress Email Address Encoder plugin with one offering a more robust encoding scheme.
  • Converted all the SQL database tables from MyISAM to InnoDB Storage Engine for improved performance. InnoDB is the default storage engine on MariaDB, the open-source MySQL DBMS on NSC.CA.
  • Created a real-time Boat Launch Sequence system using a combination of Google Forms, sheets and local pages to collect and display the launching sequence as it is being edited for timely access by members.
  • Created a system for recording acknowledgement of NSC’s COVID-19 Code of Conduct, using a combination of a Google Form, Google Sheets and a local page to collect and display the acknowledgements, for easy access by the gate attendants. Also developed a Yard Access Reservation system, that was not implemented.
  • Moved all the Database connector scripts (except for River Challenge which is managed by another volunteer) from the web public to a server private folder for more robust DB access security.
  • Rewrote the entire server-side automated system that compresses and sends database and other critical file backups (like the race results) to an offsite email account for safekeeping.
  • Created a web server-based script to protect files with specific extensions (like PDF) in a ‘protected’ folder from being accessed when not referenced by an NSC page. In particular, this protects the Parking Permits from non-member access.
  • Updated the server to PHP 7.3, and converted obsolete functions in home-grown PHP scripts.
  • Improved the security on all web-based forms (such as Race Volunteers Registration, Classified Ads and Proof Of Insurance) by adding to the form a server-generated hidden field whose value can only be used once, thus preventing out-of-domain or other types of ‘unexpected’ usage.
  • Migrated the Proof Of Insurance system from a separate Excel storage system to a full database storage system, and added management components such as the display of members who have not provided proof of insurance.
  • Removed several obsolete WordPress plugins and replaced them with equivalent (or nearly equivalent) variants.

2019

  • Converted the Member’s Login WordPress plugin into a ‘homegrown’ plugin to avoid continuous error notifications by the WordPress firewall.
  • Migrated the email anti-spam confirmation script from Perl to PHP, and re-coded the existing Perl script to forward to the PHP script for legacy support.
  • Created a Dock Resurfacing Registration System using a combination of a Google Form, Google Sheets and display of registrants on a website page.
  • Rebuilt the entire NSC website following an unrecoverable disk reformatting by the host data centre. Using monthly, weekly and daily backups produced by automated scripts on the NSC server and stored in a Gmail account, reconstructed a usable website over a 24-hour period, and a fully functional site with up-to-date information over an additional 48 hours.
  • Helped iSport Solutions with the off-site migration of the iSport component of the Sail Training sub-web, and re-wrote the NSC-based components to interact with the split hosting.
  • Updated the server script from PHP 5.4 to 7.2, and converted obsolete functions in home-grown PHP scripts, such as the image and photo scaling code used to reformat uploaded images, as used in the Classified Ads.
  • Updated the Racing Committee Volunteers Registration System framework from version 3.3.7 to 3.4.1 as, contrary to expectations, version 3 was updated.

2018

  • Re-wrote the server-side Jobs scheduler into a set of Linux Bash Scripts based on their running schedule (hourly, daily, weekly, monthly, daily-Feb-to-Aug, etc.).
  • Migrated the entire NSC website from WebNameHost Hosting to PCLF Hosting (with the assistance of Patrick Fleury, NSC IT Support).
  • Installed and configured WordFence Premium on WordPress. WordFence is a firewall plugin whose paying version provides immediate installation of countermeasures for newly discovered threats.
  • Rewrote the Apache ‘.htaccess’ file to enforce the security/privacy of files and folders, and reroute missing (404) pages from previous designs using Google Master Console and server error log reports.
  • Converted the membership ‘Bluebook’, a single table database updated monthly from an Access-generated table to a two-table database (members and boats), updated monthly from two NorthStar-generated Excel membership and boat reports; redesigned the Bluebook and ‘Members Only’ authentication system (WordPress login and static scripts access) to use the new members’ table, and re-coded the various applications that use the Bluebook signup for authentication.
  • Wrote a parallel Racing Committee Volunteer Registration system using the Bootstrap version 4 framework as version 3 is no longer updated and will eventually be retired. Both versions will be maintained in parallel until version 3 is retired.
  • Re-factored the Proof Of Insurance application to a Model-View-Controller (MVC) paradigm.
  • Modified the Proof Of Insurance collection and display system to pre-populate the collection form with the previous year’s data.
  • Designed a proof of concept Crew Bank Registration/ Posting system using Bootstrap 3.7, PHP, JavaScript and MySQL.
  • Re-designed the member’s Upload application using Ajax to fetch, analyze and display upload information from the NSC server in order to better manage uploaded files.

2017

  • Created a new WordPress sub-web using the generic NSC / Twenty-twelve for BYC/NSC Interclub Racing.
  • Re-factored the stand-alone Race Committee Volunteer Registration system using the Bootstrap 3.7 adaptive framework to provide a well-behaved display on all devices.
  • Designed a client/server system to collect and store Proof Of Insurance data from members, display said data to authorized users, and create and email a daily backup of the data CSV file via a CRON (batch) job.
  • Designed a WordPress Theme function to use the MySQL member’s database (the ‘Bluebook’) as a secondary login for members without WordPress accounts, thus unifying the Bluebook and ‘Members Only’ authentication into a single system.
  • Rewrote the Registration / Reservation system from PERL to PHP, adding a splash page builder form to quickly create the event page.
  • Installed and configured the free version of WordFence Security Plugin, a WordPress firewall and malware scanner.

2016

  • Wrote applications to display water level, wind and weather information to the NSC Weather page using CSV and XML data files fetched from external sites (like the Environment Canada City page for Ottawa on the Meteorological Service of Canada’s HTTP data server).
  • Created a new WordPress sub-web using the generic NSC / Twenty-twelve for the Ottawa Cat and Skiff Grand Prix regatta.
  • Created a set of CRON (batch) jobs to backup and email databases and CVS files, clean up logs and temporary files, and fix downloaded images’ size.

2015

  • Created a proof-of-concept WordPress eCommerce sub-web based on the WooCommerce WordPress plugin.
  • Converted the MySQL DB extension and the various database applications from MySQLI to the more robust and generalized PHP Data Object (PDO).
  • Refactored the Race Committee Volunteers Registration and Reminder system from a set of PHP procedural scripts to a PHP Object Oriented model.
  • Converted the MySQL DB extension from MySQL to MySQLI, upgraded the jQuery Library, and added several layers of validation and security to the user’s inputs and PHP Session handling.
  • Re-factored the Bluebook application to a Model-View-Controller (MVC) paradigm.
  • Re-factored the Board and Directors’ applications to a Model-View-Controller (MVC) paradigm.

2014

  • Activated the WordPress Twentytwelve child theme developed the previous year on the NSC main website and sub-webs and developed static header and footer files for inclusion in static PHP pages thus giving them the same unified look and feel as the WordPress pages.
  • Assisted iSport Solutions in establishing an online payment solution for the Sail Training Center.

2012-2013

  • Developed a WordPress master theme as a child Theme of WordPress TwentyTwelve theme, an HTML5/CSS3 adaptive design perfectly suited for various display formats such as handheld devices, laptops and desktops.
  • This single child theme became the “NSC Branding” theme used in the creation of the Sail Training Center website, the ABLE Sail website, the River Challenge website, and to re-theme the existing Nepean Sailing Club website. Each website shares a common look and feel — since they are all based on the exact same child theme of TwentyTwelve — but have distinct headers ( images, titles, taglines) and navigation.
  • This scheme allows the Nepean Sailing Club web team to create new “compliant” subwebs as required, with minimum time and effort.
  • Ted Eedson, the Board Of Directors Secretary, converted the free BOX.COM (formerly BOX.NET) cloud-based storage to a more versatile pay-for-service account with more storage, and developed a comprehensive document storage structure to hold all official governance and office documents.

2011

  • Introduced the usage of CLOUD storage and applications using BOX.NET, created a directory structure and migrated all the official NSC documents to public or private folders to the remote CLOUD servers.

2010

  • Converted the nsc.ca WordPress installation to Network/ Multi-users, and integrated the existing independent WordPress sub-webs into a single, unified system.  Also imported and installed a MySQL multi-table Race Committee Volunteer Registration system exported from another site, altered the structure of the table and modified the PHP application code at the user’s request to add functionality such as reporting and checkbox-driven updating. We then cloned this database system and added other functions to facilitate usage as a general event/work party registration system.

2009

  • Migrated the main NSC page to the WordPress.org framework to allow key NSC players (directors, committee chairs, office staff) to do their own postings by means of an easy-to-use Content Management System (CMS) as well as to allow them to solicit comments, and to offer users extended search capabilities on keywords, categories, tags and months. See Way Back Machine, Oct 2009.
  • Converted the HTML 4.01 design to an XHTML-strict Template, created our own template (PHP and CSS files) to match the look and feel of the old site – a corporate requirement – and modified plugins and the theme PHP code to increase or match the functionality of the old site. This activity required approximately 40 hrs.
  • Created the integrated NSC Google Calendar, that remains in use today.

2007-2008

  • Converted the site from Microsoft’s ASP/ Coldfusion/MSSQL environment to a LAMP (Linux, Apache, MySQL, PHP) environment. This effort alone required about 70 hours of work as databases had to be converted and imported from Microsoft’s SQL to MySQL environment, many scripts had to be re-written from ASP and Coldfusion to PHP, new access to the member’s private area had to be devised and implemented, and hundreds of broken links caused by file names upper and lower case mismatch (Microsoft being case insensitive but not Linux) had to be tracked and fixed.
  • Modified some of the header JavaScript to make the site Google Chrome-compatible.

2006

  • With the coming of MSIE7, combined the two “browser-dependent” Style Sheets developed in previous years into a single IE-ready, “browser-independent” set.
  • Re-designed the page’s backbone using modern coding and styling techniques, converting a table-based layout into a table-less, Cascading Style Sheet Positioning (CSS-P) layout. See Way Back Machine, 10 Oct 2006.

2005

  • Hugh Morrin joined the web team, initially setting up the Race Results folders and pages, a structure that remains in place today and provides race results dating back to 2003.

2003-2004

  • Created a “poor man” Reservation/Registration system in PERL to support the office and the kitchen.
  • Using the services of a graphic artist, completely re-designed and rebuilt the website structure and backbone to W3C HTML V4.01 / CSS Level 2 compliant standards that present a common look and feel on all major web browsers. Two different style sheets were used for IE and non-IE browsers. See Way Back Machine, 31 Dec 2003.

2001-2002

2000

  • In April, Daniel Servranckx took over as Webmaster.

1999

  • Bernie Coyne moved to the USA. Don Duchenes took over as interim Webmaster.

1998

Page maintained by Public Relations