DEV Community

Cover image for PointaFam: Connecting Farmers with Urban Retailers
Ferdynand Odhiambo
Ferdynand Odhiambo

Posted on

PointaFam: Connecting Farmers with Urban Retailers

Introduction

PointaFam is a platform designed to bridge the gap between local farmers and urban retailers. This project addresses the challenges that local farmers face in accessing urban markets, providing a streamlined, user-friendly experience for both farmers and retailers.

I developed PointaFam as a solo project, serving as the Backend Developer. The timeline for the project spanned 7 weeks, focusing on building the core functionalities of a marketplace platform. I used Go, GORM, and PostgreSQL for the backend, while the frontend was developed with HTML, CSS, JavaScript, and Bootstrap.

This project was created to serve both farmers and retailers, offering farmers a way to showcase their products and urban retailers a reliable source for fresh produce. It also simplifies the process for retailers to search, filter, and add products to their carts.

My focus for this project was on the backend architecture, ensuring the smooth interaction between users and the data.


Why PointaFam?

Growing up, I spent many years living in a rural area where farming was a way of life. I remember how hard it was for local farmers to transport their produce to urban centers. Many of them had high-quality products but lacked the means to access a reliable market, resulting in waste and missed opportunities. Witnessing this inefficiency firsthand stayed with me, and it fueled my passion to solve the problem using technology.

I wanted to create a platform that empowered local farmers, making it easier for them to reach urban retailers and grow their businesses. Developing PointaFam was a personal project, combining my desire to give back to the farming community with my interest in backend systems and marketplace platforms.


What We Accomplished

PointaFam successfully connects local farmers with urban retailers by providing a platform where retailers can easily find and purchase fresh produce.

Architecture Overview:

Image description

The core of PointaFam is built using a Go backend, GORM ORM for database interaction, and PostgreSQL for data storage. For the frontend, I used HTML, CSS, and JavaScript to create a responsive user interface. The goal was to build a lightweight platform while ensuring scalability and efficiency.

Key features:

  • Search & Filter: Retailers can search for specific products and filter them by categories, pricing, and availability.
  • Add to Cart: Retailers can add products to their cart, making the shopping experience seamless.
  • Responsive Design: The platform works well on both desktop and mobile devices, allowing retailers to access it from anywhere.

My Most Difficult Challenge

The most difficult technical challenge I faced was integrating the cart functionality with the backend. Initially, I struggled with ensuring that the cart would persist across sessions. I wanted the retailers to be able to leave the platform and come back to find their cart intact.

Situation:

Early in the project, I realized that a cart persistence feature would be essential for improving user experience. If retailers added products but left the site before completing their purchase, I needed a way to store that data and restore it when they returned.

Task:

I had to design a system that would save the cart’s state both in the frontend and backend while maintaining security and performance.

Action:

I researched session-based storage and database design patterns for storing cart data. Using Go’s session management libraries and PostgreSQL, I implemented a system that saved cart items in the database tied to user sessions. I also set up a secure cookie-based mechanism to track logged-in users while keeping the session data encrypted.

Result:

After a few iterations, I successfully implemented the feature. Now, retailers can return to the platform and pick up where they left off without losing their cart items. This was a critical step in improving user retention and overall experience.


Lessons Learned

Through this project, I deepened my understanding of backend development, specifically in relation to marketplaces. I learned how to optimize database queries to handle complex searches efficiently, implement session management securely, and design systems that are user-friendly and scalable.

One takeaway from this experience is the importance of scalability. While building PointaFam, I realized that making decisions that favor scalability early on prevents many issues as the platform grows. In the future, I plan to further develop my skills in system architecture to handle larger-scale applications.


About Me

I’m a passionate Full Stack Developer(Backend Heavy) with experience in Go, C, Python, Javascript, PostgreSQL and building scalable systems. Check out my PointaFam project on GitHub and the deployed platform. Feel free to connect with me on LinkedIn.

Top comments (0)