Skip to content

yecos/archii

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

489 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Archii

Plataforma integral de gestiΓ³n de proyectos de construcciΓ³n

License: MIT Next.js 16 React 19 TypeScript 5 Firebase Tailwind CSS 4 Vercel CI

GestiΓ³n de proyectos, presupuestos, cronogramas, inventarios, equipos y mΓ‘s β€” todo en una sola plataforma con IA integrada y soporte multi-tenant.

Deploy Β· Issues Β· Contributing


CaracterΓ­sticas principales

GestiΓ³n de Proyectos

  • 27 pantallas completas: dashboard, proyectos, tareas, cronograma, presupuesto, facturaciΓ³n, RFI, submittals, punch list, galerΓ­a de fotos, inventario, chat en tiempo real y mΓ‘s.
  • Kanban board interactivo con drag & drop (@dnd-kit).
  • Calendario integrado con vista de eventos y plazos.
  • Seguimiento de tiempo (time tracking) por proyecto y tarea.
  • PuntuaciΓ³n de salud del proyecto calculada automΓ‘ticamente (schedule, budget, quality, safety, RFIs, tasks).

Inteligencia Artificial

  • Asistente IA con panel de chat y acciones rΓ‘pidas (sugerir tareas, analizar presupuesto, planificar cronograma).
  • RAG (Retrieval-Augmented Generation) con contexto del proyecto.
  • CreaciΓ³n de tareas, gastos, proveedores y reuniones por voz o texto natural.
  • Comandos de WhatsApp para gestiΓ³n remota desde el celular.

Multi-Tenant

  • Aislamiento completo de datos por tenant (espacio de trabajo).
  • Roles: Super Admin (creador) y Miembro (invitado).
  • CΓ³digo de invitaciΓ³n para unir miembros al espacio.
  • GestiΓ³n de miembros con badges visuales.

Integraciones

  • OneDrive (equipo compartido + personal) con carpetas automΓ‘ticas por proyecto (planos, fotos, contratos, presupuestos, otros).
  • WhatsApp (envΓ­o, notificaciones, webhook, IA conversacional).
  • Calendly, GitHub, Slack, Jira, Stripe (conectores disponibles).
  • API REST v1 con OpenAPI spec, API keys y exportaciΓ³n CSV/JSON.
  • Webhooks configurables con firma HMAC-SHA256.

Seguridad

  • AutenticaciΓ³n via Firebase Auth (email, Google, Microsoft SSO).
  • EncriptaciΓ³n AES-256-GCM de tokens de Microsoft almacenados en Firestore.
  • Rate limiting por usuario/tenant con ventana deslizante (Firestore + cachΓ© en memoria).
  • SSO y SCIM para aprovisionamiento empresarial.
  • GDPR service con polΓ­ticas de retenciΓ³n y derecho al olvido.
  • CSP (Content Security Policy) configurado para Firebase, Google y Microsoft.
  • AuditorΓ­a de acciones sensibles (audit-logger).

PWA & Offline

  • PWA completa con manifest, service worker, e instalaciΓ³n nativa.
  • CachΓ© inteligente (IndexedDB) con cola de sincronizaciΓ³n offline.
  • Modo claro/oscuro con tema personalizable.

ExportaciΓ³n & Reportes

  • PDF con jsPDF + jsPDF-autotable.
  • Excel/CSV con xlsx.
  • Reportes: visiΓ³n general, financiero, obra, tiempo, equipo.
  • Dashboard BI con esquema exportable.

Tech Stack

CategorΓ­a TecnologΓ­a
Framework Next.js 16 (App Router), React 19, TypeScript 5
Base de datos Firebase Firestore
AutenticaciΓ³n Firebase Auth + SSO
IA Google Gemini (via z-ai-web-dev-sdk)
Estado Zustand, React Context
UI Tailwind CSS 4, Radix UI, shadcn/ui, Framer Motion, Lucide React
GrΓ‘ficos Recharts
Drag & Drop @dnd-kit
PDF jsPDF + jsPDF-autotable
Excel/CSV xlsx
Notificaciones Web Push API, Resend (email), WhatsApp
Almacenamiento OneDrive (Graph API), Firebase Storage
Testing Vitest, Testing Library

Estructura del proyecto

archii/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ layout.tsx          # Layout raΓ­z con metadata PWA
β”‚   β”‚   β”œβ”€β”€ HomeContent.tsx     # Shell de la aplicaciΓ³n
β”‚   β”‚   β”œβ”€β”€ ClientProviders.tsx # Providers de contexto
β”‚   β”‚   └── api/               # ~38 rutas API
β”‚   β”‚       β”œβ”€β”€ ai/             # IA assistant, agent, RAG
β”‚   β”‚       β”œβ”€β”€ collab/         # ColaboraciΓ³n en tiempo real
β”‚   β”‚       β”œβ”€β”€ onedrive/       # Archivos, carpetas, galerΓ­a, bΓΊsqueda
β”‚   β”‚       β”œβ”€β”€ tenants/        # Multi-tenant, OneDrive compartido
β”‚   β”‚       β”œβ”€β”€ v1/             # API REST pΓΊblica (OpenAPI, export)
β”‚   β”‚       β”œβ”€β”€ whatsapp/       # MensajerΓ­a y notificaciones
β”‚   β”‚       β”œβ”€β”€ integrations/   # Conectores terceros
β”‚   β”‚       └── webhooks/       # Webhooks configurables
β”‚   β”œβ”€β”€ screens/                # 27 pantallas de la app
β”‚   β”œβ”€β”€ components/             # Componentes UI organizados por dominio
β”‚   β”‚   β”œβ”€β”€ ui/               # Primitivos shadcn/ui (~30)
β”‚   β”‚   β”œβ”€β”€ layout/            # Sidebar, TopBar, NavegaciΓ³n
β”‚   β”‚   β”œβ”€β”€ modals/            # Modales de entidades
β”‚   β”‚   β”œβ”€β”€ kanban/            # Tablero Kanban
β”‚   β”‚   β”œβ”€β”€ archii/            # IA (chat, quick actions)
β”‚   β”‚   └── reports/           # Componentes de reportes
β”‚   β”œβ”€β”€ hooks/                  # Custom hooks (auth, chat, inventory, etc.)
β”‚   β”œβ”€β”€ lib/                    # ~50 servicios y utilidades
β”‚   β”‚   └── connectors/        # Calendly, GitHub, Slack, Jira, Stripe
β”‚   β”œβ”€β”€ stores/                 # Zustand store
β”‚   β”œβ”€β”€ contexts/               # React Context (AppContext)
β”‚   └── types/                  # Definiciones de tipos
β”œβ”€β”€ sdk/                        # SDK de Archii (TypeScript, 0 dependencias)
β”œβ”€β”€ public/                     # PWA manifest, service worker, Γ­conos
β”œβ”€β”€ firebase.json               # ConfiguraciΓ³n Firebase
β”œβ”€β”€ firestore.rules             # Reglas de seguridad Firestore
β”œβ”€β”€ vitest.config.ts            # ConfiguraciΓ³n de tests
└── LICENSE                     # MIT

Inicio rΓ‘pido

Prerrequisitos

  • Node.js 18+ (o Bun)
  • Un proyecto de Firebase con Firestore habilitado
  • Variables de entorno configuradas (ver .env.example)

InstalaciΓ³n

git clone https://github.com/yecos/archii.git
cd archii
npm install

ConfiguraciΓ³n de variables de entorno

Crea un archivo .env.local basado en los valores necesarios:

# Firebase (requerido)
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=

# Firebase Admin (requerido para server-side)
FIREBASE_PROJECT_ID=
FIREBASE_CLIENT_EMAIL=
FIREBASE_PRIVATE_KEY=

# Microsoft OneDrive (opcional)
AZURE_CLIENT_ID=
AZURE_CLIENT_SECRET=

# Email (opcional - notificaciones por email)
RESEND_API_KEY=
RESEND_FROM_EMAIL=

# VAPID (opcional - push notifications)
NEXT_PUBLIC_VAPID_KEY=
VAPID_PRIVATE_KEY=
VAPID_SUBJECT=

Desarrollo

npm run dev        # Servidor de desarrollo en http://localhost:3000
npm run build      # Build de producciΓ³n
npm run start      # Servidor de producciΓ³n
npm run lint       # Linter
npm run test       # Tests unitarios (Vitest)
npm run test:watch # Tests en modo watch

Arquitectura

Archii sigue una arquitectura SPA dentro de App Router: la aplicaciΓ³n es una sola pΓ‘gina (HomeContent.tsx) que renderiza pantallas de forma condicional segΓΊn la navegaciΓ³n, similar a una app mΓ³vil nativa.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Next.js App Router                 β”‚
β”‚                                                     β”‚
β”‚  layout.tsx ──► ClientProviders ──► AppContext      β”‚
β”‚                                       β”‚              β”‚
β”‚                                  HomeContent.tsx       β”‚
β”‚                                       β”‚              β”‚
β”‚                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€              β”‚
β”‚                        β”‚  Sidebar          β”‚              β”‚
β”‚                        β”‚  TopBar           β”‚              β”‚
β”‚                        β”‚  Screen Router    β”‚              β”‚
β”‚                        β”‚                   β”‚              β”‚
β”‚                        β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚              β”‚
β”‚                        β”‚  β”‚  27 Screens  β”‚  β”‚              β”‚
β”‚                        β”‚  β”‚  90 Componentsβ”‚  β”‚              β”‚
β”‚                        β”‚  β”‚  50 Services β”‚  β”‚              β”‚
β”‚                        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚              β”‚
β”‚                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                                                     β”‚
β”‚  /api/* ──► 38 API Routes (Firebase Admin + Graph API)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flujo de autenticaciΓ³n y tenant

Login (Firebase Auth) ──► SelecciΓ³n de tenant
     β”‚                           β”‚
     β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
     β”‚                    β”‚ 1 tenant:   β”‚
     β”‚                    β”‚ auto-select β”‚
     β”‚                    β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
     β”‚                           β”‚
     β”‚               β”Œβ”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”
     β”‚               β”‚ Crear / Unir β”‚
     β”‚               β”‚ con cΓ³digo   β”‚
     β”‚               β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
     β”‚                       β”‚
     β–Ό                       β–Ό
  Super Admin              Miembro
  (full access)          (acceso limitado)

API REST v1

Archii expone una API REST pΓΊblica en /api/v1/ con soporte para API keys:

Endpoint DescripciΓ³n
GET /api/v1/projects Listar proyectos (paginado)
GET /api/v1/tasks Listar tareas (filtros + paginaciΓ³n)
POST /api/v1/keys Crear API key
DELETE /api/v1/keys/:id Revocar API key
GET /api/v1/health Health check
GET /api/v1/openapi EspecificaciΓ³n OpenAPI 3.1
POST /api/v1/export/csv Exportar datos a CSV
POST /api/v1/export/json Exportar datos a JSON
GET /api/v1/bi/schema Schema BI para anΓ‘lisis

AutenticaciΓ³n: header X-API-Key o Authorization: Bearer <firebase-token>.


SDK

Archii incluye un SDK de TypeScript independiente en sdk/:

npm install archii-sdk
import { ArchiiClient } from 'archii-sdk';

const client = new ArchiiClient({
  apiKey: 'af_live_...',
  tenantId: 'mi-tenant',
});

const projects = await client.projects.list({ page: 1, pageSize: 20 });
const task = await client.tasks.create({
  projectId: 'proj-123',
  title: 'Instalar ventanas',
  priority: 'High',
});

Seguridad

Las reglas de Firestore (firestore.rules) implementan:

  • Lectura/escritura solo para usuarios autenticados.
  • Aislamiento por tenant: los usuarios solo pueden acceder a documentos de sus tenants.
  • Los campos sensibles (tokens MS) se encriptan con AES-256-GCM antes de almacenar.
  • Rate limiting en todos los endpoints pΓΊblicos.
  • Content Security Policy configurado para permitir flujos de auth de Firebase, Google y Microsoft.

Lee SECURITY.md para la polΓ­tica completa y cΓ³mo reportar vulnerabilidades.


Contribuir

Las contribuciones son bienvenidas. Por favor lee CONTRIBUTING.md para los lineamientos.


Licencia

MIT Β© 2026 Archii

About

Construction project management SaaS with AI. 27+ screens, multi-tenant, RAG, WhatsApp integration. Next.js, React, TypeScript, Firebase, Tailwind, shadcn/ui

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors