# 🌿 Nature In Pots — Ultra Plant Tracker Platform

> Modular, collaborative, end-to-end plant tracking and pricing platform with QR+barcode IDs, propagation logs, resale tools, and role-based management.

---

## 🧩 Overview

This is a full-feature, plugin-driven Flask 2+ web application for managing and tracking plant ownership, propagation, pricing, and growth. It supports dynamic plant attributes, collaboration groups, trade logs, QR/barcode labeling, resale workflows, offline sync, moderator tools, and future AI/ML modules.

Built for hobbyists, businesses, breeders, and community gardens.

---

## 🚀 Core Features

### 🌱 Plant Profiles
- Add, edit, and log plants with full propagation and ownership history
- Each plant is assigned a permanent, scannable **QR code** and **barcode**
- Plants can be marked as `Public`, `Unlisted`, or `Folder-only`
- All pricing, logs, and lineage are tied to a plant ID and user

### 🧾 Grow Logs
- Add logs with images, notes, and growth metrics
- Track success/failure events, mutation events, pest/disease sightings
- Link logs to substrate recipes and fertilizers

### 🔗 Verified Lineage Tracking
- Lineage links are created by the new owner
- Parent plant's owner must **approve** the linkage
- Verified lineage is marked with a badge and shown in plant lineage tree
- Pending links are visible only to the creator

### 💰 Pricing Logic
- Only the current owner and admins can see pricing
- On transfer, original price is retained but hidden from the buyer
- Buyer must submit their own price for tracking resale data
- Admins see full price history; mods and others do not

### 🧪 Substrate + Fertilizer Tracking
- Track custom mixes by ingredient (e.g., “Fine Pumice”, “Large Bark”)
- Store cost per ingredient and auto-calculate total mix cost
- Recipes can be reused across plants
- Fertilizer schedules can be attached to logs and outcomes tracked

### 📦 Shipping Tracker
- When a plant is sold, sellers can add:
  - Carrier, tracking number, est. delivery date
- Ownership updates post buyer confirmation
- Shipping logs are attached to the plant transfer log

### 📁 Plant Folders
- Organize plants into folders (e.g., “For Sale”, “2025 Spring Batch”)
- Each folder gets its own QR code:
  `https://domain.com/{username}/folder/{id}|{slug}`
- Folders can be public, private, or unlisted

---

## 🧍‍♂️ Users, Roles, and Groups

### 👤 User Roles
- **User** – default
- **Moderator** – can manage flags, notes
- **Admin** – full backend, plugin, pricing, banning control
- Roles are extensible via admin UI

### 🛡 Moderator Panel
- View and resolve reports
- Add private notes to users or plants (e.g., warnings, suspicion)
- Ban users
  - Banned users' plants become read-only
  - Cannot add new plants
  - Buyers can request transfer via email approval from banned seller

### 👥 Collaboration Groups
- Users can form groups to share:
  - Logs
  - Images
  - Pricing (opt-in)
- Groups have role-based permissions (manager, editor, viewer)
- Useful for stores, teams, or shared collections

---

## 🏷️ Labeling System: QR + Barcode

### QR Code
- Generated on server after initial sync
- Unique to plant, never changes
- SVG and PNG available

### Barcode Fallback
- CODE-128 format
- If data too long, split into stacked barcodes
- Same encoded info: plant ID, owner ID, visibility, timestamp
- Printable as label from dashboard

---

## 🔐 Permissions Matrix

| Feature                  | Owner | Group Member | Moderator | Admin |
|--------------------------|-------|---------------|-----------|--------|
| View Logs                | ✅    | ✅ (if shared) | ✅        | ✅     |
| Edit Logs                | ✅    | 🔁*           | 🚫        | ✅     |
| View Pricing             | ✅    | ✅ (opt-in)    | 🚫        | ✅     |
| Ban User / Flag Review   | 🚫    | 🚫            | ✅        | ✅     |
| Approve Lineage          | 🚫    | 🚫            | 🚫        | ✅     |
| Confirm Lineage          | ✅    | 🚫            | 🚫        | ✅     |

🔁* if granted by group manager

---

## 🌍 Offline Sync (PWA)
- Full add/log/edit possible offline
- Sync queue uploads on connection
- QR/barcodes generated **after** server confirms sync
- Client-side validation before queue

---

## 🧠 Smart Tools

### ⭐️ User Reputation System
- Users rated after trades (accuracy, responsiveness, helpfulness)
- “Trusted Grower” tag auto-assigned above threshold
- Can be revoked via vote or admin action

### 🌿 Inter-Plant Comparison
- Timeline comparison for growth, size, or log outcomes
- Side-by-side charts and event overlays

---

## 🔧 Admin & Dev Tools

### 📤 Seed Data Generator
- Seeds with common aroids, herbs, and test users
- Covers full range of roles, plant types, and edge cases

### 🗂 Plugin System
- CLI & plugin discovery system
- Admin can toggle plugins
- Plugin types: CLI, UI Panel, API extension, webhook, scheduler

### 🗃 Data Export / Disaster Recovery
- Export: SQL dump, file archive, JSON profile
- Restore: Admin-initiated rollback or full upload restore

---

## 🛣 API System

### REST & GraphQL APIs
- REST: OpenAPI-documented endpoints
- GraphQL: Advanced multi-entity queries
- JWT-secured
- Follows role-based access rules

---

## 🌐 Internationalization
- Flask-Babel integration
- Language switcher in UI
- Community-managed translation interface (admin toggled)

---

## 📅 Future Enhancements

- 🧠 AI Journal Assistant (log suggestions, summarization)
- 📆 Calendar View for logs/reminders
- 🧰 Visual ERD Generator Tool
- 🛒 Live Auctions Plugin (for curated resale events)

---

## 🧾 License & Contribution

This project is part of **Nature In Pots** under **High Thyme Ventures**.

Please contact the repository owner for collaboration, plugin submission, or access requests.

