2021 – 2023, Tiên Phong CDS for Nutifood
- Role
- Backend developer, DevOps engineer
- Team
- 10 people, 20 man-months
- Users
- 300+
- Website
- nutifoodshop.com
Business goal
One storefront for distributors, retailers and consumers at the same time.
Nutifood’s web store and Flutter app, serving distributors, retailers and consumers. Customers, products and carts sync with the Ngôi Nhà Dinh Dưỡng nutrition portal; orders flow to the DMS; products sync to a CDP.
Main modules
- Separate pricing and ordering flows for three customer groups
- Affiliate channel through Accesstrade
- Sync with the Ngôi Nhà Dinh Dưỡng portal
- Orders into the DMS
- Product sync to the CDP
My part
One storefront serving Nutifood’s distributors, retailers and consumers at once, plus an affiliate channel that added sales beyond the direct one.
- Build server-side logic and sales business rules
- Analyse technical requirements and integrate third parties
- Operate cloud infrastructure, monitor and analyse traffic
- Propose page performance and cloud cost improvements to the client
Result
- 300+users across three customer groups
- 3pricing and ordering flows, one per group
- AffiliateAccesstrade added a sales source outside the direct channel
Problems faced
Three customer groups with very different pricing and ordering rules shared one platform, sales needed a source beyond the direct channel, and orders and products had to flow into the client’s DMS and CDP.
How it was solved
- Split pricing and ordering flows for the three customer groups on one platform.
- Moved the system to GKE, with the backend scaling up to 90 pods under load.
- Integrated Accesstrade as a separate affiliate channel with conversion tracking.
- Sent orders to the DMS and synced products to the CDP with CronJobs.
Project management process
- 1RequirementsThree customer groups, three pricing flows
- 2BuildWeb, Flutter app, admin
- 3IntegrationAccesstrade 01/2022, DMS, CDP
- 4UATScripts per integration
- 5Run on GKEScaling up to 90 pods
- UAT and test scripts for each integration (DMS, the nutrition portal).
- Backend on GKE scaling up to 90 pods, with CronJobs syncing every 5 minutes and every hour.
- I worked in a four-person backend group and a two-person DevOps group.
- The Accesstrade affiliate integration shipped in 01/2022.
System architecture
- Users
- Web store (NuxtJS)
- Flutter app
- Admin (Angular)
- Services
- Lumen backend, HPA up to 90 pods
- Ordering web
- CronJobs: 5 min, hourly
- Data
- MySQL master + replica
- Integrations
- Ngôi Nhà Dinh Dưỡng
- DMS
- CDP
- Accesstrade
- Infrastructure and DevOps
- Google Cloud GKE
- Docker
- Nginx
- Supervisord
Tech stack
- Applications
- NuxtJS
- Angular
- Flutter
- PHP Lumen
- Data
- MySQL (master and replica)
- Infrastructure
- Google Cloud GKE
- HPA
- Nginx
- Docker
- Supervisord
- Integrations
- Accesstrade
- DMS
- CDP