Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agomezjuan/desafio-integrador-go-ii
Implementación de una API que permite administrar la reserva de turnos para una clínica odontológica.
https://github.com/agomezjuan/desafio-integrador-go-ii
golang
Last synced: 1 day ago
JSON representation
Implementación de una API que permite administrar la reserva de turnos para una clínica odontológica.
- Host: GitHub
- URL: https://github.com/agomezjuan/desafio-integrador-go-ii
- Owner: agomezjuan
- Created: 2024-03-20T23:21:37.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-03-28T01:21:32.000Z (10 months ago)
- Last Synced: 2024-06-21T06:32:23.693Z (7 months ago)
- Topics: golang
- Language: Go
- Homepage:
- Size: 103 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Especialización en Back End III
## Taller de código: Desafío Integrador II
- Presentado por:
- **Alberto E. Gómez Juan** - **[email protected]**
- **Daniela Calderón** - **[email protected]**### Objetivo
A continuación se plantea un desafío integrador que nos permitirá evaluar todos los temas
que hemos visto en la cursada.### Sistema de reserva de turnos
Se desea implementar una API que permita administrar la reserva de turnos para una clínica
odontológica. Esta debe cumplir con los siguientes requerimientos:- **Administración de datos de odontólogos:** listar, agregar, modificar y eliminar odontólogos. Registrar apellido, nombre y matrícula de los mismos. Se desea el desarrollo de un CRUD para la entidad Dentista.
- POST: agregar dentista.
- GET: traer dentista por ID.
- PUT: actualizar dentista.
- PATCH: actualizar un dentista por alguno de sus campos.
- DELETE: eliminar el dentista.- **Administración de datos de los pacientes:** listar, agregar, modificar y eliminar pacientes. De cada uno se almacenan: nombre, apellido, domicilio, DNI y fecha de alta. Se desea el desarrollo de un CRUD para la entidad Paciente.
- POST: agregar paciente.
- GET: traer paciente por ID.
- PUT: actualizar paciente.
- PATCH: actualizar un paciente por alguno de sus campos.
- DELETE: eliminar al paciente.- **Registrar turno:** se tiene que poder permitir asignar a un paciente un turno con un odontólogo a una determinada fecha y hora. Al turno se le debe poder agregar una descripción. Se desea el desarrollo de un CRUD para la entidad Turno.
- POST: agregar turno.
- GET: traer turno por ID.
- PUT: actualizar turno.
- PATCH: actualizar un turno por alguno de sus campos.
- DELETE: eliminar turno.
- POST: agregar turno por DNI del paciente y matrícula del dentista.
- GET: traer turno por DNI del paciente. Debe traer el detalle del turno (Fecha-Hora, descripción, Paciente y Dentista) y el dni deberá ser recibido por QueryParams.- **Seguridad mediante middleware:** se tiene que proveer cierta seguridad al momento de realizar POST, PUT, PATCH y DELETE. Esta seguridad mediante autenticación deberá estar implementada mediante un middleware.
- **Documentación de la API:** se debe proveer de la pertinente documentación de la API mediante la implementación de _Swagger_.
### Requerimientos técnicos
La aplicación debe ser desarrollada en diseño orientado a paquetes:
- **Capa/dominio de entidades de negocio.**
- **Capa/dominio de acceso a datos (Repository).**
- **Capa de acceso a datos (base de datos): es la base de datos de nuestro sistema.**Podrás utilizar cualquier base de datos relacional modelado a través de un modelo entidad-relación, como H2 o MySQL, o no relacional, como MongoDB.
- **Capa/dominio service.**
- **Capa/dominio handler.**[Consigna del desafío]("/docs/CTD-EB3-C14Enunciado_del_desafioII.pdf")
**Fecha de entrega:** 27/03/2024