QueryCraft es un motor SQL personalizado con una interfaz web intuitiva que permite a los usuarios cargar datos estructurados (como archivos CSV), ejecutar comandos SQL, y guardar datos persistentemente sin depender de motores de bases de datos tradicionales.
Este proyecto fue desarrollado como parte de una entrega para la clase de bases de datos y será desplegado en OpenLabs@uninorte para futuros estudiantes y desarrolladores.
- 📄 Cargar bases de datos desde archivos CSV.
- 🧾 Ejecutar comandos SQL como
CREATE,INSERT,SELECT,UPDATE,DELETE. - 💾 Guardar datos de forma persistente en el backend (incluso si se apaga).
- 🧠 Validación y análisis de SQL usando
sqlglot. - 🌐 Interfaz moderna y responsiva con React y CodeMirror.
- Frontend: React, CodeMirror, MUI, Ace Editor
- Backend: Flask (Python), SQLGlot, Google Auth, CORS
- Persistencia: Sistema personalizado de archivos
- Contenedores: Docker y Docker Compose
-
Clona el repositorio y entra a cada carpeta:
git clone <url> cd backend
-
Instala dependencias del backend:
pip install flask flask-cors sqlglot google-auth-oauthlib google-api-python-client python app.py
-
Corre el frontend:
cd ../frontend npm install npm start
El frontend estará disponible en http://localhost:3000 y se comunicará con el backend en http://localhost:5000.
Requiere tener Docker y Docker Compose instalados.
-
En la raíz del proyecto:
docker-compose build docker-compose up
-
Accede a la app:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
- ✅ Interfaz para cargar archivos
.csvy visualizar contenido. - ✅ Editor de SQL con resaltado de sintaxis y detección de errores.
- ✅ Ejecución de comandos SQL sobre datos cargados dinámicamente.
- ✅ Resultados en formato tabla.
- ✅ Persistencia de datos en el servidor.
- 🔐 Integración con Google Auth para futuras versiones.
querycraft/
├── backend/ # Backend en Flask (API + lógica de SQL)
│ ├── app.py
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/ # Frontend en React + CodeMirror
│ ├── src/
│ ├── package.json
│ └── Dockerfile
└── docker-compose.yml # Orquestador de contenedores
Si encuentras errores de ejecución de scripts en PowerShell:
Set-ExecutionPolicy RemoteSigned
# Luego escribe "Yes"Este proyecto fue desarrollado por Sebastián Brito, Isabella Arrieta, Natalia Carpintero y Paula Nuñez para la clase de Bases de Datos en la Universidad del Norte - OpenLabs@uninorte.
Este repositorio está diseñado para facilitar su mantenimiento y extensión. El uso de Docker permite que futuros grupos lo levanten con facilidad. ¡Esperamos que QueryCraft siga creciendo con más funcionalidades como optimizadores, caché, y planes de ejecución!