- Java
- Maven - Manejador de dependencias
- Spring Initializer - Generar base del projecto
- Lombok - Codigo automatico
- FlyWay - Migraciones base de datos
- MySQL - Base de datos
- JWT Token - Login authentication
- OpenAPI - Spring documentation
Este es un challenge de un curso dictado por Alura y Oracle Next Education
Esta API permite la comunicación entre front-end y la base de datos. Mediante la implementacionde un CRUD, se pueden crear, obtener, editar y eliminar; usuarios, tópicos, categorías y respuestas. Cada usuario debe acceder mediante su username y password y utilizar el token obtenido para realizar las distintas solicitudes.
- Usuarios
- username y email únicos
- roles: ADMIN, USER, VIEWER
- Tópicos
- vinculada al usuario que la crea y a la categoría que pertenece
- registro de fecha de creación y de última actualización
- status: OPEN, CLOSED, DELETED
- al ser una de sus respuestas marcadas como solución, su status pasa a ser CLOSED
- Respuestas
- vinculada al usuario que la crea y el tópico al que responde
- registro de fecha: fecha de creacion y fecha de útlima actualizacion.
- solo una respuesta por tópico puede ser marcada como SOLUCION.
- Limitar el acceso de los usuarios dependiendo de su rol.