Skip to content

Twinkym/Restaurante

Repository files navigation

🍽️ Proyecto Restaurante v1.0

Aplicación de gestión integral para restaurantes desarrollada en Java con Spring Boot. Permite administrar productos, categorias, mesas, pedidos y clientes de forma sencilla e intuitiva.

📌 Descripción General

RestauranteApp es un sistema web diseñado para facilitar la administración de un restaurante. Permite gestionar diferentes objetos integrando buenas prácticas de desarrollo para garantizar escalabilidad y mantenibilidad.

🛠️ Tecnologías y Frameworks Utilizados

  Componente                Herramientas/Framework                

Lenguaje: Java 24 Framework Backend: Spring Boot 3.5.0 ORM: Spring Data JPA + Hibernate 6 Monitor de Plantillas: Thymeleaf Estilos y Diseño: Bootstrap CSS Utilidades: Lombok, Fragments Base de Datos: MySQL 8.0+/H2(dev) Gestión de Dependencias: Apache Maven IDE Recomendado: IntelliJ IDEA Control de Versiones: Git+GitHub Gestión de Tareas: Trello / Jira / Notion Herramientas Opcionales: Figma(diseño), Canva(logo)

PASOS A SEGUIR

  1. Crear un repositorio de GitHub por grupo
  2. Crear entidades y atributos
  3. Repositorios
  4. Controladores
  5. HTMLs: list, detalle, formulario
  6. Asociaciones ManyToOne entre entidades (parte más propensa a problemas)
  7. Estilización CSS con Bootstrap CSS
  8. Crear logo con canva o un generator de logos

Plantear dividir estas tareas según metodología ágil en una herramienta de gestión de proyectos.

Repositorio:

  • Lo crea un usuario del grupo: github.com/user1/grupo1_proyecto_java (público)
  • El admin invita como colaboradores a su equipo
  • El resto lo clona
  • Opción 1: hacer pull y commit y push todos los días/semanas a la rama main
  • Opción 2: cada usuario crea una rama para sus desarrollos
  • Opción 3: fork

Recomendación: Opción 1 y eventualmente opción 2.

Consejo: todos los días hacer pull y si nuestros cambios están bien hacer un commit y push

Requisitos:

  • Cada uno es responsable de hacer pull commit y push de su código funcional
  • Actualizar el progreso de las tareas en la herramienta de gestión de proyectos (Trello o Jira o Notion o GitHub Issues)

PRESENTACIÓN PROYECTOS

02/07/2025

Cada grupo presenta el proyecto en 15 minutos.

  • Nombre y logo del proyecto
  • Introducción y objetivos y problema que resuelve
  • Equipo: presentarse cada uno brevemente pero dando una pincelada de la experiencia o cursos anteriores.
  • Tecnologías empleadas: Java 24, IntelliJ IDEA, Spring Boot, HTML, Bootstrap CSS, Thymeleaf, H2 o MySQL, Git y GitHub, Reuniones diarias o semanales, gestión de proyectos con Trello-Jira-Notion
  • Mostrar el repositorio de GitHub, no hace falta explicar el código
  • Diseños Figma (opcional)
  • Demo:
    • Home
    • Listado de Algo (Productos, Tareas, Proyectos, Libros...)
    • Detalle de Algo (Producto, Tarea, Libro...)
    • Formulario de Algo (formulario para crear un producto)
    • Login y Registro
  • Conclusiones e ideas futuras
    • Trabajar en equipo de forma colaborativa
    • Aprender Java, Spring Boot, crear aplicación full stack web desde cero
    • Aprender a crear modelos de datos esquemas de base de datos
    • Ideas futuras: capa seguridad, distintos roles de usuario, agregar X funcionalidades, dashboard de compras realizadas

📷 Capturas De Pantalla

  • Aplicación de gestión integral para restaurantes desarrollada con Spring Boot.
  • Home Version 1.0.0, Navbar (Logo, Titulo, Menú), Body, Footer. captura pagina Home proyecto gestor restaurante

Muestra de la Home con carrusel funcional. Captura-Carrousel-y-fragments-100%

  • La imagen me ha quedado algo rara al cambiar de monitor, si da tiempo la arreglaré.

Home, tamaño menu y logo arreglados, carrusel width normalizado con height.

  • Captura de la pagina del formulario para crear una nueva reserva. CAPTURA-FORMULARIO-CREAR-NUEVA-RESERVA

  • Pagina que muestra la lista de reservas confimadas. Captura-gestionreservas

  • Imagen de la pagina home con la implementación de logotipo, titulo, menu-circular, carrusel y footer, los elementos título, menu-circular se cargan dinámicamente mediante fragments,

  • las imágenes desde la carpeta img dentro de static resources, siguiente captura corrección de posiciones, tamaños de imágenes y opcional funcionalidad de los botones.

  • Diagrama relacional. Diagram-RestauranteDB

📁 Estructura De Proyectos

img_2.png

⚙️ Configuración Del Entorno

  1. Prerrequisitos * JDK 24 O SUPERIOR * Maven 3.8+ * MySQL 8.x * IntelliJ IDEA (recomendado)

A continuación deben colocarse las capturas que muestren las diferentes pantallas y su contenido

Descripción General

RestauranteApp es un sistema web diseñado para facilitar la administración de un restaurante, cubriendo áreas como la gestión de productos, categorías, pedidos, mesas y clientes. La aplicación está construida siguiendo prácticas modernas de desarrollo de software para garantizar un código limpio, mantenible y escalable.


Tecnologías Utilizadas

  • Lenguaje: Java 24
  • Framework Principal: Spring Boot 3.5.0
  • Gestión de Dependencias: Apache Maven
  • Base de Datos: MySQL 8.0+
  • Capa de Persistencia: Spring Data JPA / Hibernate 6
  • Motor de plantillas (Frontend): Thymeleaf
  • Utilidades: Lombok

Configuración del Entorno de Desarrollo

Para ejecutar este proyecto en un entorno local, sigue estos pasos:

1. Prerrequisitos

  • JDK 24 O SUPERIOR.
  • Apache Maven 3.8 o superior.
  • Un servidor de MySQL 8 en ejecución.

2. Configuración de la Base de Datos

El sistema está diseñado para funcionar con perfiles de Spring. El perfil por defecto es dev.

  1. Abre el fichero `src/main/resources/application-dev.properties
  2. Modifica las siguientes propiedades para que coincidan con tu configuración local de MySQL.
    • spring.datasource.url: Asegúrate de que el nombre de la base de datos y el puerto son correctos.
    • La base de datos se creará si no existe (?createDatabaseIfNotExist=true).
    • spring.datasource.username: Tu usuario de MySQL (normalmente root).
    • spring.datasource.password: Tu contraseña de MySQL.

3. Ejecutar la Aplicación

Puedes ejecutar la aplicación de dos maneras:

  • Desde tu IDE (Intellij/Eclipse): Ejecuta la clase principal RestauranteApplication.java.
  • Desde La línea de comandos: Navega a la raíz del proyecto y ejecuta el siguiente comando Maven:
    mvn spring-boot:run

La aplicación estará disponible en http://localhost:8080.


Arquitectura de la Base de Datos

La gestión del esquema y los datos da la base de datos varía según el entorno, controlado por los perfiles de spring.

Modo de Desarrollo (dev)

  • spring.jpa.hibernate.ddl-auto=create-drop Esta configuración asegura que la base de datos se borra y se recrea completamente en cada reinicio de la aplicación.
  • Poblado de Datos: Tras la creación del esquema, el fichero src/main/resources/data.sql se ejecuta para poblar las tablas con un conjunto de datos de prueba limpios.
  • Propósito: Garantizar un entorno predecible y libre de conflictos de datos para agilizar el desarrollo y las pruebas.

Modo de producción (prod)

  • spring.jpa.hibernate.ddl-auto=validate: esta es la configuración de seguridad para producción. Spring no modifica el esquema. Simplemente, comprueba si el esquema de la BD es compatible con las entidades JPA. Si no lo es, la aplicación fallará al arrancar para prevenir inconsistencias.
  • Gestión de Cambios: En un entorno de producción, cualquier cambio de la base de datos (ej. añadir una tabla o columna)
  • debe gestionarse a traves de una herramienta de migración como Flyway o Liquibase. Esto asegura un control de versiones auditable y seguro de la base de datos.

Estructura del Proyecto

El proyecto sigue la estructura estándar de Maven/Spring Boot:

  • src/main/java/com/grupo4/restaurante: Código fuente principal de Java.
    • controllers: Controladores web (Spring MVC).
    • entities: Entidades de la base de datos (JPA).
    • repositories: Repositorios de datos (Spring Data JPA).
    • seeder: (Opcional) Lógica para el poblado de datos programático.
    • services: Lógica de negocio.
  • src/main/resources: Ficheros de configuración y recursos estáticos.
    • static: CSS, JavaScript, imágenes.
    • templates: Plantillas HTML de thymeleaf.
    • applicaiton.propeties: Ficheros de configuración de Spring.
  • pom.xml: Fichero de configuración del proyecto Maven.

About

Crear proyecto de gestión de restaurantes, con entidades.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •