Una plataforma colaborativa para la edición y ejecución de consultas SQL en tiempo real, construida con tecnologías modernas de frontend y backend.
- React 19 - Biblioteca de interfaz de usuario
- TypeScript - Tipado estático para JavaScript
- Rspack - Bundler moderno y rápido (sucesor de Webpack)
- TailwindCSS - Framework de utilidades CSS
- Monaco Editor - Editor de código avanzado (VS Code editor)
- Lucide React - Iconos modernos
- Motion - Animaciones fluidas
- Bun - Runtime JavaScript ultra-rápido
- tRPC - Framework para APIs type-safe
- Zod - Validación de esquemas TypeScript-first
- TypeScript - Desarrollo backend tipado
- Biome - Linter y formateador ultra-rápido
- Husky - Git hooks automatizados
- Commitizen - Commits convencionales
- Commitlint - Validación de mensajes de commit
sql-collaborator/
├── apps/
│ ├── frontend/ # Aplicación React con Rspack
│ │ ├── src/
│ │ │ ├── components/ # Componentes reutilizables
│ │ │ ├── editor/ # Editor SQL personalizado
│ │ │ ├── hooks/ # Custom hooks de React
│ │ │ ├── pages/ # Páginas de la aplicación
│ │ │ ├── store/ # Estado global
│ │ │ └── utils/ # Utilidades frontend
│ │ ├── biome.json # Configuración Biome
│ │ ├── rspack.config.ts # Configuración Rspack
│ │ └── package.json
│ └── backend/ # API servidor con tRPC
│ ├── src/
│ │ ├── db/ # Configuración base de datos
│ │ ├── sockets/ # WebSockets para colaboración
│ │ ├── trpc/ # Configuración tRPC
│ │ │ └── routers/ # Rutas de la API
│ │ │ ├── connect.ts # Conexiones DB
│ │ │ ├── query.ts # Ejecución consultas
│ │ │ └── schema.ts # Esquemas de datos
│ │ └── utils/ # Utilidades backend
│ └── package.json
├── libs/
│ ├── helpers/ # Funciones auxiliares compartidas
│ └── types/ # Tipos TypeScript compartidos
├── docker/
│ └── docker-compose.yml # Configuración servicios
├── scripts/ # Scripts de automatización
└── package.json # Configuración raíz del monorepo
- Bun >= 1.0.0 (Instalar Bun)
- Node.js >= 18 (alternativo a Bun)
- Git
- Clonar el repositorio:
git clone <url-del-repositorio>
cd sql-collaborator- Instalar dependencias del monorepo:
bun install- Instalar dependencias de las aplicaciones:
# Frontend
cd apps/frontend
bun install
# Backend
cd ../backend
bun install- Configurar Git hooks (recomendado):
bun run precommit- Variables de entorno:
# Crear archivos .env en cada aplicación
cp apps/frontend/.env.example apps/frontend/.env
cp apps/backend/.env.example apps/backend/.envOpción 1: Ejecutar servicios individualmente
# Terminal 1 - Frontend (Puerto 3000)
cd apps/frontend
bun run dev
# Terminal 2 - Backend (Puerto 4000)
cd apps/backend
bun run devOpción 2: Usando Docker (Recomendado)
# Desde la raíz del proyecto
docker-compose -f docker/docker-compose.yml up -d# Frontend
cd apps/frontend
bun run build
# Backend
cd apps/backend
bun run buildbun run precommit- Instala hooks de Gitbun run biome:check- Verifica código con Biomebun run biome:format- Formatea código automáticamentebun run commit- Crear commit convencional
bun run dev- Servidor de desarrollobun run build- Construcción para producciónbun run preview- Vista previa de la buildbun run check- Verificación y formato con Biomebun run format- Formateo de código
bun run dev- Servidor de desarrollo con hot reloadbun run start- Servidor de producciónbun run build- Transpilación TypeScript
- Editor Monaco integrado con sintaxis SQL
- Colaboración en tiempo real mediante WebSockets
- Autocompletado inteligente de SQL
- Resaltado de sintaxis avanzado
- Múltiples bases de datos (MySQL, PostgreSQL, SQLite)
- Conexiones seguras con validación
- Pool de conexiones optimizado
- Ejecución segura de consultas SQL
- Resultados en tiempo real
- Historial de consultas
- Exportación de resultados (CSV, JSON)
- Salas de trabajo compartidas
- Cursores colaborativos en tiempo real
- Chat integrado entre colaboradores
- Control de versiones de consultas
El proyecto utiliza Commitizen para commits estandarizados:
# En lugar de git commit, usar:
bun run commitTipos de commit disponibles:
feat: Nueva funcionalidadfix: Corrección de bugsdocs: Documentaciónstyle: Cambios de formatorefactor: Refactorizacióntest: Testschore: Tareas de mantenimiento
- Biome configurado para linting y formateo automático
- Husky ejecuta verificaciones pre-commit
- Configuración unificada entre frontend y backend
- Crear rama feature:
git checkout -b feature/nueva-funcionalidad- Desarrollar con verificaciones automáticas:
bun run biome:check # Antes de commit- Commit con formato estándar:
bun run commit- Push y Pull Request:
git push origin feature/nueva-funcionalidad# Verificar todo el proyecto
bun run biome:check
# Solo frontend
cd apps/frontend && bun run check
# Formatear automáticamente
bun run biome:format# Verificar que la build funciona
cd apps/frontend && bun run build
cd apps/backend && bun run build- Construir imágenes:
docker-compose -f docker/docker-compose.yml build- Desplegar:
docker-compose -f docker/docker-compose.yml up -d- Preparar archivos:
bun run build # En ambas apps- Variables de entorno de producción:
NODE_ENV=production
DATABASE_URL=<url-base-datos>
JWT_SECRET=<secret-jwt>- Fork del repositorio
- Crear rama feature (
git checkout -b feature/AmazingFeature) - Commit cambios (
bun run commit) - Push a la rama (
git push origin feature/AmazingFeature) - Abrir Pull Request
- Seguir commits convencionales
- Tests para nuevas funcionalidades
- Documentación actualizada
- Code review requerido
- React 19 Documentation
- Rspack Documentation
- tRPC Documentation
- Bun Documentation
- Biome Documentation
- VS Code con extensiones:
- Biome
- TypeScript
- Tailwind CSS IntelliSense
- Postman para testing de APIs
- Docker Desktop para contenedores
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
SQL Collaborator - Desarrollado con ❤️ para la comunidad de desarrolladores
