Full Stack MERN Web Application
Project goal
Introduction:
This case study is about delivering a sustainable commerce platform for “Pa(fyll)”, a Norwegian company that makes environment-friendly products for different European countries including Norway and Sweden.The goal was to extend Pa(fyll)’s existing E-commerce application according to their requirements such as “e-commerce store”, “stripe and vipps payment gateway integration”, “country specific seamless shopping experience” “SMS Messaging integration” and much more.
Client’s Background:
Pa(fyll) – (a Norwegian word that translates to “Refill”) is a Norwegian company that produces products which aim at reducing the use of single use plastics, also known as “Environment Friendly” products. Main idea is to use reusable containers that they collect, clean, refill and deliver to their customers again when needed.
Challenge:
The client’s e-commerce application needed API endpoints that can be called upon by Zoho CRM to optimize customer-centric operations using Python at the backend and Reactjs / Nextjs at the frontend . They also needed different services to apply discounts, incorporate Shelfless API for efficient delivery and retrievals, integration of stripe payment gateway and swagger UI and many other similar backend and frontend related tasks. For the frontend, the storefront needed to implement both language locale and shop locale i.e. norwegian, swedish or english. Depending upon the shopping location of the user, a different set of products and payment methods are offered on the UI.
Skills and deliverables:
Retail and Consumer goods, B2C product, Responsive Design, Python script, docker,
Typescript, Reactjs, Nextjs Postgres, Git, Docker, Kubernetes, AWS, Microservices, Apache Airflow
https://pafyll.com/
Solution:
I proposed and implemented the solution to the above-mentioned problems for Pa(fyll) using a tech stack that includes Python at the backend and ReactJs / NextJs at the frontend:
- Developed API endpoints to handle functions related to customer management, delivery, checkout processes, and discount services.
- These endpoints are called upon by Zoho CRM to optimize customer-centric operations.
- Developed a service to apply discounts. Integrated this discount service into the system to enhance customer experience.
- Incorporated Shelfless API for efficient delivery and retrievals. Optimized order fulfillment processes by leveraging this integration.
- Seamlessly integrated the Stripe payment gateway. Enhanced payment processing capabilities for secure transactions.
- Integrated Swagger UI for API documentation and visualization. Improved developer understanding and collaboration.
- Designed and executed comprehensive unit and integration tests. Ensured reliability and compatibility of microservices.
- Resolved Concurrent Request Issue: The problem was when a user placed an order on the app, it created multiple checkouts and deliveries for a single order. To fix this issue I optimized the payment handler to operate within a single transaction and acquired row-level lock using ‘select for update’ on the payment table to prevent concurrent requests.
Results:
As a long term full stack Engineer for Pa(fyll) I provided solutions to all the above mentioned problems to the company. Successfully implemented and tested endpoints for all the issues, following the coding standards. These endpoints are now part of their system and millions of customers are using them.
Apart from above mentioned solutions I also solved many frontend issues in ReactJs and NextJs that included several UI changes, new features implementations and solving bugs in existing System (both frontend and backend).
Conclusion:
- B2C Storefront build in React and NextJS
- Backend Microservices written in Python and PostgreSQL.
The goal was to develop API endpoints to handle functions related to customer management, delivery, checkout processes, and discount services that meet the precise specifications outlined by the client. I also solved several frontend issues related to the UI and introduced new features in the frontend using ReactJs and Typescript.
Let's get started on your project!
We bring smart ideas to life with future-ready solutions. Discover your passion and
celebrate achievements with us.