Giter Site home page Giter Site logo

foro's Introduction

Challenge ONE | Java | 🔙🔚 | API REST | CRUD

📖:Descripción:

En este proyecto replicamos a nivel de back end el proceso que realiza un foro, y para eso crearemos una API REST usando Spring. Esta aplicación permite a los usuarios crear, visualizar, actualizar y eliminar tópicos según sus intereses y necesidades. Además, asegura que cada tópico sea único, evitando la duplicidad tanto de título como de mensaje.

⚙ Funcionalidades:

Nuestra API va a centrarse específicamente en los tópicos, y debe permitir a los usuarios:

✔️ Funcionalidad 1: Crear un nuevo tópico La API debe tener un endpoint para el registro de nuevos tópicos y debe aceptar solicitudes POST para el URI /topico.

✍️ Los datos del tópico (título, mensaje, autor y curso) deben enviarse en el cuerpo de la solicitud, en formato JSON.

📣 Reglas del negocio

  • Todos los campos son obligatorios.
  • La API no debe permitir los registros duplicados (que contengan el mismo título y mensaje).

✔️ Funcionalidad 2 Mostrar todos los tópicos creados: La API debe tener un endpoint para la lista de todos los tópicos y debe aceptar solicitudes GET para el URI /topicos.

✍️ Los datos del tópico (título, mensaje, fecha de creación, status, autor y curso) deben devolverse en el cuerpo de la respuesta, en formato JSON.

✔️ Funcionalidad 3 Mostrar un tópico específico: La API debe tener un endpoint para la lista de todos los tópicos y debe aceptar solicitudes GET para el URI /topicos/{id}.

✍️ Los datos del tópico (título, mensaje, fecha de creación, status, autor y curso) deben devolverse en el cuerpo de la respuesta, en formato JSON.

✔️ Funcionalidad 4 Actualizar un tópico: La API debe tener un endpoint para el registro de nuevos tópicos y debe aceptar solicitudes PUT para el URI /topicos/{id}.

👀 Observación

Las mismas reglas de negocio para el registro de un tópico deben ser aplicadas en la actualización del mismo.

✔️ Funcionalidad 5 Eliminar un tópico: La API debe tener un endpoint para la eliminación de tópicos y debe aceptar solicitudes DELETE para el URI /topicos/{id}.

🗄 Plugins:

✔️ Terminado

-Implementar el edpoint /usuario el cual nos permita crear, visualizar, actualizar y eliminar usuarios para poder loguearnos.

🚧 En construcción:

-Implementar el edpoint /respuestas el cual nos permita crear, visualizar, actualizar y eliminar respuestas para nuestros tópicos. -Implementar el edpoint /cursos el cual nos permita crear, visualizar, actualizar y eliminar los cursos para nuestros tópicos.

📣 Autenticación Segura con BCrypt y Token

Para garantizar una autenticación segura en el foro, implementamos el algoritmo BCrypt para el almacenamiento y verificación de contraseñas de usuario.

-Registro y Verificación con BCrypt: Cuando un usuario se registra en nuestra plataforma, su contraseña se cifra utilizando BCrypt antes de almacenarse en nuestra base de datos. Cuando intenta iniciar sesión, la contraseña proporcionada se compara con la versión cifrada usando BCrypt para verificar su validez.

-Generación y Uso del Token: Una vez que el usuario sé auténtica correctamente, se genera un token de autenticación. Debe incluirse en la cabecera de todas las solicitudes subsiguientes realizadas a nuestra API. El token actúa como una forma de identificación y autorización, permitiendo que el usuario acceda a recursos protegidos de manera segura.

java-coffee-cup-logo--v1Requisitos para utilizar:

  • Java
  • MySQL
  • Postman/Insomnia

⚙️ Configurando MySQL:

  • Creando la Base de Datos
CREATE DATABASE foro;

💻 Tecnologías utilizadas:

  • Java
  • IntelIj
  • Spring Boot
  • MySql
  • Hibernate
  • JPA
  • Git

Desarrollado por:


Jose Juan Varela Contreras

foro's People

Contributors

juanvarela666 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.