Lobees · Developer Internship Program 2026
Lobees · Programa de Pasantías para Desarrolladores 2026

Welcome,
Developer.

Bienvenido,
Desarrollador.

Everything you need to understand the platform, set up your environment, write your first commit, and contribute from Day 1.

Todo lo que necesitas para entender la plataforma, configurar tu entorno, escribir tu primer commit y contribuir desde el Día 1.

// 01 — Introduction
// 01 — Introducción

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

⚛️
React
UI Components
Componentes UI
📱
React Native
Mobile Views
Vistas Móviles
🟢
Node.js
Backend API
API Backend
🍃
MongoDB
Database
Base de Datos
n8n
Automation
Automatización

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.


// 02 — Getting Started
// 02 — Primeros Pasos

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.

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
2

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
3

Install VSCode + Extensions

Instalar VSCode + Extensiones

Download from code.visualstudio.com. Recommended extensions:

Descarga desde code.visualstudio.com. Extensiones recomendadas:

  • ESLintcatches errors as you typedetecta errores mientras escribes
  • Prettierauto-formats on saveformatea al guardar
  • GitLensbetter Git history in editorhistorial Git en el editor
  • REST Clienttest APIs directly in VSCodeprueba APIs desde VSCode
  • ES7+ React Snippetsfaster React boilerplatesnippets rápidos para React
4

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.


// 03 — Getting Started
// 03 — Primeros Pasos

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.

🐙 LobeesTeam/intern26 → main
↓ -b
rahul-sharma
↓ -b
sneha-patel
↓ -b
your-name
push to your branchpush a tu rama team lead reviews PRlíder revisa PR merge → mainmerge → 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
🚫 Never run 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.

// 04 — Development & Resources
// 04 — Desarrollo y Recursos

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

Trace a request from the client all the way through the stack and back:
Traza una solicitud desde el cliente a través del stack y de vuelta:
1
HTTP Request
POST /api/lead/createlead?token=JWT
2
index.js
Express router matches /api/lead → forwards to leadroute.js
El router Express empareja /api/lead → redirige a leadroute.js
3
routes/leadroute.js
Matches POST /createlead → runs [isauth, createlead]
Empareja POST /createlead → ejecuta [isauth, createlead]
4
middlewares/isauth.js
Validates JWT, attaches req.useraccountdata, calls next()
Valida JWT, adjunta req.useraccountdata, llama next()
5
controllers/leadcontroller.js
Reads req.body & req.useraccountdata, calls model + helpers
Lee req.body y req.useraccountdata, llama al modelo y helpers
6
models/leadmodel.js
Mongoose saves the document to MongoDB
Mongoose guarda el documento en MongoDB
7
helper/…
Optional: action log, email notification, etc.
Opcional: registro de acciones, notificación por email, etc.
8
JSON Response
{ 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
🔗 Full endpoint reference: docs.lobees.com/auth/auth — check here for all available routes, request bodies, and response shapes. Referencia completa de endpoints: docs.lobees.com/auth/auth — consulta aquí todas las rutas disponibles, cuerpos de solicitud y respuestas.

// 05 — Development & Resources
// 05 — Desarrollo y Recursos

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

lobees-healthcare-api/ ├── modules/ # one folder per feature# una carpeta por funcionalidad │ ├── auth/ │ ├── clinic/ │ ├── patient/ │ ├── appointment/ │ ├── emr/ # medical history# historias clínicas │ ├── billing/ │ ├── notification/ │ └── analytics/ ├── core/ │ ├── middleware/ │ ├── guards/ │ └── error-handling/ └── server.ts

Each Module Contains

Cada Módulo Contiene

  • controller.tshandles HTTP routesmaneja rutas HTTP
  • service.tsbusiness logic lives herela lógica de negocio vive aquí
  • schema.tsMongoDB model definitiondefinición del modelo MongoDB
  • dto.tsinput validation and typesvalidación de entrada y tipos
  • *.spec.tsunit testspruebas unitarias
📘 Read guide/structure before writing a single line of backend code. It explains naming conventions, middleware usage, and error handling patterns. Lee guide/structure antes de escribir una sola línea de código backend. Explica convenciones de nombres, uso de middlewares y patrones de manejo de errores.

// 06 — Development & Resources
// 06 — Desarrollo y Recursos

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

src/ ├── components/ # reusable UI pieces (buttons, cards, modals)# piezas UI reutilizables (botones, tarjetas, modales) │ ├── LeadCard.jsx │ └── LeadTable.jsx ├── pages/ # one file per route / screen# un archivo por ruta / pantalla │ ├── LeadsPage.jsx │ └── DashboardPage.jsx ├── services/ # ALL API calls — never fetch() inside components# TODAS las llamadas API — nunca fetch() dentro de componentes │ └── leadsService.js ├── hooks/ # custom React hooks (useLeads, useFetch…)# hooks personalizados (useLeads, useFetch…) │ └── useLeads.js ├── utils/ # helper functions (formatDate, parseError…)# funciones utilitarias (formatDate, parseError…) └── App.jsx
  • 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
🎨 Read guide/client before writing frontend code. It explains component patterns, state management approach, and routing conventions used across the Lobees platform. Lee guide/client antes de escribir código frontend. Explica patrones de componentes, enfoque de gestión de estado y convenciones de rutas usadas en la plataforma Lobees.

// 07 — Development & Resources
// 07 — Desarrollo y Recursos

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.

BACKEND

API Track

Track API

docs.lobees.com/guide/structure →
  • 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
FRONTEND

React Track

Track React

docs.lobees.com/guide/client →
  • 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

Trigger
Disparador
🪝 Webhook
Process
Proceso
🔄 n8n Node
API Call
🔌 Lobees
Export
Exportar
📄 .json
GitHub
🐙 Commit
Always export workflows as JSON and commit to: workflows/lead-automation.json
Siempre exporta los flujos como JSON y súbelos a: workflows/lead-automation.json

// 08 — Guidelines
// 08 — Lineamientos

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 .env files 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/

// 09 — Guidelines
// 09 — Lineamientos

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.

{ "tasks": [ { "id": "task-001", "title": "Lead List Component", "description": "Build a component that fetches and displays all leads", "api": "GET /crm/leads", "track": "frontend", "difficulty": "beginner" }, { "id": "task-002", "title": "Lead Detail API Endpoint", "description": "Create GET /leads/:id with auth middleware", "api": "GET /crm/leads/:id", "track": "backend", "difficulty": "beginner" } ] }
💡 Tasks are assigned per intern. You'll only see yours when logged into the intern portal. Check it every morning. Las tareas se asignan por pasante. Solo verás las tuyas al iniciar sesión en el portal. Revísalo cada mañana.

// 10 — Guidelines
// 10 — Lineamientos

Ground Rules

Reglas Generales

Short, non-negotiable. Follow these and you'll be fine.

Breves y no negociables. Síguelas y todo irá bien.

01

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.

02

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.

03

Commit daily with meaningful messages. No vague "update" commits.

Commits diarios con mensajes descriptivos. Nada de "update" o "fix" sin contexto.

04

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.

05

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.

06

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.

07

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.

08

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.

🚀 Your branch is your playground — experiment, break things, learn fast. Welcome to the team. Build something great. Tu rama es tu espacio — experimenta, rompe cosas, aprende rápido. Bienvenido al equipo. Construye algo increíble.