Este proyecto es una aplicación de ejemplo desarrollada con Spring Boot que utiliza una base de datos PostgreSQL alojada en supabase. La aplicación gestiona información sobre escuelas, estudiantes y materias.
- Java 8 o superior
- Maven
- PostgreSQL
- Clona este repositorio
- Navega hasta el directorio del proyecto:
cd TallerSpringBoot_Posgres_UPTC
- Ejecuta la aplicación:
mvn spring-boot:run
- Ruta en local sera:
http://localhost:3000/
- Ruta de la aplicacion en la nube:
https://tallerspringboot-posgres-uptc.onrender.com/docs
Nota: En el despliegue en Render, al utilizar el plan gratuito, surge el inconveniente de que el servidor se apaga después de un período de inactividad. Por lo tanto, puede ser necesario esperar unos momentos después de acceder al enlace para que el servidor se reinicie.
La base de datos utilizada en este proyecto es PostgreSQL. La configuración de la base de datos se encuentra en el archivo application.properties
. La base de datos se encuentra alojada en supabase.
Obtiene la lista de todas las escuelas.
Obtiene una escuela por su ID.
Ejemplo de solicitud: GET /schools/1
Crea una nueva escuela.
Ejemplo de solicitud: POST /schools
{
"name": "string",
"address": "string",
"email": "string",
"description": "string"
}
Actualiza una escuela existente por su ID.
Ejemplo de solicitud: PUT /schools/1
{
"name": "string",
"address": "string",
"email": "string",
"description": "string"
}
Elimina una escuela por su ID.
Ejemplo de solicitud: DELETE /schools/1
Obtiene la lista de todos los estudiantes.
Obtiene un estudiante por su ID.
Ejemplo de solicitud: GET /students/1
Crea un nuevo estudiante.
Ejemplo de solicitud: POST /students
{
"name": "string",
"lastName": "string",
"birthDate": "2024-02-25",
"email": "string",
"phone": "string"
}
Actualiza un estudiante existente por su ID.
Ejemplo de solicitud: PUT /students/1
{
"name": "string",
"lastName": "string",
"birthDate": "2024-02-25",
"email": "string",
"phone": "string"
}
Elimina un estudiante por su ID.
Ejemplo de solicitud: DELETE /students/1
Optiene las materias de un estudiante por su ID la escuela a la que pertenecen.
Ejemplo de solicitud: GET /students/1/subjects/school
Agrega una materia a un estudiante por su ID y la materia por su ID. Ejemplo de solicitud: POST /students/1/subjects/1
Elimina una materia de un estudiante por su ID y la materia por su ID. Ejemplo de solicitud: DELETE /students/1/subjects/1
Obtiene la lista de todas las materias. Ejemplo de solicitud: GET /subjects
Obtiene una materia por su ID. Ejemplo de solicitud: GET /subjects/1
Crea una nueva materia, se debe especificar la escuela a la que pertenece. Ejemplo de solicitud: POST /subjects
{
"name": "String",
"description": "String",
"credits": 0
}
Actualiza una materia existente por su ID. Ejemplo de solicitud: PUT /subjects/1
{
"name": "Fisica",
"description": "Escuela de fisica",
"credits": 3
}
Elimina una materia por su ID. Ejemplo de solicitud: DELETE /subjects/1
Obtiene los estudiantes que estan matriculados en una materia por su ID. Ejemplo de solicitud: GET /subjects/1/students
Obtiene las materias de una escuela por su ID. Ejemplo de solicitud: GET /subjects/1/school
Obtiene la lista del directore de escuela. Ejemplo de solicitud: GET /school-director
Obtiene un director de escuela por su ID y muestra la escuela a la que pertenece. Ejemplo de solicitud: GET /school-director/1
Crea un nuevo director de escuela. Ejemplo de solicitud: POST /school-director/1
{
"name": "string",
"lastName": "string",
"birthDate": "2024-02-25"
}
Actualiza un director de escuela existente por su ID. Ejemplo de solicitud: PUT /school-director/1
{
"name": "string",
"lastName": "string",
"birthDate": "2024-02-25"
}
Elimina un director de escuela por su ID. Ejemplo de solicitud: DELETE /school-director/1