Sistema integral de gestión documental y seguimiento de clientes para consultores legales, desarrollado con tecnologías web modernas y arquitectura escalable.
El proyecto se encuentra en fase de desarrollo activo con las siguientes funcionalidades implementadas:
- 🔐 Sistema de Autenticación - Login/Register con NextAuth.js
- 👥 Gestión de Usuarios - Registro y administración de usuarios por empresa
- 🏢 Gestión de Empresas - Sistema multi-empresa
- ⚖️ Gestión de Abogados - Registro y administración de profesionales legales
- 👤 Gestión de Clientes - CRUD completo de clientes con información detallada
- 📄 Sistema de Documentos - Upload, gestión y clasificación de documentos
- � Tipos de Documentos - Categorización y clasificación documental
- 📊 Dashboard Administrativo - Panel de control con métricas y datos
- � Sistema de Contacto - Formulario de contacto con notificaciones
- 🗺️ Integración con Google Maps - Componente de mapas para ubicaciones
- � Interfaz Responsiva - Diseño adaptable para todos los dispositivos
- 🧪 Testing Suite - Cobertura de pruebas con Jest y Testing Library
- 🔍 Búsqueda Avanzada - Filtros y búsqueda en documentos
- Next.js 14 - Framework React con App Router
- TypeScript - Tipado estático
- Tailwind CSS - Framework CSS utilitário
- Radix UI - Componentes UI accesibles
- Lucide React - Iconografía moderna
- React Hook Form - Gestión de formularios
- Zod - Validación de esquemas
- Prisma - ORM y query builder
- CockroachDB - Base de datos distribuida
- NextAuth.js - Autenticación
- Bcrypt - Encriptación de contraseñas
- Cloudinary - Gestión y almacenamiento de archivos
- Resend - Servicio de email transaccional
- Google Maps API - Integración de mapas
- Jest - Framework de testing
- Testing Library - Utilidades de testing
- ESLint - Linting de código
- Sonner - Sistema de notificaciones
- usuario: Gestión de usuarios del sistema
- empresa: Empresas/Firmas legales
- abogado: Profesionales legales registrados
- cliente: Base de datos de clientes
- documento: Documentos legales y archivos
- tipodocumento: Clasificación de documentos
- tipocedula: Tipos de identificación
- citaspresentacion: Gestión de citas y presentaciones
- clientedocumento: Relación cliente-documento
/api/auth/[...nextauth] - Autenticación NextAuth
/api/contact - Formulario de contacto
/api/customer - CRUD de clientes
/api/dashboard - Datos del dashboard
/api/files - Gestión de archivos
/api/lawyer - Gestión de abogados
/api/send - Envío de emails
/api/user - Gestión de usuarios
- Node.js 18+
- npm o yarn
- Base de datos CockroachDB (o compatible con PostgreSQL)
- Cuenta de Cloudinary para gestión de archivos
- Clonar el repositorio:
git clone https://github.com/kjarj54/ALGSIconsultores.git
cd ALGSIconsultores- Instalar dependencias:
npm install- Configurar variables de entorno:
# Crear archivo .env.local en la raíz del proyecto
copy .env.example .env.local- Configurar las siguientes variables en
.env.local:
# Base de datos
DATABASE_URL="postgresql://username:password@host:port/database"
# Autenticación
NEXTAUTH_SECRET="tu-secreto-super-seguro"
NEXTAUTH_URL="http://localhost:3000"
# Cloudinary
CLOUDINARY_CLOUD_NAME="tu-cloud-name"
CLOUDINARY_API_KEY="tu-api-key"
CLOUDINARY_API_SECRET="tu-api-secret"
# Resend (Email)
RESEND_API_KEY="tu-resend-api-key"
# Google Maps (opcional)
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="tu-google-maps-key"- Configurar la base de datos:
# Generar cliente de Prisma
npx prisma generate
# Ejecutar migraciones
npx prisma migrate deploy
# (Opcional) Poblar base de datos
npx prisma db seed- Iniciar el servidor de desarrollo:
npm run devLa aplicación estará disponible en http://localhost:3000
ALGSIconsultores/
├── 📁 src/
│ ├── 📁 app/ # App Router de Next.js
│ │ ├── 📁 api/ # API Routes
│ │ │ ├── 📁 auth/ # Autenticación
│ │ │ ├── 📁 contact/ # Contacto
│ │ │ ├── 📁 customer/ # Clientes
│ │ │ ├── 📁 dashboard/ # Dashboard
│ │ │ ├── 📁 files/ # Archivos
│ │ │ ├── 📁 lawyer/ # Abogados
│ │ │ ├── 📁 send/ # Emails
│ │ │ └── 📁 user/ # Usuarios
│ │ ├── 📁 About/ # Página Acerca de
│ │ ├── 📁 Contact/ # Página de Contacto
│ │ ├── 📁 Dashboard/ # Dashboard principal
│ │ ├── 📁 Login/ # Página de login
│ │ ├── 📁 Register/ # Página de registro
│ │ └── 📁 Services/ # Página de servicios
│ ├── 📁 components/ # Componentes reutilizables
│ │ ├── 📁 About/ # Componentes de About
│ │ ├── 📁 Contact/ # Componentes de contacto
│ │ ├── 📁 Dashboard/ # Componentes del dashboard
│ │ ├── 📁 EmailTemplate/ # Templates de email
│ │ ├── 📁 Footer/ # Componentes de footer
│ │ ├── 📁 Header/ # Componentes de header
│ │ ├── 📁 Icons/ # Iconos personalizados
│ │ ├── 📁 LandingPage/ # Componentes de landing
│ │ ├── 📁 Login/ # Componentes de login
│ │ ├── 📁 MapComponent/ # Componentes de mapas
│ │ ├── 📁 Register/ # Componentes de registro
│ │ ├── 📁 Services/ # Componentes de servicios
│ │ ├── 📁 Skeletons/ # Loading skeletons
│ │ ├── 📁 Tabs/ # Componentes de tabs
│ │ └── 📁 ui/ # Componentes UI base
│ ├── 📁 hooks/ # Custom hooks
│ ├── 📁 lib/ # Utilidades y configuraciones
│ │ ├── 📁 utils/ # Funciones utilitarias
│ │ ├── authOptions.ts # Configuración NextAuth
│ │ ├── cloudinary.ts # Configuración Cloudinary
│ │ ├── prisma.ts # Cliente Prisma
│ │ ├── schemas.ts # Esquemas de validación
│ │ └── utils.ts # Utilidades generales
│ └── 📁 types/ # Definiciones de tipos TypeScript
├── 📁 prisma/ # Configuración de base de datos
│ ├── 📁 migrations/ # Migraciones de BD
│ └── schema.prisma # Esquema de base de datos
├── 📁 public/ # Archivos estáticos
├── 📁 __tests__/ # Pruebas unitarias
├── 📁 coverage/ # Reportes de cobertura
└── 📁 lib/ # Configuraciones adicionales
El proyecto incluye una suite completa de pruebas:
# Ejecutar todas las pruebas
npm run test
# Ejecutar pruebas en modo watch
npm run test:watch
# Generar reporte de cobertura
npm run test:coverage- ✅ Componentes de páginas principales
- ✅ Funcionalidades de autenticación
- ✅ Formularios y validaciones
- ✅ Componentes de dashboard
- ✅ Helpers y utilidades
npm run dev # Servidor de desarrollo
npm run build # Build de producción
npm start # Servidor de producción
npm run lint # Análisis de código con ESLint
npm run test # Ejecutar pruebas
npm run test:watch # Pruebas en modo watch
npm run test:coverage # Generar reporte de coberturaPara el correcto funcionamiento del sistema de archivos, asegúrate de:
- Crear una cuenta en Cloudinary
- Obtener las credenciales (Cloud Name, API Key, API Secret)
- Configurar las variables de entorno correspondientes
Para la funcionalidad de mapas:
- Crear un proyecto en Google Cloud Console
- Habilitar Google Maps JavaScript API
- Obtener una API Key
- Configurar la variable
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY
Para el sistema de notificaciones por email:
- Crear una cuenta en Resend
- Obtener la API Key
- Configurar la variable
RESEND_API_KEY
Desarrollado por: kjarj54 - Desarrollador Full Stack
Este proyecto ha sido desarrollado íntegramente por un solo desarrollador, implementando todas las funcionalidades desde el diseño de la base de datos hasta la interfaz de usuario.
- Fork del repositorio
- Crear una rama para la funcionalidad:
git checkout -b feature/nueva-funcionalidad
- Realizar cambios y commits:
git add . git commit -m "feat: descripción de la nueva funcionalidad"
- Ejecutar pruebas:
npm run test npm run lint
- Push y crear Pull Request
- TypeScript: Uso obligatorio para type safety
- ESLint: Seguir las reglas configuradas
- Prettier: Formateo automático de código
- Conventional Commits: Usar formato de commits convencionales
- Testing: Incluir pruebas para nuevas funcionalidades
feat: nueva funcionalidad
fix: corrección de bug
docs: actualización de documentación
style: cambios de estilo/formato
refactor: refactorización de código
test: adición o modificación de pruebas
chore: tareas de mantenimiento
Asegúrate de configurar las siguientes variables en tu plataforma de deployment:
DATABASE_URL=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
RESEND_API_KEY=
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY=# Generar build optimizado
npm run build
# Iniciar servidor de producción
npm start- Cobertura: ~85% de cobertura de código
- Pruebas: 7 suites de pruebas principales
- Componentes Probados: Todas las páginas principales
- Lighthouse Score: 90+ en todas las métricas
- Core Web Vitals: Optimizado para móviles y escritorio
- SEO: Configurado para motores de búsqueda
- ✅ Autenticación robusta con NextAuth.js
- ✅ Encriptación de contraseñas con bcrypt
- ✅ Validación de entrada con Zod
- ✅ Sanitización de datos
- ✅ Headers de seguridad configurados
- ✅ Variables de entorno protegidas
El sistema está completamente optimizado para:
- 📱 Móviles (320px+)
- 📱 Tablets (768px+)
- 💻 Desktop (1024px+)
- 🖥️ Large Screens (1440px+)
- Desarrollador Principal: kjarj54
- Repositorio: GitHub - ALGSI Consultores
Para reportar bugs o solicitar funcionalidades:
- Ir a la sección de Issues
- Usar los templates disponibles
- Proporcionar información detallada
Software Propietario - Todos los derechos reservados © 2025 ALGSI Consultores
Este proyecto es propiedad exclusiva de ALGSI Consultores. El software está protegido por leyes de derechos de autor y tratados internacionales.
Restricciones de Uso:
- ❌ Uso no autorizado está prohibido
- ❌ Copia o distribución sin permiso está prohibida
- ❌ Modificación o ingeniería inversa está prohibida
- ❌ Transferencia a terceros está prohibida
Para más detalles, consulte el archivo LICENSE en la raíz del proyecto.
Desarrollado por: kjarj54 para ALGSI Consultores