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
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.
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.
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