Skip to content

MatiasJB95/ForoAlura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Challenge ONE | Java | Back-end | Foro Alura

Este proyecto es una API en Java utilizando Spring Boot para un foro de discusión llamado "Foro Alura". La API permite realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en tópicos y otras entidades relacionadas.

Funcionalidades

Registro de un nuevo tópico

La API cuenta con un endpoint para el registro de nuevos tópicos. Se aceptan solicitudes POST en la URI /topicos. Los datos del tópico, como el título, mensaje, autor y curso, deben enviarse en el cuerpo de la solicitud en formato JSON. La API aplica las siguientes reglas de negocio:

  • Todos los campos son obligatorios.
  • No se permiten registros duplicados con el mismo título y mensaje.

Lista de tópicos

La API cuenta con un endpoint para obtener la lista de todos los tópicos. Se aceptan solicitudes GET en la URI /topicos. Los datos de cada tópico, incluyendo el título, mensaje, fecha de creación, estado, autor y curso, se devuelven en el cuerpo de la respuesta en formato JSON.

Detalle de un tópico

La API cuenta con un endpoint para obtener el detalle de un tópico específico. Se aceptan solicitudes GET en la URI /topicos/{id}, donde {id} representa el identificador único del tópico. Los datos del tópico, como el título, mensaje, fecha de creación, estado, autor y curso, se devuelven en el cuerpo de la respuesta en formato JSON.

Eliminación de un tópico

La API cuenta con un endpoint para eliminar un tópico. Se aceptan solicitudes DELETE en la URI /topicos/{id}, donde {id} representa el identificador único del tópico a eliminar.

Además de estas funcionalidades principales, para completar el foro, sería necesario contar con otros endpoints para crear, listar, actualizar y eliminar otras entidades, como usuarios y respuestas.

Registro de usuarios y autenticación

La API también incluye funcionalidades para el registro de nuevos usuarios y la autenticación de los mismos. Se aceptan solicitudes POST en la URI /usuarios para registrar nuevos usuarios. Los datos del usuario, como el nombre, correo electrónico, nombre de usuario y contraseña, deben enviarse en el cuerpo de la solicitud en formato JSON. La API aplica las siguientes reglas de negocio:

Todos los campos son obligatorios. No se permiten registros duplicados con el mismo correo electrónico o nombre de usuario. La contraseña del usuario se almacena de forma segura utilizando encriptación. Se recomienda utilizar una función de hashing para proteger la contraseña en caso de una posible brecha de seguridad.

La autenticación de los usuarios se realiza mediante el uso de JSON Web Tokens (JWT). Después de que un usuario se registre correctamente e inicie sesión proporcionando sus credenciales (correo electrónico/contraseña), la API generará un JWT que se enviará al cliente. El cliente debe incluir el JWT en los encabezados de las solicitudes posteriores para demostrar que está autenticado y autorizado para acceder a los recursos protegidos.

Tecnologías utilizadas

  • Java: Lenguaje de programación principal utilizado en el desarrollo de la API REST.
  • Spring Boot: Framework de desarrollo de aplicaciones Java que simplifica la creación de aplicaciones basadas en Spring.
  • Controladores (Controllers): Se utilizan para manejar las solicitudes HTTP y definir los puntos finales de la API.
  • Repositorios (Repositories): Se utilizan para interactuar con la base de datos y realizar operaciones CRUD en los modelos de datos.
  • Base de datos: Se utiliza una base de datos (por ejemplo, MySQL, PostgreSQL) para almacenar la información de los tópicos, usuarios, respuestas, etc.

Demo

Readme-Foro.mp4

Configuración y ejecución

Para configurar y ejecutar la aplicación:

  1. Clona el repositorio en tu máquina local.
  2. Configura la base de datos según la base de datos de tu elección.
  3. Actualiza la configuración de la base de datos en el archivo de configuración de la aplicación (application.properties o application.yml).
  4. Ejecuta la aplicación utilizando tu IDE preferido o mediante la línea de comandos.
  5. Realiza las solicitudes HTTP correspondientes utilizando herramientas como Postman o cURL.

🔗 Links

linkedin

https://app.aluracursos.com/emprega-one/profile/matiasss95

cms_files_10224_1673890737Prancheta_9

About

Challenge Back End - ONE Foro Alura

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages