Paddle-SG: Introduction

Update: This project is temporary inactive. All paddlesg.com links will be set to the github project that was used to serve the website.

As an active volunteer kayaking trainer for 7 years, I often hear my participants lament that it is not easy to find out the dates of the next available proficiency course. To address this, I created Paddle-SG, a website that consolidates information on upcoming courses and expeditions, and displays them in a no-frills, easy to consume manner.

Background

Kayaking in a closed deck kayak requires a personal proficiency award, whose requirements are defined and regulated by the Singapore Canoe Federation (SCF). This proficiency is also known as the Personal Star Award, and it starts from “One Star” (beginner) up till “Five Stars” (very proficient). Several operators in Singapore are permitted to teach, and certify participants with the Personal Star Awards on behalf of SCF.

Current Process

The parent organization of the kayaking operator that I volunteer with has a website that allows members of the public to sign up for all courses and activities under its charge. Kayaking is just one of the many activities – others include windsurfing, painting, ballet, cake baking, and coding for kids.

For kayaking courses and expeditions, the registration process involves navigating through 5 web pages, with 6 mouse clicks:

  1. Navigate to the operator’s website
  2. Select the “Courses” sub-menu item under the “Register” section
    • For kayaking expeditions, “Activity” will be selected instead
  3. Select a desired outlet (there are only 3 possible outlets for kayaking courses out of the 1,211 under the parent organization)
  4. Select the type of proficiency to show its listing (i.e. One Star, Two Star, or Three Star)
  5. Select the specific course to sign up if it has vacancy and the dates are suitable
  6. Otherwise, go back to step 3 and repeat with another outlet

Challenges

The difficulty stems from the tedious process, and poor user experience of the site:

  • As the site serves the community at large, the online registration process is not streamlined for a specific type of activity
  • In this age of information, users want answers at their fingertips – no one has the time or patience to navigate through 5 web pages
  • The site’s interface is not intuitive, and has a moderate learning curve for new users
  • Selecting the specific outlet translates to the user having to select 1 out of 1,211 possible options from a drop-down list
  • When a specific outlet does not have suitable courses, the user has to reload the page (it is stateless) and select another outlet from the drop-down list

Motivation

In order to make it easy for the community to discover and register for courses, I created Paddle-SG (paddlesg.com) to allow the local kayaking community to discover upcoming kayaking courses and expeditions.

Paddle-SG aims to support the operator’s site by targeting the niche of information discovery. Kayakers come from all walks of life, and no assumption can be made on their digital savviness. As such, Paddle-SG consolidates information on upcoming courses and expeditions, and displays them in a no-frills, easy to consume manner.

Currently, Paddle-SG shows information from one operator (i.e. the one I volunteer with).

Software Architecture and Infrastructure

Paddle-SG uses GitHub Pages as its hosting platform, and a set of Python programs/scripts that update the site at regular intervals. GitHub Pages was used due to its simplicity and cost (or lack thereof), and Python for its BeautifulSoup4 package.

The entire application sits on a Raspberry Pi (Model B), running Raspbian Jessie Lite. At the time of this post, the Python scripts are cron‘ed to run everyday from 10am to 6pm, at bihourly intervals.

Hopefully this post gave a sufficient high level introduction to this project. Here are the related posts about this project:

Leave a comment