Este repositorio contiene el desafio de destreza y talento, el cual se desarrollo para el proceso de selección al cargo de Desarrollador Full Stack . - Septiembre 2021.
- Se necesita tener configurado e instalado el entorno de Java:
Se verifica la correcta instalacion de Java verificando su versión con la linea de comando:
java -v
- Se necesita tener configurado e instalado el entorno de NodeJs para ejecutar ReactJs:
Se verifica la correcta instalacion de NodeJs verificando su versión con la linea de comando:
node -v
- Se necesita tener instalado en su un editor de codigo y/o IDE a elección. Se recomienda usar el IDE Intellij IDEA y el editor de código Visual Studio Code por la razon que el proyecto fue realizado en esos entornos.
Para obtener una copia del proyecto lo puedes clonar via linea de comando:
git clone https://github.com/cristianjonhson/SpringBootReactJs.git
Descargando en un archivo comprimido Zip o bien clonando desde su IDE favorito.
Proyecto demostrativo Full Stack: Spring Boot (backend) + React (frontend).
Este repositorio contiene una aplicación de ejemplo que integra un backend en Spring Boot y un frontend en React. Fue desarrollado como ejercicio de selección y referencia para proyectos full‑stack.
- Backend: Spring Boot 2.5.4 (parent), Java 11
- Frontend: React 17.0.2 (componentes funcionales con Hooks), react-scripts 4.0.3
- UI: Bootstrap 5 con cards, avatars generados (ui-avatars API), spinner y alerts
- Estilos: Gradiente animado, glass effect, diseño responsive
- Gestor de dependencias backend: Maven (incluye
mvnw/mvnw.cmd) - Probado con Node.js 16 (recomendado con
nvm) y npm >= 6
Raíz del proyecto (resumen):
Frontend/: Código del cliente Reactpackage.json: dependencias y scripts del frontendpublic/: archivos estáticos (index.html, manifest)src/: código fuente Reactindex.js: punto de entrada (React 17 render)components/: componentes reutilizables (App.js,TitleForm.js,UserCard.js)pages/: páginas (BotonIndex.jscon hooks,NotFound.js)css/: estilos globales (Form.csscon gradiente animado y glass effect)
src/main/java/repositoryfullstack/: código Java del backendConfiguration/: configuraciones de la appController/: controladores REST (ej.UserController.java)Model/: entidades del dominio (Users.java,Company.java)
src/main/resources/application.properties: propiedades de Spring Bootpom.xml: pom principal del proyecto (Spring Boot 2.5.4)mvnw,mvnw.cmd: envoltorios (Maven Wrapper)
- Clonar el repositorio
git clone https://github.com/cristianjonhson/SpringBootReactJs.git
cd SpringBootReactJs- Ejecutar el backend (Spring Boot)
Recomendado: usar el Maven Wrapper incluido:
./mvnw spring-boot:run
# o con Maven instalado
mvn spring-boot:runEl backend por defecto expone los endpoints en http://localhost:8080.
- Ejecutar el frontend (React)
cd Frontend
npm install
npm startEl frontend se ejecuta en http://localhost:3000 por defecto. La ruta usada en el proyecto es http://localhost:3000/BotonIndex.
- Empaquetar el backend para producción
./mvnw clean package
# el artefacto jar queda en target/- Java: Este proyecto usa
java.version= 11 (verpom.xml). - Spring Boot: versión 2.5.4 (parent) — actualizar con cuidado si cambia el ecosistema.
- Node / npm: Las dependencias de
react-scripts@4funcionan bien con Node 16 (recomendado); si usa Node >= 17 puede encontrar errores de OpenSSL. Solución: usarnvm use 16o agregarNODE_OPTIONS=--openssl-legacy-provideren scripts. - React: El proyecto usa componentes funcionales con Hooks (
useState,useEffect,useCallback) para manejo de estado y efectos secundarios. - UI/UX: Interfaz moderna con Bootstrap 5, cards con glass effect, avatares generados dinámicamente y gradiente animado en el fondo.
- CORS: Si necesita probar la API localmente, el frontend usa
axiospara llamadas; asegúrese de que el backend permita CORS si no están en el mismo origen.
- Backend: las dependencias de test están configuradas en el
pom.xml(Spring Boot Starter Test). Ejecutar:
./mvnw test- Frontend: ejecutar tests con:
cd Frontend
npm test- Hacer un fork y un branch para su feature/bugfix.
- Enviar un pull request con descripción clara de cambios.
Cristian Jonhson Alvarez — desarrollador y documentación.
Contacto: https://github.com/cristianjonhson
Este repositorio no incluye un archivo LICENSE; agregue uno si desea declarar una licencia explícita.
- Diciembre 2025:
- README actualizado con estructura completa, comandos y versiones.
- Frontend refactorizado: componentes funcionales con React Hooks (useState, useEffect, useCallback).
- Componente
UserCardextraído para mejor organización del código. - UI mejorada: cards con avatars dinámicos (ui-avatars API), spinner en botón, alerts para errores.
- Estilos modernos: gradiente animado en fondo, glass effect en cards, patrón overlay sutil.
- Manejo robusto de estados: loading, error, cancelación de efectos al desmontar.
.gitignoreactualizado para excluirnode_modules,build,.envy archivos del sistema.- Redirección automática de ruta raíz (
/) a/BotonIndex.
- Interfaz principal: Cards responsivas con avatares y datos de usuario desde API externa.
- Fondo animado: Gradiente sutil con efecto glass en las tarjetas.
- Estados visuales: Spinner durante carga, mensajes de error y estado vacío.