README

README.md

Nidus

Plataforma de gestión para urbanizaciones cerradas

Nidus es una plataforma B2B que centraliza la administración de comunidades residenciales cerradas: expensas, obras, documentación, infracciones y trazabilidad de eventos en un único sistema integrado, accesible desde web y móvil.


Estructura del Monorepo

Este proyecto utiliza Turborepo con pnpm workspaces.

nidus-platform/ ├── apps/ │ ├── documentation/ # Documentación interna y showcase de componentes │ ├── landing/ # Sitio de marketing público │ ├── web-platform/ # Aplicación web principal (B2B) │ └── dashboard/ # Panel de administración └── packages/ ├── ui/ # Sistema de diseño compartido (componentes, tokens, assets) ├── icons/ # Librería de íconos Nidus ├── hooks/ # React hooks reutilizables ├── schemas/ # Esquemas Zod compartidos (validación y tipos) ├── app-services/ # Servicios de aplicación (roles, constantes, encuestas) ├── firebase/ # Instancia Firebase compartida (cliente) ├── firebase-admin-adapter/ # Funciones de servidor: Auth, Firestore, Storage ├── firebase-client-adapter/ # Funciones de cliente: Auth, Firestore, Storage ├── eslint/ # Configuraciones ESLint compartidas ├── tsconfig/ # Configuraciones TypeScript base └── prettier/ # Configuración Prettier compartida

Stack Tecnológico

CapaTecnología
FrameworkNext.js 16 (App Router)
LenguajeTypeScript 5.9
EstilosTailwind CSS v4 (CSS-first, sin tailwind.config)
UI Baseshadcn/ui + Radix UI
Backend / BaaSFirebase (Firestore, Auth, Storage, Functions v2)
MonorepoTurborepo + pnpm workspaces
ValidaciónZod
TestingVitest
CI/CDGitHub Actions

Módulos del Producto

MóduloDescripción
ExpensasPeríodos de pago, seguimiento de deuda y suspensión de obras por mora
ObrasFlujo completo de solicitud, aprobación y seguimiento de obras en propiedades
DocumentosGestión documental con historial de versiones, reemplazos y comentarios de corrección
InfraccionesRegistro, resolución (resuelta por titular) y desestimación (error o infracción inválida)
HistorialTrazabilidad completa de eventos por propiedad y usuario

Roles de la plataforma

RolResponsabilidades
SuperadministradorCrea el espacio, configura el sistema, gestiona roles y delega permisos
AdministraciónGestiona expensas, pagos, suspensiones y el flujo operativo; no es propietario del sistema

Primeros Pasos

Prerequisitos

Instalación

bash
# Clonar el repositorio
git clone git@github.com:rappidtech/nidus-platform.git
cd nidus-platform

# Instalar dependencias
pnpm install

Comandos Principales

bash
# Levantar todas las apps en modo desarrollo
pnpm dev

# Levantar una app específica
pnpm dev --filter=documentation
pnpm dev --filter=web-platform

# Construir todo el monorepo
pnpm build

# Lint en todos los paquetes
pnpm lint

# Chequeo de tipos
pnpm check-types

# Formatear código
pnpm format

Variables de Entorno

Cada app tiene su propio .env.local. Consultá .env.example dentro de cada app para conocer las variables necesarias (Firebase project config, keys, etc.).


Sistema de Diseño

La paleta de colores está definida en packages/ui/src/styles/globals.css como tokens CSS globales:

TokenNombreColor base
primaryVerde Bosque#587469
secondaryArena / Crema#b99739
tertiaryNaranja Ladrillo#f1571e
quaternaryAzul Intenso#7d75df

El componente NidusLogo incluye las 24 variantes de marca (6 tipos × 4 colores). Ver showcase en /ui/logo de la app de documentación.

Principios de CSS en el Monorepo

  • @import 'tailwindcss' solo se declara en el CSS de cada app, nunca en packages.
  • Los tokens del paquete @repo/ui se importan con @import '../../../packages/ui/src/styles/globals.css'.
  • Cada app incluye @source para escanear los componentes del paquete compartido.

Integración Continua

El pipeline de CI (/.github/workflows/ci.yml) se ejecuta automáticamente en cada Pull Request y en pushes a main, dev y test:

  1. Lint — ESLint en todos los paquetes
  2. Build — Compilación completa del monorepo

Los PRs en estado borrador (draft) no activan el CI.


Filosofía de Desarrollo

  • Flujos completos primero: se desarrolla un flujo de punta a punta antes de pasar al siguiente, no pantallas aisladas.
  • Mobile-first: todo componente se diseña primero para móvil (sm:), luego se adapta a tablets (md:) y escritorio (lg:).
  • Máxima reutilización: estilos, componentes, flujos, arquitecturas y servicios se comparten entre todas las apps del monorepo.
  • Separación de responsabilidades: la lógica de negocio vive en servicios y cloud functions, nunca en componentes de UI.

Documentación y Recursos

RecursoDescripción
CONTRIBUTING.mdSetup de Figma MCP, flujo diseño→código, guía de Git para diseñadores
WORKFLOW.mdGestión de tareas Jira, SemVer, convenciones de ramas y PRs
apps/documentationShowcase de componentes y referencias de implementación

Licencia

Privado — © Rappid Tech. Todos los derechos reservados.