Sportal
September 2019
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!