GeoStock es una aplicación de escritorio moderna desarrollada en JavaFX para la gestión eficiente de productos, clientes y ventas. Este proyecto utiliza una base de datos MySQL robusta gestionada a través de Docker para garantizar la persistencia de los datos.
Antes de comenzar, asegúrate de tener instalado lo siguiente:
- Java JDK 17 o superior (Se recomienda Java 21).
- Docker y Docker Compose (Para la base de datos).
- JavaFX SDK (Si no utilizas un entorno que lo gestione automáticamente).
- IDE recomendado: IntelliJ IDEA o VS Code.
El proyecto utiliza Docker para levantar un contenedor de MySQL con toda la configuración necesaria.
- Abre una terminal en la carpeta raíz del proyecto.
- Ejecuta el siguiente comando para iniciar el contenedor:
docker-compose up -d
Esto creará automáticamente la base de datos proyecto_integrador y las tablas necesarias (usuarios, clientes, productos, compras). También insertará un usuario administrador por defecto.
- Abre el proyecto en IntelliJ IDEA.
- Asegúrate de que el SDK del proyecto esté configurado en Java 21.
- Librerías: Verifica que las siguientes librerías en la carpeta
libestén añadidas al Project Structure (Ctrl + Shift + Alt + S-> Libraries):- JavaFX SDK JARs.
mysql-connector-j-9.6.0.jar.jfoenix-9.0.10.jar.gson-2.10.1.jar.
- VM Options: Para ejecutar JavaFX, es posible que necesites añadir los módulos en la configuración de ejecución:
--module-path "ruta/a/tu/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml
Una vez que la aplicación esté en marcha, utiliza las siguientes credenciales para entrar:
- Usuario:
admin - Contraseña:
admin123
src/main: Punto de entrada de la aplicación (Main.java).src/controller: Lógica de las vistas.src/model: Clases de datos (POJOs).src/repository: Capa de persistencia (Acceso a base de datos mediante JDBC).src/view: Archivos FXML para la interfaz de usuario.src/styles: Archivo CSS para el estilo visual.src/util: Utilidades (Conexión a BD, manejo de ventanas).db_init.sql: Script SQL para inicializar la base de datos.docker-compose.yml: Configuración del contenedor de MySQL.
- Login y Registro: Autenticación segura de usuarios.
- Gestión de Productos: Añadir, modificar, eliminar y listar inventario.
- Gestión de Clientes: Registro de clientes, control de saldos y género.
- Ventas: Realizar transacciones que descuentan stock y actualizan el saldo del cliente automáticamente.
- Dashboard: Panel visual con estadísticas críticas (productos sin stock, deudas, etc.).
Desarrollado con ❤️ para la gestión inteligente de inventario.