The Android application (APK) is available at https://posthop.momoperes.ca/download.apk!

Web: https://posthop.momoperes.ca/

Source code: https://github.com/posthop

Inspiration

We asked ourselves, how can we improve package delivery for a community? The idea behind Post Hop is to make the shipping experience more inclusive for everyone, including people with physical disabilities and those living in remote regions. By using crowd-sourced couriers, Post Hop brings the post office to your doorstep.

What it does

Post Hop provides a service to schedule package shipments and deliveries at the user's convenience. A Post Hop user would have the option to request a courier to transport packages to and from the post office.

In other words, Post Hop provides two main services:

  • requesting a courier to retrieve a package from the post office to the user's location, and

  • requesting a courier to deliver a package to the post office from the user's location.

How we built it

Post Hop is built on modern web technologies.

  • The application is entirely hosted on the Google Cloud Platform, making use of the Compute Engine and Kubernetes for automatic update-rolling, scalability, and load-balancing across 100 replicas. We also use the GCP Container Repository for publishing Docker images for deployment.

  • The entire deployment process (from pushing on GitHub to Kubernetes deployment on GCP) is automated using GitHub webhooks and CircleCI workflows.

  • The application is separated in three individual clusters: "proxy", API, and "static". The proxy service redirects the users to the right cluster based on the URL path. The resources for the three clusters can be scaled independently.

  • The uptime of the services is monitored using Stackdriver, a GCP-powered service.

  • The front-end application is a responsive Angular 7 application, and is written in TypeScript, SCSS, and HTML.

  • The website was ported to Android using Apache Cordova (native application).

  • The back-end REST API is written in Python 3.6 using the Flask library.

  • The website is completely secured using SSL certificates issued by Let's Encrypt.

What's next for Post Hop

A few features we are looking to add are:

  • Allow users to ship packages to postal offices

  • A system to keep track of the driver's location (integrating a map service. e.g: Google Maps).

  • Have a way to schedule future drop-offs.

  • Integrate with Canada Post to verify tracking numbers and improve the user experience.

The Post Hop mission is to bring a positive impact to a variety of communities. For instance, the crowd-source delivery system can be used for various social causes, including distributing goods in Christmas Food Drives and in homeless shelters.

Accomplishments that we're proud of

  • Post Hop has a slick web interface and Android app!

  • Shared source code for web front-end and native Android app.

  • Infrastructure in place for high scalability.

  • A professional-grade continuous deployment system, with an automatic pipeline from the GitHub source to the Kubernetes update-rolling.

What we learned

  • How to properly use networking within GCP (VPC, subnets) with various sercices (Compute Engine, Kubernetes Engine).

  • Android app development using Apache Cordova.

Share this project:
×

Updates