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
| Capa | Tecnología |
|---|---|
| Framework | Next.js 16 (App Router) |
| Lenguaje | TypeScript 5.9 |
| Estilos | Tailwind CSS v4 (CSS-first, sin tailwind.config) |
| UI Base | shadcn/ui + Radix UI |
| Backend / BaaS | Firebase (Firestore, Auth, Storage, Functions v2) |
| Monorepo | Turborepo + pnpm workspaces |
| Validación | Zod |
| Testing | Vitest |
| CI/CD | GitHub Actions |
Módulos del Producto
| Módulo | Descripción |
|---|---|
| Expensas | Períodos de pago, seguimiento de deuda y suspensión de obras por mora |
| Obras | Flujo completo de solicitud, aprobación y seguimiento de obras en propiedades |
| Documentos | Gestión documental con historial de versiones, reemplazos y comentarios de corrección |
| Infracciones | Registro, resolución (resuelta por titular) y desestimación (error o infracción inválida) |
| Historial | Trazabilidad completa de eventos por propiedad y usuario |
Roles de la plataforma
| Rol | Responsabilidades |
|---|---|
| Superadministrador | Crea el espacio, configura el sistema, gestiona roles y delega permisos |
| Administración | Gestiona expensas, pagos, suspensiones y el flujo operativo; no es propietario del sistema |
Primeros Pasos
Prerequisitos
Instalación
# Clonar el repositorio
git clone git@github.com:rappidtech/nidus-platform.git
cd nidus-platform
# Instalar dependencias
pnpm install
Comandos Principales
# 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:
| Token | Nombre | Color base |
|---|---|---|
primary | Verde Bosque | #587469 |
secondary | Arena / Crema | #b99739 |
tertiary | Naranja Ladrillo | #f1571e |
quaternary | Azul Intenso | #7d75df |
El componente
NidusLogoincluye las 24 variantes de marca (6 tipos × 4 colores). Ver showcase en/ui/logode 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/uise importan con@import '../../../packages/ui/src/styles/globals.css'. - Cada app incluye
@sourcepara 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:
- Lint — ESLint en todos los paquetes
- 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
| Recurso | Descripción |
|---|---|
| CONTRIBUTING.md | Setup de Figma MCP, flujo diseño→código, guía de Git para diseñadores |
| WORKFLOW.md | Gestión de tareas Jira, SemVer, convenciones de ramas y PRs |
| apps/documentation | Showcase de componentes y referencias de implementación |
Licencia
Privado — © Rappid Tech. Todos los derechos reservados.