UB Tech Update - October 2022

Author : Adi

Updated : 21/Nov/22

#UbTechUpdate for October 2022

Hello all, Adi here, with another edition of our Tech update. It’s fascinating how fast days have been flying past recently. I’ve been wanting to write this post for over 2 weeks now and have just gotten around to doing it. Let’s see what changed in Uzhavarbumi’s tech stack last month.


Admin Panel

  • One of the most complex pieces of logic in the entire tech stack is the Delivery Chart, this is the logic that’s responsible to take a lot of variables into account to check if a particular customer needs milk the next day. This CRON runs every evening to generate the 1000s of deliveries for the next day. It’s been challenging, to say the least, to implement a way to restart an alternate-day subscription in the correct order after a vacation is complete. So I made some progress there, but it’s still not working reliably in all situations. The Delivery chart is one of those things, that gives me nightmares just imagining myself having to make some changes to it 🫠.
  • Currently, we have built an attendance system for our Employees, but we were unable to track which shift they worked. So we implemented this feature, reducing a lot of after-work during salary calculation for our managers.
  • We are also working on improving the reporting structure within our organization. As the first step, we are assigning a person, to whom a person reports, all the way up to the CEO.
  • I’m always looking for a way to improve the performance of our applications. So I tried to enable GZIP compression on the Request-Responses for API calls, and the change has been staggering, over 40% reduction (🥳) in the response size, leading to faster API calls. So I’ve set the same settings across our apps, and we are seeing noticeable improvements.
  • We are continuously improving the internal Business reports, so this month I’ve added a few new reports to track our Milk deliveries, and a few other graphs that correspond to App Orders.
  • As part of our Cattle Care program, we keep records of the cattle to monitor their health and status. We started tracking the individual feed by their types, for each cattle. Previously this used to be done in one field, now it’s been split into dry feed, wet feed, and supplements (ethnoveterinary).
  • We have built a flexible Approval system with which we can implement an approval step for any process in our tech stack. This month I made it easier to read the details of the approval by our managers.

Dealer App

  • Our Dealers are able to create a manual transaction record, eg. when they collect cash payments from a Customer and need to top up that Customer’s wallet. After a lot of trial and error, I’ve added strict constraints so all records follow a defined format and are not misused.
  • Another super exciting feature we made for Company dealerships is the ability to login to multiple Dealerships simultaneously. Previously one app installation can only be used for one Dealership, if you needed to check on a different dealership, you’ll need to log out and re-login. This has been getting hectic for our delivery managers who manage multiple Company owned Dealerships. With minimal, yet clever change (if I say so myself 😏), this complex feature was enabled.
  • Customers have been able to set delivery preferences for a while, but there was not an easy way for a Dealer to view these preferences. So I’ve added a way to easily view these settings within the Dealer app for each customer.
  • We allow our Dealers to initiate notifications to our Customers to update them about delivery status, eg. if there is a delay in Milk delivery or if deliveries are canceled due to unforeseen circumstances. But sometimes by mistake multiple notifications are initiated causing less than ideal user experience, so I’ve set a limit for how many notifications can be initiated in a given period.

Employee App

  • As mentioned in the previous blog post, I’ve continued work on building a Mobile application for our Employees. What started as a way to digitize some of the manual record-keeping methods, after a few discussions we decided to expand the scope of this app to be a more general app for all Employees. Currently, they can view their details, view their attendances, view previous salary slips and we have a few forms for submitting data too. It’s now a very basic app, but we have a lot of planned features in the future.
  • We wanted to announce the launch this application by a special guest, and we reached our very own Mr. Ratheesh Kirshna to do the honors. Check the photos here.
  • Previously we had a much simpler version of this App as an online portal, we have since removed it from the face of the internet.

DevOps

  • As I have previously written, we intended to move our Cloud infrastructure from Digitalocean to AWS. One of the last pieces to migrate was the primary database and the PHP applications. So I decided to learn more about the AWS platform and choose the right services to host the DB & applications. One fine day I made the move and it was a little rocky at first but the services have since been running with stability. Thanks to the Cloud-ess for keeping things sane for me 😵‍💫.

That’s all for this edition of UbTechUpdate. If you would like to know more about our system or have specific doubts, do let us know in the comments, we are always ready to help. It’s been a lot of work in various parts of our tech stack. I hope to reveal an announcement in the next edition, let’s see if I’m able to complete it on time.


Thanks for reading.
by Adi, CTO of Uzhavarbumi


Simple, Safe & Quick INSTALL APP