Customer: Portrait Photographer
Category: Custom Web Application Development, Project Recovery
Date: 30 April 2020
Status: Beta Version Completed
Tags: Photography, Portraits, Redevelopment, Web App, Custom Software
Client was having a web-based application with whole workflow & CMS in the Admin panel also an ecommerce for customers to order online for variety of products related to photo prints. This application was built using PHP 4 which is obviously outdated and the way it was developed it had a lot of performance issues and making it difficult to run business operations smoothly and resulting in additional manpower, time and cost which can be obviously saved by smooth software workflow. Since this website was for managing workflow of Photography it obviously required lot of photos uploading and downloading (Around 1000 to 2500 of images to be uploaded at once which is obviously not easy to do one by one because software was not capable enough to handle such large amount of data transmission. Client wanted to improve the existing web application but it was proving to be really complicated and costly to do smallest improvement hence we recommended customer not to invest in the existing application. As the client wanted to run its operation through the application, we had decided to just improvise only important functionality as phase 1 and in Phase 2 we can start building the new application from scratch.
- As old web application was built using Core PHP (PHP Version 4) application’s architecture was inappropriate and coding was not standardized. This scenario was causing difficulties for developer to implement new functionalities or solving bugs in existing code.
- Administrator had to wait a lot to perform certain operations because old application was taking way too long to process and load the data; Also, lot of operations had to be done manually due to it was faster to process manually and accurately comparing to let application do it.
- Old web customer portal work-flow was not 100% optimized in terms of business operations which resulted in waste of time & energy. In-fact certain features were implemented in a way which was causing problem to generate actual business intelligence data.
- Since portal was built on outdated technology client had to either use old shared server and deal with slow response time or invest way more amount for dedicated server.
- Lots of important functionality and user-experience was missing:
- Order/Invoice numbers were not in sequence
- There was ability to edit the order but it was not adding new order which was causing lot of issues for the accounting purpose
- Certain functionality was not automated properly like firing email alerts to customers when order status changes.
- There was no way for customer to edit the order from customer portal
- It was not possible to upload more than 20 images at a time
- For data records pagination was not used
- Although this portal was customer focused there was neither customer account nor order history of past purchase.
Client was already using this PHP 4 based Customer Portal for his Photography / Printing (Portrait) business hence we had to make sure his business can keep operating smoothly now and later as too. So, we decided to provide solution in phases without disrupting his business operations:
- PHASE 1 : Improvise old application quickly
- We did few security improvements so client can use the software without worry of breaching the confidentiality (GDPR) laws. Eg. Earlier there was a risk of accessibility of customers images by public.
- Upgraded the PayPal Payment Gateway APIs as it was using old API which had been deprecated by the PayPal
- We debugged and corrected whole customer portal for Responsiveness and Cross device compatibility and to make sure it can work smooth on any device or browser
- PHASE 2 : Build new customer portal
- We build complete portal from scratch with Angular 8 on Front End and PHP 7 based framework Laravel.
- We have improvised business workflow in new software which can reduce the business operation efforts
- Introduced some new features & Functionalities
Dynamic Data Tables with Filters, Sorting, Search, Pagination
- Integrated Royal Mail Shipping API to calculate shipping cost and generate shipping labels automatically.
Integration of latest Payment API (WorldPay & PayPal) with correct checkout flow.
- New system is capable of managing customer data properly so now customers can login and see their past activities like Orders, Payments, Status, Edit Orders etc.
- Which ultimately reduced customer support efforts
We have added live chat support instead of only phone support so now multiple customers can communicate at once without waiting.
- To make GDPR compliance more transparent to customers we added functionality so customers can delete their images themselves instead of calling and requesting to Admin.
- Admin can perform bulk actions while earlier customer had to do in one by one due to old system.
PHASE 3 : Data Migration (In Progress)
- Generate database script to migrate all previous orders and products from old database to new database
Project Execution Challenges
This is very important functionality for customers where they can see the portrait images through which they can start ordering various printing products. First, we had generated proof-cards through Angular (Front-End) but it was taking little longer to generate because first it was generating HTML view then converting the same view in to PDF. Again, when converting in PDF another challenge was alignment when taking print of the HTML. We did optimize however client needed pixel perfect prints. Hence, we decided to implement it different way. Then we used ImageMagick (PHP script) in order to generate the JPEGs and then after some calibrated adjustment we were finally able to achieve the what was needed.
As this customer portal is also has eCommerce integrated in it customer order is one of the important feature for revenue generation. After order is placed customer should be able to edit the order before it is confirmed now this was more of business aspect challenge rather than technical but to achieve this, we had to change the flow the way customer interact with orders and user account.
Dynamic Product Catalog / Dynamic Angular Forms
Usually standard behaviors of product catalogs contain Categories >> Products >> Attributes for specific product. However here client wanted everything to be dynamic Eg. First Administrator can create product template then assign that template to a product. Once customer choose product then based on the product attributes changes dynamically because attributes were also had sub attributes. Based on attributes selections other attributes and sub attributes were changing values along with the price. This is 100% dynamic form generation based on selected criteria to place an order. This demanded lot of effort to calibrate customer interaction behavior.
Find existing business logic from old source to replicate them
It was really challenging for developer to find the actual logic and implement correct logic. Implementation of simplest functionality or correcting a bug or error demanding way too much time and expertise. This also impacted on overall evolution of application.
Enhanced Data protection and Privacy with GDPR adherence.
In the new system users have more privacy and better control over their own data. They can now delete any of their data at any point of time by themselves. Also now their data was in much more enhanced secure environment.
Rock-Solid enhanced security
With new system we have much more higher security at Front End (Client Side) as well back-end (Server-side) security which are basically generating sessions, generating authentication token and encoding/encoding of the token along with a secret key which makes this system extremely difficult for hackers to steal the data. And due to new customer account management functionality even each user has ability to manage their privacy and can manage more things themselves.
Uploading & Managing 1000s of image now take just an 1 minute instead of Hours/Days.
Earlier after each event client had to upload all the photos (Usually 500-3000 Images) in small batches and also define batches name and types manually but now all they have to do is just upload an excel file which hardly takes a minutes and let the system do the rest. Everything is automatically added in to que in the system, Labeled properly, Proofcards are generated and Images are also converted everything by just single click.
Customers can now track their history.
Earlier users were unable to see what they had ordered in the past etc or Which proofcards they have used etc. But now with new customer account management functionality it became so easy and effective for customers. Also it reduced efforts for studio to edit orders since now customers can do it themselves.