Skip to content

nosmow/challenge-one-foro-alura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Foro Alura

API Foro Alura

Tabla de Contenido

Descripcion del proyecto

El foro alura es un lugar donde todos los alumnos de la plataforma alura pueden colocar sus preguntas sobre determinados cursos, este mágico lugar está lleno de mucho aprendizaje y de colaboración entre alumnos, profesores y moderadores.

Estado del proyecto

Badge en Desarollo

Funcionalidades

Autenticacion

Login

[POST] https://localhost:8080/login
{
  "username": "string",
  "password": "string"
}

Usuario

Registrar

[POST] https://localhost:8080/users
{
  "name": "string",
  "email": "string",
  "username": "string",
  "password": "string"
}

Actualizar

Los unicos que pueden actualizar los datos de un usuario son el dueño de la cuenta y el adminstrador del sistema.

[PUT] https://localhost:8080/users
{
  "id": 0,
  "name": "string",
  "email": "string",
  "username": "string",
  "password": "string"
}

Eliminar

Los unicos que pueden eliminar un usuario son el dueño de la cuenta y el adminstrador del sistema.

[DELETE] https://localhost:8080/users/{id}

Curso

El unico que tiene permitido registrar, actualizar y eliminar los cursos es el administrador del sistema.

Registrar

[POST] https://localhost:8080/courses
{
  "name": "string",
  "category": "string"
}

Actualizar

[PUT] https://localhost:8080/courses
{
  "id": 0,
  "name": "string",
  "category": "string"
}

Eliminar

[DELETE] https://localhost:8080/courses/{id}

Topico

Registrar

[POST] https://localhost:8080/topics
{
  "title": "string",
  "message": "string",
  "idAuthor": 0,
  "idCourse": 0
}

Listar

Retorna el siguiente formato

[GET] https://localhost:8080/topics
{
      "id": 0,
      "title": "string",
      "message": "string",
      "creatioDate": "LocalDateTime",
      "status": "string",
      "author": "string",
      "course": "string"
    },
	{
      "id": 0,
      "title": "string",
      "message": "string",
      "creationDate": "LocalDateTime",
      "status": "string",
      "author": "string",
      "course": "string"
    }

Listar con respuestas

Retorna el siguiente formato

[GET] https://localhost:8080/topics{id}
{
  "id": 0,
  "title": "string",
  "message": "string",
  "creationDate": "LocalDateTime",
  "status": "string",
  "author": "string",
  "course": "string",
  "response": [
    {
      "id": 0,
      "message": "string",
      "creationDate": "LocalDateTime",
      "author": "string",
      "solution": false
    },
	{
      "id": 0,
      "message": "string",
      "creationDate": "LocalDateTime",
      "author": "string",
      "solution": false
    }
  ]
}

Actualizar

Los unicos que pueden actualizar la información de un topico son el creador y el administrador del sistema.

[PUT] https://localhost:8080/topics
{
  "id": 0,
  "title": "string",
  "message": "string",
  "status": "string",
  "idCourse": 0
}

Eliminar

Los unicos que pueden eliminar un topico son el creador y el administrador del sistema.

[DELETE] https://localhost:8080/topics/{id}

Respuesta

Registrar

[POST] https://localhost:8080/responses
{
  "message": "string",
  "idTopic": 0,
  "idAuthor": 0
}

Actualizar

Los unicos que pueden actualizar la información de una respuesta son el creador y el administrador del sistema.

[PUT] https://localhost:8080/responses
{
  "id": 0,
  "message": "string"
}

Eliminar

Los unicos que pueden eliminar una respuesta son el creador y el administrador del sistema.

[DELETE] https://localhost:8080/responses/{id}

Acceso al proyecto

  1. Descargue la versión 17 de Java JDK.

  2. Descargue el IDE IntelliJ IDEA Community.

  3. Descargue MySQL.

  4. Descargue MySQL Workbench.

  5. Clone el repositoria mediante el siguiente enlace: https://github.com/nosmow/challenge-one-foro-alura.git

  6. Abra MySQL Workbench y ejecute la siguiente linea de codigo para crear la base de datos:

CREATE DATABASE foro_alura;
  1. Abra el proyecto en el IDE IntelliJ IDEA Community.

  2. Dirijase a la carpeta de resources y en **application.properties ** modifique los campos spring.datasource.username y spring.datasource.password reemplazandolos por el usuario y la contraseña que asigno al instalar MySQL en su PC.

  3. Compile y ejecute la aplicación, listo 🙃.

Tecnologias utilizadas

  • Java 17

  • Spring Boot 3

  • MySQL

Dependencias utilizadas

  • Spring Web

  • Spring Boot DevTools

  • Lombok

  • Spring Data JPA

  • Flyway Migration

  • MySQL Driver

  • JPA

  • Hibernate

  • Validation

  • Spring Security

  • JSON Wen Token

  • Spring Doc

Documentacion

  1. Puedes acceder a la documentación de la API gracias a Swagger, solo escribe esta dirección en tu navegador cuando el proyecto se este ejecutando:
http://localhost:8080/swagger-ui/index.html

Pruebas a la API

  1. Puede testear la API desde el programa Insomnia, aquí les dejo un archivo ya configurado para que lo descarguen y luego lo importen en el programa:

Autor


Nosmow

Licencia

Foro Alura está licenciado bajo la licencia MIT

About

API Rest desarrollada con Spring Boot y MySQL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages