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!