Prsnt | Gifting App | Part 1 | MVP

If you can’t be there, be Prsnt.

Prsnt lets you choose a gift from hundreds of the UK’s best-loved high street brands and send it directly to another person’s smartphone.

It will even notify you when a friend’s special day is coming up, so you’ll never miss one again.

Company

Prsnt

Industry

Gifting Marketplace

Project

Prsnt MVP App – Real-time social gifting for friends and family.

Aims

  • Reverse engineer a ~66% complete ‘MVP’ application.
  • Ensure this time-pressured situation was professionally addressed.
  • Refactor what code we could.
  • Make the code maintainable and modular in core areas where the budget allowed.
  • Ensure the application code was well written and properly documented.
  • Build strong encryption.
  • Host securely.
  • Deliver the MVP to the Prsnt team in 1 month.
  • Assist in the launch of Prsnt by Christmas 2020.

Objectives

  • Successfully project manage developing Prsnt.
  • Reverse engineer the Prsnt app to determine flows, data structures and functionality.
  • Audit and properly scope the Prsnt application.
  • Identify weaknesses, serious threats: updates and upgrades were required to stabilise the App, big GDPR issues were identified, on top of outdated frameworks and missing hard coded elements.

Professionally document the App:

  • We had sparse documentation from the offshore development house who transferred it to Creative Stack.

Clearly communicate with stakeholders.

  • Discover the most important state of the features and requirements which would enable a stable live version to be launched in a crowded period (Christmas).
  • Reassure the Prsnt team and address their concerns.

Build a clear roadmap for a 1-month development sprint.

  • Determine the priorities of: Security > Performance > Optimisation = Scalable ecosystem on a modular codebase.

  • Preserve Prsnt’s custom creative design and vision in the final application.
  • Remove critical bugs, issues, and unmaintainable code.
  • Re-factor code to save on budget.
  • Ensure all code was refactored into modules.
  • Use a scalable, modular code base.

  • Build-in end-to-end to encryption with private keys.Build secure, encyrpted data storage both at rest and in transit.
  • Ensure requirements are implemented properly and tested.
  • Host the application on secure servers which can adapt to varying data loads.

Technology Summary

Mobile, back end and dev ops infrastructure.

  • Mobile application on IOS and Android, using React Native for a hybrid mobile application.
  • A backend data-storage system and processing ecosystem on Laravel.
  • Server infrastructure for hosting.
  • An entire architecture for end-to-end encryption at rest and in transit.

Detailed Tech Stack:

Mobile:

  • React Native for both iOS/Android builds.
  • Tipsi library for Stripe payments.
  • Integration with custom API to consume the data.
  • Push notifications with Firebase.

Backend:

  • Laravel 5.5/8.x
  • Maria DB with data encrypted at rest on a different server than the API.
  • Tillo Gift Database API integration.
  • Stripe payments integration.
  • Custom REST API developed over laravel.
  • Custom Admin panel developed over laravel.
  • Mailgun for email notifications / email sending.

Server:

  • 2 x custom instance on AWS (t2/t2.large).
  • Laravel/backend server.Custom rest API implementation.
  • Background jobs.
  • Scheduled tasks for push notifications.
  • Acts as REST API for the entire mobile app.
  • Database resides on its own server.
  • Data is encrypted at rest.
  • Communication is only done through an internal network.

Highlights
  • Used team of creative thinkers, 2 developers and a project manager to deconstruct the offshore team’s development work.
  • Improved our own processes around reverse engineering.
  • Taking over an unfinished project, then implementing a strategy to improve the quality of the application.
  • Seeing the Prsnt’s faces when we finally launched the MVP!
  • Our back-end dev ops and the encryption they built.
Challenges
  • A time-pressured development sprint.
  • Starting with minimal documentation from the offshore development house.
  • Finding unknown unknowns everywhere.
  • Fixing, modularising, updating etc.. whilst in parallel developing new features made this project a particularly challenging application to get stable and working in time for launch.
Outcomes
  • The Prsnt App was delivered on time.
  • Their MVP was launched in time for Christmas.
  • Prsnt were able to attract further funding to develop product 1 – their minimum marketable product (MMP)!
  • We are now building their MMP.
Hindsight
  • It is difficult, if not impossible, to deliver projects that require quality in a short timeframe with unreliable, low-cost vendors.
  • Such projects often have, at best, patchy documentation and that makes transferring or scaling any project very difficult.
  • Prepare for big surprises and more costs in the long run!