{"id":28903422,"url":"https://github.com/luiggi-piero/roles-prueba","last_synced_at":"2026-04-11T11:03:32.868Z","repository":{"id":299657316,"uuid":"1002559501","full_name":"Luiggi-piero/roles-prueba","owner":"Luiggi-piero","description":"Backend  para el manejo de roles","archived":false,"fork":false,"pushed_at":"2025-06-28T21:37:26.000Z","size":32,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-20T09:48:22.374Z","etag":null,"topics":["auth0","java-17","mysql","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Luiggi-piero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-15T18:14:41.000Z","updated_at":"2025-06-28T21:37:29.000Z","dependencies_parsed_at":"2025-07-20T09:36:09.127Z","dependency_job_id":"5d00593d-2179-4f61-b96e-6eeb2f321270","html_url":"https://github.com/Luiggi-piero/roles-prueba","commit_stats":null,"previous_names":["luiggi-piero/roles-prueba"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Luiggi-piero/roles-prueba","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luiggi-piero%2Froles-prueba","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luiggi-piero%2Froles-prueba/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luiggi-piero%2Froles-prueba/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luiggi-piero%2Froles-prueba/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luiggi-piero","download_url":"https://codeload.github.com/Luiggi-piero/roles-prueba/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luiggi-piero%2Froles-prueba/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31677819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth0","java-17","mysql","spring-boot","spring-security"],"created_at":"2025-06-21T12:02:28.231Z","updated_at":"2026-04-11T11:03:32.862Z","avatar_url":"https://github.com/Luiggi-piero.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## \u003cp align=\"center\"\u003e ROLES PRUEBA\u003c/p\u003e\n\nAPI Rest desarrollada en Java con Spring Boot para la gestión de usuarios(login y registro) y roles.\n\n\n## Índice\n\n1. [Funcionalidades](#Funcionalidades)\n2. [Requerimientos previos](#requerimientos-previos)\n3. [Configuración](#configuración)\n4. [Tecnologías utilizadas](#tecnologías-utilizadas)\n5. [Estructura del proyecto](#estructura-del-proyecto)\n6. [Diagrama entidad-relación](#diagrama-entidad-relación)\n\n\n## Funcionalidades\n\n- [x] Autenticación de usuarios con JWT y Spring Security\n  - `POST /login` : Inicia sesión y obtiene un Token JWT.\n\n- [x] Registro de un nuevo usuario\n  - Endpoints\n    * `POST /users/register` : Crea un nuevo usuario con el rol USER\n  - Reglas de negocio\n    * Todos los campos son obligatorios, por lo tanto, es necesario verificar si todos los campos se están ingresando correctamente.\n    * La API no debe permitir el registro de usuarios duplicados (con el mismo correo) y debe tener al menos un número y una letra mayúscula.\n    * Asignar el rol USER por defecto\n\n- [x] Mostrar usuarios\n  - Endpoints\n    * `GET /users` : Muestra todos los usuarios\n  - Reglas de negocio\n    * Retornar los primeros 10 resultados ordenados por id\n    * Devolver todos los atributos menos la contraseña\n    * Obtener la respuesta con paginación para controlar el volumen de los datos\n    * Solo el rol ADMIN puede obtener todos los usuarios\n\n\n## Requerimientos previos\n\n- **JDK: Java 17 o superior**\n- **Gestor de dependencias: Maven 4.0.0**\n- **Spring Boot 3.5.0**\n- **Base de datos MySQ o PostgreSQL (cambiar la configuración de application.properties)**\n\n## Configuración \n\n  1. Clona el repositorio\n     \n     ```bash\n     git clone https://github.com/Luiggi-piero/roles-prueba.git\n     cd roles-prueba\n  2. Configura las variables de entorno para la conexión a la base de datos\n\n     ```yaml\n     spring.application.name=rolesprueba\n     spring.jpa.hibernate.ddl-auto=update\n\n     spring.datasource.url=jdbc:mysql://localhost:3306/rolesprueba?useSSL=false\u0026serverTimezone=UTC\n     #conexion con postgresql\n     #spring.datasource.url=jdbc:postgresql://localhost:5432/rolesprueba\n     #spring.datasource.driver-class-name=org.postgresql.Driver\n\n     spring.datasource.username=${DB_USERNAME}\n     spring.datasource.password=${DB_PASSWORD}\n     api.security.secret=${JWT_SECRET}\n\n  3. Crea un base de datos vacía con el nombre rolesprueba\n  \n  4. Ejecuta el proyecto\n\n  5. La aplicación estará disponible en: http://localhost:8080\n\n\n## Tecnologías utilizadas\n\n- **Spring Boot**: Desarrollo rápido y robusto de aplicaciones.\n- **Spring Security y JWT**: Autenticación segura.\n- **MySQL y postgreSQL**: Sistema de gestión de bases de datos relacional.          \n\n\n## Estructura del proyecto\n\nArquitectura multicapas\n\n      src\n      ├── main\n      │   ├── java/com/kronos/roles-prueba\n      │   │   ├── controller   -\u003e REST controllers.\n      │   │   ├── dto          -\u003e Data transfer object layer.\n      │   │   ├── model        -\u003e Domain feature layer.\n      │   │   ├── repository   -\u003e Data persistence layer.\n      │   │   ├── service      -\u003e Business logic layer.\n      │   │   ├── infra        -\u003e Error handlers, security and docs.\n      │   └── resources\n      │       └── application.properties -\u003e Configuration app.\n      └── \n\n## Diagrama Entidad Relación\n![Image](https://github.com/user-attachments/assets/6245abde-f646-489e-8a19-79ae01cc57ff)\n\n\u003c/br\u003e\n\n\u003e [!IMPORTANT]\n\u003e * Con sql crea los roles: ADMIN, USER y MENTOR en la tabla roles\n\u003e * Cambia a enabled 1 todos los roles\n\u003e * Registra un usuario\n\u003e * Modifica la tabla users_roles: agrega un registro para asignar al usuario creado el rol ADMIN\n\u003e * Agrega la configuración de la bd en application.properties\n\u003e * Para aquellos que no tienen la zona horaria GMT-5 modificar el archivo ...TokenService (para indicar la expiraición del token)\n         \n\n\u003c/br\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/java-white?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white\u0026labelColor=black\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SPRINGBOOT-white?style=for-the-badge\u0026logo=spring\u0026logoColor=white\u0026labelColor=%236DB33F\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/mysql-white?style=for-the-badge\u0026logo=mysql\u0026logoColor=white\u0026labelColor=4169E1\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/postgresql-white?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\u0026labelColor=4169E1\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiggi-piero%2Froles-prueba","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluiggi-piero%2Froles-prueba","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluiggi-piero%2Froles-prueba/lists"}