GiftSelfie

A full blown web app that provide sms service for requesting gift

Project Background

This web application was targetted for people who are shy to request a gift from people they love, with this application, user can fill some details about the gift they want, and then the system will send sms or mms containing the full details of the gift, so the people who are requested to will buy the right gift

Not only targeting end user, we also targeted online and offline retailer, for online retailer we created some plugins for some common ecommerce platform, such as magento, woocommerce, even agnostic rest api end point for developer to use them to develop the plugin themself for their website

For offline retailer (brick and mortar shop), we developed interface for them, so they can offer this service in their offline store

Some technologies we used

For most of user interface, especially in multistep form, we use Vue js hardly, it is easy to integrate, especially for multipage website, because Vue js can be used without compilation.

For sending sms, sending mms, creating mms image, any others long IO waiting tasks and CPU intensive task, we use Laravel horizon for handling the queue and background tasks.

We use puppeter for generating mms image containing generated text that changes depending on the user inputs, such as sex, occasion, name, etc.

This web application also has multiple languages, they are English and Thai. for implementing this feature, we use built in multilanguage feature that Laravel has

We choose Amazon S3 for storage because using local disk of ec2 instances wont work, because if we save user's assets like images in the local disk, the images will be deleted as ec2 instance got deleted as the autoscalling feature become active.

Deployment, scalability, and high avaibility

We deployed the web application in AWS and use some some service such as SNS for the queue

For scalablity issue, we deploy the web application in ec2 instance and activate the autoscalling feature, and put the application behind load balancer. In making this application become highly available, we deployed the application at least in two different avaibility zones.

The aftermath and what i learned from bussiness perspective

Eventually, the startup got closed because there was not enough demands for this service, and our mistake was we didn't validate this idea first before developing full web application, we only based on assumption.

I learned that entering market as soon as possible is must for small startup which have limited resources, this way, we can validate our idea with only small effort, then we can improve based on feedback that we get from the market

Interested in hiring me for your project?

Looking for an experienced full-stack developer to build your web app or ship your software product? To start an initial chat, just drop me an email at rickypandhika@gmail.com or use the form on the contact page.