Skip to content

alseloes/BackEndClinicaOdontologica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BackEnd Clinica Odontológica

El proyecto está orientado principlamente al desarrollo BackEnd, sin embargo se ha integrado a un FrontEnd básico para permitir la interacción entre el FrontEnd con el BackEnd.

El proyecto es una aplicación web de gestión para una clínica odontológica. Proporciona funcionalidades para administrar pacientes, odontólogos y turnos. Los usuarios pueden realizar las siguientes acciones:

  • Gestión de Pacientes: Los usuarios con rol de Admin pueden ver la lista de pacientes existentes, agregar nuevos pacientes, actualizar pacientes existentes y eliminar pacientes.
  • Gestión de Odontólogos: Los usuarios con rol de Admin pueden ver la lista de odontólogos disponibles, agregar nuevos odontólogos, actualizar odontólogos existentes y eliminar algún registro de odontólogo.
  • Gestión de Turnos: Los usuarios con cualquier rol (Admin o User) pueden ver la lista de turnos programados, agregar nuevos turnos empleando el Id de pacientes y odontólogos, actualizar y eliminar turnos.

Tecnologías BackEnd utilizadas:

  • Java v17: lenguaje principal del desarrollo BackEnd.
  • Spring Framework (Spring Boot v2.7.15): Utilizado en todo el proyecto para la construcción de la aplicación web
  • Spring Web: Empleado para crear controladores RESTful que gestionan las solicitudes HTTP entrantes y salientes.
  • Spring Data JPA: Empleado para simplificar el acceso a la base de datos mediante el uso de anotaciones. Proporcionar una abstracción de alto nivel sobre la capa de persistencia, facilitando la interacción con la base de datos.
  • Hibernate: marco de mapeo objeto-relacional (ORM) para Java. Proveedor de persistencia para la interacción con la base de datos.
  • H2 Database v2.2.220: Sistema de gestión de bases de datos en memoria utilizado para las pruebas y desarrollo.
  • API RESTful:El proyecto sigue las mejores prácticas para crear una API RESTful permitiendo exponer recursos y operaciones a través de una API HTTP, lo que significa que utiliza solicitudes HTTP (GET, POST, PUT, DELETE) que realizan operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en recursos como pacientes, odontólogos y turnos.
  • Spring Security: Empleado para implementar la seguridad y autenticación, el control de acceso basado en roles y cifrado de contraseñas.
  • JUnit v5.9.3: Se han implementado en las pruebas unitarias en las clases OdontologoServiceTest y PacienteServiceTest, y en las pruebas de integración en IntegracionTurnoTest. Estas pruebas son una práctica de desarrollo orientada a pruebas (Test-Driven Development, TDD) y garantizan la calidad del código.
  • Lombok: Biblioteca que simplifica la creación de clases Java mediante la generación automática de getters, setters, constructores y otros métodos de utilidad. Ayuda a reducir la cantidad de código boilerplate en las clases de entidad.
  • log4j v1.2.17: Empleado para realizar un seguimiento detallado de eventos y mensajes de registro en el desarrollo de la aplicación (logging).

Tecnologías FrontEnd utilizadas:

  • HTML5: El proyecto utiliza HTML para crear la estructura y el contenido.
  • JavaScript (ECMAScript 5 y superior): Se empleó para agregar interactividad, realizar operaciones como enviar solicitudes a través de la API, manipular el DOM y responder a eventos del usuario.
  • Bootstrap v5.3.1: Framework de diseño para mejorar la apariencia y la usabilidad del sitio web.
  • Fetch API: Empleado para realizar el CRUD de solicitudes HTTP a las APIs del servidor, permitiendo obtener, crear, actualizar y eliminar datos de la base de datos.

Estrategias empleadas en el desarrollo de la aplicación web:

  • Manejo de controladores para gestionar las solicitudes HTTP entrantes y procesar las operaciones correspondientes.
  • Mapeo de URL a métodos en los controladores empleando anotaciones como @GetMapping, @PostMapping, @PutMapping y @DeleteMapping, lo que permite realizar acciones específicas en los recursos.
  • Validación de Datos para garantizar que los datos ingresados sean correctos y cumplan con las condiciones necesarias. Por ejemplo, verificando si una matrícula de odontólogo o un DNI de paciente ya existen en el sistema antes de registrarlos nuevamente.
  • Manejo de Excepciones personalizado utilizando clases como BadRequestException y ResourceNotFoundException. Esto ayuda a proporcionar respuestas HTTP adecuadas en caso de errores o excepciones.
  • Manejo de Errores mediante un ControllerAdvice para manejar excepciones globales y proporcionar respuestas adecuadas al cliente en caso de errores.
  • Relaciones entre Entidades como Odontólogos, Pacientes y Turnos. Los odontólogos pueden tener múltiples turnos, y los pacientes también pueden tener varios turnos asignados. Un turno no puede ser registrado sin un paciente y un odontólogo.
  • Se implementaron medidas de seguridad como autenticación y autorización para proteger los datos de los pacientes y odontólogos.
  • DTOs (Data Transfer Objects) para transferir datos entre el FrontEnd y el BackEnd, lo que ayuda a reducir la sobrecarga de transferencia de datos innecesarios.
  • Persistencia de Datos empleando una base de datos embebida H2 para almacenar datos relacionados con odontólogos, pacientes y turnos.
  • Utilización de interfaces de repositorio mediante Spring Data JPA Repositories (OdontologoRepository, PacienteRepository, TurnoRepository, y UsuarioRepository) para gestionar entidades y realizar consultas a la base de datos sin la necesidad de escribir SQL manualmente.
  • Inyección de Dependencias (DI) permitiendo la gestión eficiente de componentes, mejorando la modularidad y la flexibilidad de la aplicación al proporcionar a los objetos las dependencias que requieren, en lugar de crearlas directamente.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors