What is this internship?
¿Qué es esta pasantía?
The Lobees Developer Internship 2026 is a hands-on program. You will build real components, API integrations, and automation workflows on top of the Lobees CRM platform — starting from Day 1.
La Pasantía de Desarrollo Lobees 2026 es un programa práctico. Construirás componentes reales, integraciones de API y flujos de automatización sobre la plataforma Lobees CRM — desde el primer día.
Technologies You'll Use
Tecnologías que Usarás
What's Expected of You
Qué se Espera de Ti
Write real code. This is not a tutorial. You'll ship working features.
Escribe código real. Esto no es un tutorial. Entregarás funcionalidades que funcionan.
Use Git daily. Commit frequently with meaningful messages.
Usa Git a diario. Haz commits frecuentes con mensajes descriptivos.
Read the docs. Use the structure and client guides before writing code.
Lee la documentación. Consulta las guías de estructura y cliente antes de codificar.
Ask early. If blocked for 30+ min, reach out to your team lead.
Consulta temprano. Si estás bloqueado más de 30 min, contacta a tu líder.
Follow patterns. Use the folder structure and naming conventions in this guide.
Sigue los patrones. Usa la estructura de carpetas y convenciones de este documento.
Never expose secrets. API tokens stay in .env files, never committed.
Nunca expongas secretos. Los tokens de API van en .env, nunca en commits.
Environment Setup
Configuración del Entorno
One-time setup before your first commit. Install all of these before Day 1.
Configuración única antes de tu primer commit. Instala todo esto antes del Día 1.
Install Node.js v20 LTS
Instalar Node.js v20 LTS
Download from nodejs.org — choose the LTS version. Verify:
Descarga desde nodejs.org — elige la versión LTS. Verifica:
node --version # v20.x.x
npm --version # 10.x.xBASH
Install Git & Configure Identity
Instalar Git y Configurar Identidad
Download from git-scm.com. Then run:
Descarga desde git-scm.com. Luego ejecuta:
git config --global user.name "Your Name"
git config --global user.email "you@email.com"BASH
Install VSCode + Extensions
Instalar VSCode + Extensiones
Download from code.visualstudio.com. Recommended extensions:
Descarga desde code.visualstudio.com. Extensiones recomendadas:
- ESLint — catches errors as you typedetecta errores mientras escribes
- Prettier — auto-formats on saveformatea al guardar
- GitLens — better Git history in editorhistorial Git en el editor
- REST Client — test APIs directly in VSCodeprueba APIs desde VSCode
- ES7+ React Snippets — faster React boilerplatesnippets rápidos para React
Install Postman
Instalar Postman
Download from postman.com. You'll use this to test Lobees API endpoints before wiring them into code. Alternatives: Insomnia, Bruno.
Descarga desde postman.com. Lo usarás para probar endpoints de Lobees antes de conectarlos al código. Alternativas: Insomnia, Bruno.
GitHub & Your Branch
GitHub y Tu Rama
All your work is pushed to github.com/LobeesTeam/intern26. You create your own branch and work there exclusively. Nothing goes to main.
Todo tu trabajo se sube a github.com/LobeesTeam/intern26. Creas tu propia rama y trabajas allí exclusivamente. Nada va a main.
Clone & Create Your Branch
Clonar y Crear Tu Rama
# 1. Clone the repository
git clone https://github.com/LobeesTeam/intern26.git
cd intern26
# 2. Create YOUR branch (use your actual name, lowercase, hyphens)
git checkout -b your-name # e.g. git checkout -b rahul-sharma
# 3. Install dependencies
npm install
# 4. Start the development server
npm startBASH
Daily Push Routine
Rutina Diaria de Push
# Check your changes
git status
# Stage and commit
git add .
git commit -m "Add LeadList component with Lobees API integration"
# Push to YOUR branch
git push origin your-nameBASH
git push origin main. Work only on your own branch. Never touch another intern's branch.
Nunca ejecutes git push origin main. Trabaja solo en tu rama. Nunca toques la rama de otro pasante.
API Endpoints
Endpoints de API
Authenticate first, then call any endpoint. Full reference at docs.lobees.com/auth/auth.
Primero autentícate, luego llama cualquier endpoint. Referencia completa en docs.lobees.com/auth/auth.
Request Flow — How a Call Travels Through the System
Flujo de Solicitud — Cómo Viaja una Llamada Por el Sistema
POST /api/lead/createlead?token=JWT/api/lead → forwards to leadroute.js/api/lead → redirige a leadroute.jsPOST /createlead → runs [isauth, createlead]POST /createlead → ejecuta [isauth, createlead]req.useraccountdata, calls next()req.useraccountdata, llama next()req.body & req.useraccountdata, calls model + helpersreq.body y req.useraccountdata, llama al modelo y helpers{ status: true, data: newLead, message: "Lead created" }Authentication Header
Encabezado de Autenticación
# Every request needs this header
Authorization: Bearer YOUR_API_TOKEN
# Store your token in .env — never hardcode it
REACT_APP_LOBEES_TOKEN=your_token_here
REACT_APP_LOBEES_BASE_URL=https://api.lobees.comENV
Example API Call (React)
Ejemplo de Llamada API (React)
// services/leadsService.js — all API calls go here, never inside components
const BASE = process.env.REACT_APP_LOBEES_BASE_URL;
const TOKEN = process.env.REACT_APP_LOBEES_TOKEN;
export async function getLeads() {
const res = await fetch(`${BASE}/crm/leads`, {
headers: { 'Authorization': `Bearer ${TOKEN}` }
});
if (!res.ok) throw new Error('Failed to fetch leads');
return res.json();
}JS
Backend Structure
Estructura Backend
The API is a modular Node.js monolith. Each feature lives in its own module. Full guide: docs.lobees.com/guide/structure La API es un monolito modular de Node.js. Cada funcionalidad vive en su propio módulo. Guía completa: docs.lobees.com/guide/structure
Each Module Contains
Cada Módulo Contiene
controller.ts— handles HTTP routesmaneja rutas HTTPservice.ts— business logic lives herela lógica de negocio vive aquíschema.ts— MongoDB model definitiondefinición del modelo MongoDBdto.ts— input validation and typesvalidación de entrada y tipos*.spec.ts— unit testspruebas unitarias
Frontend Structure
Estructura Frontend
React projects follow a strict folder structure. Full guide: docs.lobees.com/guide/client Los proyectos React siguen una estructura de carpetas estricta. Guía completa: docs.lobees.com/guide/client
- If a UI element repeats more than once → move it to
components/ - Si un elemento UI se repite más de una vez → muévelo a
components/ - API logic always lives in
services/— never inline in a component - La lógica de API siempre vive en
services/— nunca dentro de un componente - Shared logic across components → custom hook in
hooks/ - Lógica compartida entre componentes → hook personalizado en
hooks/ - If a component file exceeds 150 lines → it probably needs splitting
- Si un archivo de componente supera 150 líneas → probablemente necesita dividirse
What You'll Build & How
Qué Construirás y Cómo
Two tracks depending on your assignment. You may work on one or both.
Dos tracks según tu asignación. Puedes trabajar en uno o en ambos.
API Track
Track API
- Work inside
modules/folder - Trabaja dentro de la carpeta
modules/ - Controller → Service → Schema pattern
- Patrón Controller → Service → Schema
- Use existing auth middleware (
isauth) - Usa el middleware de autenticación existente (
isauth) - Validate all inputs in DTOs
- Valida todas las entradas en DTOs
- Write unit tests for your service
- Escribe pruebas unitarias para tu servicio
React Track
Track React
- Components in
components/ - Componentes en
components/ - Pages in
pages/ - Páginas en
pages/ - API calls only via
services/ - Llamadas API solo mediante
services/ - Shared logic → custom hook in
hooks/ - Lógica compartida → hook en
hooks/ - No
fetch()inside components — ever - Nunca
fetch()dentro de componentes
n8n Automation Workflows
Flujos de Automatización n8n
Code Submission
Envío de Código
Your commits are how the team tracks your progress. Make them count.
Tus commits son como el equipo sigue tu progreso. Hazlos contar.
# ✅ Good commit messages
"Add LeadList component with Lobees API integration"
"Fix pagination bug in leads table"
"Add n8n workflow for daily lead report automation"
# ❌ Bad commit messages (never use these)
"update" "fix" "wip" "asdf" "changed stuff"GIT
Before Every Push — Checklist
Antes de Cada Push — Lista de Verificación
- ✅ Code runs without errors locally
- ✅ El código funciona sin errores en local
- ✅ No
.envfiles committed (use.env.example) - ✅ No se subieron archivos
.env(usa.env.example) - ✅ No
node_modules/committed - ✅ No se subió
node_modules/ - ✅ Commit message describes what was built
- ✅ El mensaje del commit describe qué se construyó
- ✅ n8n workflows exported to
workflows/folder - ✅ Flujos n8n exportados a la carpeta
workflows/
Task System — JSON Driven
Sistema de Tareas — Basado en JSON
Your tasks are loaded dynamically from JSON. When the team lead updates the file, your intern portal updates automatically — no manual check needed.
Tus tareas se cargan dinámicamente desde JSON. Cuando el líder actualiza el archivo, tu portal de pasante se actualiza automáticamente.
Ground Rules
Reglas Generales
Short, non-negotiable. Follow these and you'll be fine.
Breves y no negociables. Síguelas y todo irá bien.
Read the docs first. guide/structure for backend, guide/client for frontend. Before writing code.
Lee la documentación primero. guide/structure para backend, guide/client para frontend. Antes de codificar.
Your branch only. Never touch main or another intern's branch. Period.
Solo tu rama. Nunca toques main ni la rama de otro pasante. Sin excepciones.
Commit daily with meaningful messages. No vague "update" commits.
Commits diarios con mensajes descriptivos. Nada de "update" o "fix" sin contexto.
No secrets in Git. API tokens and passwords stay in .env — never committed.
Sin secretos en Git. Tokens y contraseñas van en .env — nunca en commits.
API calls in services only. Never write fetch() directly inside a React component.
Llamadas API solo en services. Nunca escribas fetch() directamente dentro de un componente React.
Export n8n workflows. Commit JSON to workflows/ — not left inside n8n editor only.
Exporta flujos n8n. Sube el JSON a workflows/ — no lo dejes solo en el editor.
Test locally before pushing. Run your code first. Don't push broken code.
Prueba en local antes de hacer push. Ejecuta tu código primero. No subas código roto.
Ask early. Stuck for 30+ minutes? Message your team lead. Don't lose a full day.
Consulta temprano. ¿Bloqueado más de 30 min? Escríbele a tu líder. No pierdas todo el día.