Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

gestion-clientes

Gestión de clientes — Proyecto académico (Programación A)

Java Spring Boot MySQL Bootstrap License

Aplicación full stack para gestionar clientes (alta, listado, edición y baja) mediante una API REST en Spring Boot y una interfaz web ligera en HTML, CSS y JavaScript. Sirve como práctica de integración entre frontend, backend y base de datos relacional.


📋 Información general del proyecto

Nombre del repositorio gestion-clientes
Repositorio en GitHub github.com/saoricoder/gestion-clientes. El slug es independiente de las carpetas internas (api_productos, etc.).
Descripción Sistema de CRUD de clientes con datos: CI, nombres, apellidos y contacto. El backend expone endpoints REST documentables con OpenAPI/Swagger; el frontend consume la API con fetch.

🛠️ Stack tecnológico

Frontend

  • HTML5 — Estructura semántica
  • CSS3 — Estilos personalizados (api_clientes_frontend/css/style.css)
  • JavaScript (vanilla) — Lógica y llamadas HTTP
  • Bootstrap 5.3 — Layout, tabla, modal y componentes UI (CDN)

Backend

  • Java 17
  • Spring Boot 3.5.4 — Web MVC, capa REST
  • Spring Data JPA + Hibernate — Persistencia y mapeo objeto-relacional
  • Jakarta Validation — Validación de entidades en creación/actualización
  • SpringDoc OpenAPI 2 — Documentación interactiva (Swagger UI)

Base de datos y otras herramientas

  • MySQL 8 — Base clientes_db, esquema gestionado con ddl-auto=update
  • Maven — Construcción y dependencias del backend
  • Spring Boot DevTools — Recarga en desarrollo (opcional)

✨ Funcionalidades principales

A nivel frontend

  • Interfaz con Bootstrap (tabla responsive, modal para formulario)
  • Listado de clientes al cargar la página
  • Crear cliente y editar existente desde el mismo modal
  • Eliminar con confirmación del navegador
  • Consumo de API REST (GET, POST, PUT, DELETE) contra http://localhost:8080/api/clientes

A nivel backend

  • CRUD completo de clientes bajo el prefijo /api/clientes
  • Consultas por id (GET /api/clientes/{id}) y por CI (GET /api/clientes/ci/{ci})
  • Validación server-side (@NotBlank, CI único en base de datos)
  • CORS habilitado para orígenes externos (@CrossOrigin(origins = "*")) en desarrollo
  • Documentación OpenAPI en Swagger UI (ruta configurada en application.properties)

🚀 Guía de instalación (entorno local)

Requisitos previos

  • JDK 17 o superior
  • Maven 3.6+ (o usar el wrapper incluido: ./mvnw / mvnw.cmd)
  • MySQL 8 en ejecución, con permisos para crear/usar una base de datos
  • Navegador moderno (para el frontend estático)

Configuración inicial

  1. Crea en MySQL la base de datos (el nombre debe coincidir con la URL JDBC):

    CREATE DATABASE IF NOT EXISTS clientes_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. Edita api_productos/src/main/resources/application.properties y ajusta usuario, contraseña y, si aplica, host/puerto de MySQL:

    spring.datasource.url=jdbc:mysql://localhost:3306/clientes_db?useSSL=false&serverTimezone=UTC
    spring.datasource.username=TU_USUARIO
    spring.datasource.password=TU_CONTRASEÑA

    No subas credenciales reales al repositorio. Usa valores locales o variables de entorno según tu flujo de trabajo.

Pasos para el backend

Desde la raíz del repositorio:

cd api_productos

Compilar y ejecutar (con Maven instalado):

mvn clean install
mvn spring-boot:run

O con el wrapper en Windows:

cd api_productos
mvnw.cmd clean install
mvnw.cmd spring-boot:run

En Linux/macOS:

cd api_productos
./mvnw clean install
./mvnw spring-boot:run

La API queda disponible por defecto en http://localhost:8080.
Documentación Swagger (según application.properties): http://localhost:8080/swagger-ui.html

Pasos para el frontend

El frontend es estático; no requiere npm install. Debes servir los archivos por HTTP (no solo abrir index.html como file://, para evitar problemas de CORS/origen con algunos navegadores).

Opción recomendada con Python 3:

cd api_clientes_frontend
python -m http.server 5500

Abre en el navegador: http://localhost:5500

Si la API no está en localhost:8080, edita la constante API_URL en api_clientes_frontend/js/main.js.

Clonar el repositorio (referencia)

git clone https://github.com/saoricoder/gestion-clientes.git
cd gestion-clientes

📁 Estructura del repositorio

gestion-clientes/               # carpeta al clonar (= slug del repo)
├── api_productos/              # Backend Spring Boot (Maven)
│   └── src/main/java/...       # Controladores, servicios, modelo, repositorio
├── api_clientes_frontend/      # Frontend estático
│   ├── index.html
│   ├── css/style.css
│   └── js/main.js
└── README.md

📄 Licencia

Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE en la raíz del repositorio (si aún no existe, puedes añadir uno estándar desde choosealicense.com).


👤 Autor / contacto

About

Aplicación full stack para gestionar clientes (alta, listado, edición y baja) mediante una API REST en Spring Boot y una interfaz web ligera en HTML, CSS y JavaScript

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages