Descripción del proyecto
Esta aplicación full stack de gestión de notas es un proyecto completo desarrollado como ejercicio para demostrar habilidades en desarrollo moderno. Construida con Spring Boot en el backend y React en el frontend, la aplicación permite a los usuarios gestionar sus notas de manera eficiente con un sistema avanzado de categorización.
El backend implementa una arquitectura de capas limpia (Controllers, Services, Repositories, Models) con persistencia en base de datos relacional mediante JPA/Hibernate. El frontend es una SPA moderna desarrollada en React con componentes modulares y gestión de estado mediante Context API.
Características principales:
- Creación, edición y eliminación de notas de forma intuitiva
- Sistema de archivado para organizar notas antiguas
- Gestión completa de categorías personalizables
- Filtrado avanzado por categorías y estado
- Autenticación simple con localStorage
- API REST completamente documentada
- Interfaz responsive con Bootstrap
- Soporte para H2 (desarrollo) y PostgreSQL (producción)
- Scripts automatizados para Windows y Linux/macOS
Arquitectura y patrones de diseño
El proyecto sigue una arquitectura hexagonal en el backend, separando claramente las responsabilidades entre capas. Se implementaron patrones como Repository, Service Layer y DTO para mantener un código limpio y mantenible.
En el frontend, se utilizó un enfoque de componentes modulares con React, implementando hooks personalizados para la lógica reutilizable y Context API para el manejo del estado global. La comunicación con el backend se realiza mediante Axios con interceptores para el manejo de errores.
Tecnologías utilizadas
Backend:
- Java 17+ como lenguaje principal
- Spring Boot 3 para el framework web
- Spring Data JPA para la persistencia
- H2 Database para desarrollo local
- PostgreSQL para entorno de producción
- Maven para gestión de dependencias
- Spring Boot DevTools para desarrollo
Frontend:
- React 18 con hooks y context API
- Node.js 18+ como entorno de ejecución
- Axios para comunicación HTTP
- Bootstrap para estilos y componentes
- CSS3 moderno con variables personalizadas
- Responsive design para todos los dispositivos
Herramientas y metodologías:
- Git para control de versiones
- Scripts automatizados multiplataforma
- Documentación detallada y credenciales de prueba
- Arquitectura preparada para contenedores
- Configuración para múltiples entornos