DEV Community

Daniel Ioni
Daniel Ioni

Posted on

🌱 MyZubster: An Open-Source Ecosystem for Smart Agriculture, IoT, and Web3"

🌱 MyZubster: An Open-Source Ecosystem for Smart Agriculture, IoT, and Web3

Live Demo: https://myzubster.com

After weeks of development, I'm excited to announce the launch of MyZubster — an open-source ecosystem that combines smart agriculture, IoT, and Web3 technologies.


🎯 What is MyZubster?

MyZubster is a decentralized platform that enables:

  • 🌿 Urban Gardens Management — Track and manage urban gardens
  • 🌱 Plant & Seed Exchange — Trade plants and seeds with the community
  • 🐾 Animal Tracking — Monitor pets and livestock with GPS and NFC
  • Monero Payments — Secure and private payments with XMR
  • 🏡 Real Estate Tokenization — Tokenize land and property assets

Key Principles:

  • Privacy-first — Monero integration for private transactions
  • Decentralized — No central authority, community-driven
  • Open Source — Transparent and freely available
  • Eco-friendly — Promoting sustainable agriculture

🏗️ Architecture

The ecosystem consists of four main components:

┌─────────────────────────────────────────────────────────────┐
│ Frontend (React) │
│ Port 8082 │
├─────────────────────────────────────────────────────────────┤
│ Nginx Reverse Proxy │
│ Port 443 │
├─────────────────────────────────────────────────────────────┤
│ Gateway (Node.js) │
│ Port 10001 │
├─────────────────────────────────────────────────────────────┤
│ Backend (Node.js) │
│ Port 3010 │
├─────────────────────────────────────────────────────────────┤
│ MongoDB Database │
│ Port 27018 │
└─────────────────────────────────────────────────────────────┘
text

🐳 Docker Containers

Container Image Port
myzubster-gateway myzubster-gateway:latest 10001
myzubster-backend myzubster-backend:latest 3010
myzubster-frontend myzubster-frontend:latest 8082
myzubster-mongodb mongo:6 27018

₿ Monero Integration

MyZubster fully supports Monero (XMR) payments through a wallet RPC.

Payment Flow

  1. Create Order — User initiates a payment
  2. Generate Subaddress — Gateway generates a unique address
  3. Monitor — Gateway checks the balance
  4. Confirm — When payment is received, status is updated

API Endpoints

Endpoint Method Description
/api/payments/create-order POST Create payment order
/api/payments/status/:orderId GET Check payment status
/api/monero/main-balance GET Wallet balance
/api/monero/generate-address POST Generate subaddress
/api/monero/create-multisig POST Create multisig

Example: Create a Payment


bash
curl -X POST https://myzubster.com/api/payments/create-order \
  -H "Content-Type: application/json" \
  -d '{"orderId": "ord_12345", "amount": 0.05, "description": "Purchase"}'

Response:
json

{
  "success": true,
  "orderId": "ord_12345",
  "address": "4A2B...unique...address",
  "amount": 0.05,
  "status": "pending"
}

🛠️ Tech Stack
Component   Technology  Version
Frontend    React + Vite + Tailwind 18.x
Gateway Node.js + Express   20.x
Backend Node.js + Mongoose  20.x
Database    MongoDB 6.x
Container   Docker  Latest
Reverse Proxy   Nginx   Latest
SSL Let's Encrypt   Latest
Process Manager PM2 Latest
Monero  monero-wallet-rpc   0.18.x
🚀 Quick Start
Prerequisites

    VPS with Ubuntu 24.04

    Docker and Docker Compose

    Nginx

    PM2

Installation
bash

# 1. Clone the repository
git clone https://github.com/DanielIoni-creator/myzubster.git
cd myzubster

# 2. Start all services
docker-compose up -d

# 3. Run PM2 for process management
pm2 start ecosystem.config.js
pm2 save

Manual Setup
bash

# MongoDB
docker run -d --name myzubster-mongodb -p 27018:27017 mongo:6

# Backend
docker run -d --name myzubster-backend -p 3010:3009 myzubster-backend:latest

# Gateway
docker run -d --name myzubster-gateway -p 10001:10000 myzubster-gateway:latest

# Frontend
docker run -d --name myzubster-frontend -p 8082:80 myzubster-frontend:latest

📚 Documentation

Full documentation is available on the GitHub Wiki:

    Home

    Architecture

    Gateway

    Monero Integration

    Frontend

    Deployment Guide

    API Documentation

    Contributing Guide

    FAQ

🤝 Contributing

We welcome contributions from the community!
Good First Issues

Check out our Good First Issues to get started.
How to Contribute

    Fork the repository

    Clone your fork

    Create a feature branch

    Commit your changes

    Push to your fork

    Open a Pull Request

bash

git clone https://github.com/your-username/myzubster.git
cd myzubster
git checkout -b feature/your-feature
# Make changes
git commit -m "feat: add your feature"
git push origin feature/your-feature

🔗 Links

    Live Demo

    GitHub Repository

    Wiki

    Gateway Repository

    Frontend Repository

    Issues

    DEV.to Blog

📄 License

This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
📧 Contact

    Author: Daniel Ioni

    GitHub: DanielIoni-creator

    Twitter/X: @MyZubster

    Telegram: @MyZubster

⭐ If you like this project, please give it a ⭐ on GitHub!

Built with ❤️ by Daniel Ioni and the MyZubster Community
Enter fullscreen mode Exit fullscreen mode

Top comments (0)