# 🤝 Contribuir
Rastrum es de código abierto e impulsado por la comunidad. Hay muchas formas de contribuir más allá del código.
## Formas de Contribuir
### 🌿 Código
- **Frontend (SvelteKit 2):** Componentes UI, sincronización offline, interacciones de mapa
- **Backend (Supabase Edge Functions):** Enrutamiento del pipeline IA, pipelines de exportación
- **ML en dispositivo (ONNX):** Cuantización de modelos, paquetes regionales de especies
- **PWA/Capacitor:** Mejoras del wrapper iOS/Android
### 📸 Datos y Curación de Especies
- Enviar observaciones de campo desde México / LATAM
- Validar identificaciones de IA como experto
- Contribuir listas de verificación regionales de especies (formato Darwin Core)
- Agregar campos morfométricos para evidencia ecológica (huellas, excrementos)
### 🌐 Traducciones
- Español ↔ Inglés (UI principal)
- Zapoteco, Mixteco, Náhuatl, Maya, Tsotsil/Tseltal (prioridad)
- Alianza con INALI, lingüística UNAM o CIESAS para lenguas indígenas
### 🔬 Validación Experta
- Solicitar una insignia de experto en tu grupo taxonómico (ornitología, botánica, micología, herpetología, entomología...)
- Revisar la cola de identificación experta
- Contribuir claves regionales de especies y guías de desambiguación
### 📍 PITs y Senderos
- Instalar anclajes QR en tus senderos locales o áreas protegidas
- Crear rutas de senderos de biodiversidad con puntos de ruta
- Documentar listas de verificación de especies locales por segmento de sendero
---
## Configuración de Desarrollo
```bash
git clone https://github.com/ArtemioPadilla/rastrum.git
cd rastrum
npm install
npm run dev # Servidor de desarrollo Astro (sitio de contenido actual)
```
Variables de entorno necesarias (copiar `.env.example`):
```
PUBLIC_SUPABASE_URL=
PUBLIC_SUPABASE_ANON_KEY=
PLANTNET_API_KEY=
```
---
## Proceso de Contribución
1. **Fork** del repositorio y crear una rama de funcionalidad
2. **Firmar** tus commits con DCO (`git commit -s`)
*Usamos DCO (Developer Certificate of Origin), no CLA — sin papeleo, sin ansiedad*
3. **Abrir un PR** con descripción clara e issue vinculado
4. **Pruebas** deben pasar: `npm run build`
5. **Revisión** de un maintainer en un máximo de 7 días
---
## Firma DCO
Agregar a cada commit:
```
Signed-off-by: Tu Nombre <tu_email>
```
O usar `git commit -s` para agregar automáticamente. Al firmar, certificas:
> "Yo escribí este código, o tengo el derecho de enviarlo bajo la licencia de código abierto aplicable a este proyecto."
---
## Licencia
| Componente | Licencia |
|------------|----------|
| Servidor / backend | AGPL-3.0 |
| SDKs cliente | Apache 2.0 |
| Documentación | CC BY 4.0 |
| Datos taxonómicos | CC0 |
| Modelos ML (pequeños) | Apache 2.0 |
---
## Canales de Comunidad
- **GitHub Discussions:** Propuestas de funcionalidades, decisiones arquitectónicas
- **GitHub Issues:** Reportes de bugs, solicitudes de funcionalidades
- **Especificación:** docs/specs/rastrum-v1.md (en GitHub)
---
## Prioridades para Contribuidores Iniciales
Las contribuciones de mayor impacto ahora mismo:
1. **Traducción UI Zapoteco** — primer piloto de lengua indígena
2. **Migración a SvelteKit** — el sitio Astro necesita moverse a SvelteKit para el shell de app
3. **Cola offline Dexie** — bandeja de salida IndexedDB de observaciones + sincronización Supabase
4. **EfficientNet-Lite0 ONNX** — paquete de modelo cuantizado para ID offline
5. **Exportación Darwin Core** — generador de CSV de ocurrencias + Darwin Core Archive