Skip to content

0xultravioleta/nodoweed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NoDoWeed - Sistema de Trazabilidad de Cannabis

Sistema completo de trazabilidad para cannabis medicinal e industrial, diseñado para Argentina con arquitectura preparada para expansión global.

Arquitectura

nodoweed/
├── contracts/          # Smart contracts (Solidity + Hardhat)
├── backend/            # API REST + Indexador (NestJS + Prisma)
├── frontend/           # Dashboard web (Next.js)
└── infra/              # Infraestructura AWS (Terraform)

Características Principales

Trazabilidad Completa

  • Semilla → Flor → Extracto → Producto Final
  • Registro de genéticas con certificación INASE
  • Clasificación por quimiotipo (1, 2, 3)
  • Lotes con múltiples análisis cromatográficos

Certificación On-Chain

  • 2-3 análisis cromatográficos por lote (hasta 500g)
  • Certificación automática si THC consistente (delta ≤ 1%)
  • %THC promedio certificado en blockchain

Control de Acceso por Quimiotipo

  • Recetas médicas por quimiotipo (1=THC, 2=Mixto, 3=CBD)
  • Pacientes solo acceden a productos autorizados
  • Privacidad: IDs hasheados, sin datos personales on-chain

Preparado para ZK (Futuro)

  • Hooks para integración con Zero Knowledge Proofs
  • Verificación de credenciales internacionales sin datos personales

Contratos Inteligentes

Contrato Descripción
RoleRegistry Gestión de roles (BREEDER, GROWER, LAB, REGULATOR, MEDICAL, ONG)
GeneticsRegistry Registro y aprobación de genéticas
BatchToken ERC-1155 para lotes de productos
LabTestRegistry Resultados cromatográficos
BatchCertificationRegistry Certificación de lotes
PrescriptionRegistry Recetas médicas por quimiotipo
OngDispense Dispensación con control de acceso

Quick Start

1. Contratos

cd contracts
npm install
cp .env.example .env
# Editar .env con tu private key

# Tests
npm run test

# Deploy a Fuji testnet
npm run deploy:fuji

2. Backend

cd backend
npm install
cp .env.example .env
# Editar .env con DATABASE_URL y direcciones de contratos

# Base de datos
npm run db:push
npm run generate

# Desarrollo
npm run dev

3. Frontend

cd frontend
npm install
# Crear .env.local con NEXT_PUBLIC_API_URL

npm run dev

4. Infraestructura (AWS)

cd infra/terraform/envs/dev
cp terraform.tfvars.example terraform.tfvars
# Editar terraform.tfvars

terraform init
terraform plan
terraform apply

Endpoints API

Método Endpoint Descripción
POST /genetics Registrar genética
GET /genetics/:id Ver genética
PATCH /genetics/:id/approve Aprobar genética
POST /batches Crear lote
GET /batches/:id Ver lote con tests
POST /labtests Registrar test
POST /certifications/:batchId Certificar lote
POST /prescriptions Emitir receta
POST /dispense Dispensar producto

Flujo Principal

  1. Breeder registra genética con quimiotipo
  2. Regulador aprueba genética
  3. ONG crea lote de flor/producto
  4. Laboratorio registra 2-3 análisis cromatográficos
  5. Regulador certifica lote (THC promedio)
  6. Médico emite receta con quimiotipo autorizado
  7. ONG dispensa producto (solo quimiotipo autorizado)

Cumplimiento Legal

  • Ley 27.350 (Argentina)
  • No almacena datos médicos sensibles on-chain
  • IDs de pacientes hasheados
  • Preparado para credenciales ZK internacionales

Stack Tecnológico

  • Blockchain: Solidity 0.8.24, OpenZeppelin, Hardhat
  • Backend: NestJS, Prisma, PostgreSQL, ethers.js
  • Frontend: Next.js 14, React Query, TailwindCSS
  • Infra: AWS (ECS Fargate, RDS, CloudFront), Terraform

Licencia

MIT

Contribuir

  1. Fork el repositorio
  2. Crear feature branch
  3. Commit cambios
  4. Push y crear PR

Desarrollado por NoDoWeed ONG 🌿

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors