Skip to content

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 QueryCraft

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.


🚀 ¿Qué puedes hacer con QueryCraft?

  • 📄 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.

🛠️ Tecnologías utilizadas

  • Frontend: React, CodeMirror, MUI, Ace Editor
  • Backend: Flask (Python), SQLGlot, Google Auth, CORS
  • Persistencia: Sistema personalizado de archivos
  • Contenedores: Docker y Docker Compose

🧑‍💻 ¿Cómo correr el proyecto?

✅ Opción 1: Manual (Modo Desarrollo)

  1. Clona el repositorio y entra a cada carpeta:

    git clone <url>
    cd backend
  2. Instala dependencias del backend:

    pip install flask flask-cors sqlglot google-auth-oauthlib google-api-python-client
    python app.py
  3. 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.


🐳 Opción 2: Con Docker (Recomendado para producción/OpenLabs)

Requiere tener Docker y Docker Compose instalados.

  1. En la raíz del proyecto:

    docker-compose build
    docker-compose up
  2. Accede a la app:


🧪 Funcionalidades clave

  • ✅ Interfaz para cargar archivos .csv y 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.

🧱 Estructura del Proyecto

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

⚠️ Nota para usuarios de Windows

Si encuentras errores de ejecución de scripts en PowerShell:

Set-ExecutionPolicy RemoteSigned
# Luego escribe "Yes"

📚 Recursos adicionales


🤝 Créditos

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.


🧑‍🔧 Mantenimiento futuro

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!

About

Motor SQL web para cargar datos, ejecutar consultas y guardar resultados sin depender de bases de datos tradicionales.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages