Overview
Zabwino Deals is a full-stack classified ad listing website specifically designed and developed for the Malawian market. Built using a stack including Node.js, Express.js, EJS for templating, and MongoDB as the database, this open-source project aims to provide a simple yet effective platform for local users to buy and sell goods and services within their community.
The primary challenge was to create a user-friendly, localized online marketplace tailored to the needs of users in Malawi, leveraging modern web technologies to enable seamless transactions and interactions.
The solution is Zabwino Deals, a comprehensive platform featuring:
- User registration and profile management capabilities.
- Easy creation of product listings with image uploads managed efficiently via Cloudinary.
- Real-time chat functionality between buyers and potential sellers, powered by WebSockets.
- Instant notifications for new messages and user reviews.
- A system for users to save favorite listings.
- Mechanisms for reporting listings and leaving reviews to build trust and reputation.
- A dedicated admin panel for content moderation, category management, and location administration.
The project represents a completed prototype and is available as open source on GitHub.
Key Features
- User Authentication: Secure user registration and login system (requires a phone number for registration).
- Product Listing & Management: Users can easily post classified ads with relevant details (location, category, condition, price) and upload multiple product images.
- Admin Moderation & Control: New listings require approval from an administrator. Admins can manage product categories and locations directly through the admin panel UI.
- Real-Time Interaction: WebSockets enable instant messaging between users and provide real-time notifications (with optional sound alerts) for new messages and reviews.
- Reputation and Trust: Users can leave reviews for sellers/products and report inappropriate listings to maintain platform quality.
- Profile Customization: Users have the ability to edit their name, profile picture, email address, phone number, and password.
- Seller Dashboard: Registered users have a dashboard to view their posted products and track their status (Pending Review, Denied, Approved).
- Favorites System: Allows users to bookmark listings they are interested in for easy access later.
Technical Details
- Backend: Node.js, Express.js framework
- Frontend Templating: EJS (Embedded JavaScript templates)
- Client-side: HTML, CSS, JavaScript
- Database: MongoDB (NoSQL database)
- Image Storage & Management: Cloudinary API
- Real-time Communication: WebSockets
- Deployment Notes: The application has been tested on hosting platforms like Render.com and on a Windows Server 2019 environment. Deployment on Windows Server requires specific configuration for WebSocket functionality and URL forwarding.
Results & Impact
- Functionality: Successfully developed a full-stack prototype demonstrating all core features expected of a modern classified ad platform.
- Localization: The platform was designed with the specific context and potential needs of the Malawian online marketplace in mind.
- User Feedback (from early testing):
“Zabwino Deals has truly simplified online buying and selling in Malawi. The platform is easy to use and connects buyers and sellers effectively.”
— Malawian User, Early Platform User
- The application is designed for the backend and frontend components to be deployed and run together in a production environment.
- Specific server configurations (like WebSocket handling and potential URL forwarding/proxying) might be necessary depending on the chosen deployment environment (e.g., Windows Server).
Resources
The complete source code for Zabwino Deals is available on GitHub. Feel free to explore, fork, or contribute to the project.