Project Images for Sportal
Project Images for Sportal

A recreational sports marketplace

My personal app project, Sportal is a way for people to find and play local sports.

Update Q1 2020: This project is in early stages of prototype design

Summary

Inspired by my experience playing and organizing amateur sports, Sportal is a way for people to find and play local sports.

A central marketplace, the app offers a convenient one-stop destination that matches people, organizations and businesses using classified ads, information databases and social media.

Origin

In 2011, I founded the Toronto Soccer Meetup, a large and popular Meetup group dedicated to organizing pickup soccer in Toronto.

The group quickly became a popular destination for soccer players in Toronto, and is a significantly large Meetup group in general (technically the largest soccer Meetup in the world). Every year the group continues to see 1000’s of participants.

With a finger on the pulse of an obvious market, and a personal need to expand horizons, I began exploring the possibility of making a brand-new platform to serve recreational sports.

Basic Formula

Sportal = Kijiji + Meetup + Facebook

A blend of classifieds, event organization and social media.

Including all the standard features expected in modern platforms, with special features optimized for sports.

Technical Details

Back-end:

Go-based server handling main logic and serving API, hosted on Google Cloud. MySQL database, making use of newer GIS features. Node.js being used for a secondary server doing some miscellaneous tasks.

Front-end (web and mobile):

Vue-based SPA, as a PWA (progressive web app), along with Nuxt.js for SSR (server side rendered) pages.

The website, as a responsive, installable PWA, will be promoted as the main way to interact with the platform on mobile devices. This will bypass the app stores completely and won’t require a second code base beyond the website itself.

However I’m exploring the possibilities of native mobile apps:

  • Hybrid Native: Maintaining a single code base (the Vue-based website) combined with Nativescript to make a proper native app. This would deliver a silky smooth native experience and deep access to device features. However performance of map views would be in question.
  • Native: Taking the plunge and building new native code bases for Android (Kotlin) and iOS (Swift). This would deliver the most exceptional experience in terms of performance, especially for map views.

    A fully native app would put no limit on access to device hardware features, perhaps very useful for a platform that involves the tangible real-world (people meeting to play sports).

    For example, a lot of data-recording possibilities could happen where people use GPS to track movements on field, or cameras to take pictures of field conditions, etc.

Stuff so far

A few major items handled to a functional point, although none 100% complete:

(in no particular order)

  • oAuth & SSO (single sign-on) with OpenID, Google and Facebook
  • Geocoding IP’s, latitude/longitude and distance calculation
  • Map rendering, rendering data points and clustering
  • SSL security certificates
  • Local dev environment mirroring cloud host
  • Database design (MySQL)
  • Data modeling (Go structs)
  • UI/UX
  • API design
  • PWA (Progressive Web App)
  • Google Cloud hosting and deployment
  • Native Java prototype on Android

More to come!