API RESTful moderna para el sitio web de Artiles Photography
- 🔐 API RESTful completa para gestión de contenido
- 📷 Gestión de servicios fotográficos y paquetes
- 🖼️ Galería dinámica con soporte para múltiples álbumes
- 💬 Sistema de testimonios de clientes
- ⚙️ Configuración flexible del sitio
- 📄 Gestión legal (términos y políticas)
- 🌐 CORS configurado para integración frontend
src/main/java/com/artiles_photography_backend/
├── 📁 models/ # Entidades JPA
├── 📁 repositories/ # Acceso a datos
├── 📁 services/ # Lógica de negocio
├── 📁 controllers/ # Endpoints REST
└── 📁 configurations/ # Configuración y inicialización
|
Java 17+ |
Spring Boot 3 |
MySQL |
Maven |
- Spring Data JPA - Persistencia de datos
- Hibernate - ORM
- RESTful APIs - Arquitectura REST
- Maven - Gestión de dependencias
Java 17+
MySQL 8.0+
Maven 3.6+git clone https://github.com/AntRed1/artiles-photography-backend.git
cd artiles-photography-backendCREATE DATABASE artiles_photography;
CREATE USER 'artiles_user'@'localhost' IDENTIFIED BY 'tu_password';
GRANT ALL PRIVILEGES ON artiles_photography.* TO 'artiles_user'@'localhost';
FLUSH PRIVILEGES;# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/artiles_photography
spring.datasource.username=artiles_user
spring.datasource.password=tu_password
spring.jpa.hibernate.ddl-auto=updatemvn clean install
mvn spring-boot:run🎉 ¡Listo! La API estará disponible en http://localhost:8080
| Recurso | Endpoint | Descripción |
|---|---|---|
| 📷 Servicios | /api/photography-services |
Gestión de servicios fotográficos |
| ℹ️ Sobre Nosotros | /api/about-us |
Información de la empresa |
| 📞 Contacto | /api/contact-info |
Datos de contacto |
| 🖼️ Galería | /api/gallery |
Gestión de galería e imágenes |
| 📦 Paquetes | /api/photography-packages |
Paquetes fotográficos |
| ⭐ Testimonios | /api/testimonials |
Opiniones de clientes |
| ⚖️ Legal | /api/legal |
Términos y políticas |
| ⚙️ Configuración | /api/configuration |
Configuraciones del sitio |
GET /api/photography-services
Content-Type: application/jsonPOST /api/testimonials
Content-Type: application/json
{
"clientName": "María García",
"rating": 5,
"comment": "Excelente trabajo, muy profesional",
"serviceType": "Bodas"
}📷 PhotographyService
- id: Long
- name: String
- description: String
- basePrice: BigDecimal
- duration: String
- featured: Boolean📦 PhotographyPackage
- id: Long
- name: String
- description: String
- price: BigDecimal
- features: List<String>
- popular: Boolean🖼️ Gallery
- id: Long
- title: String
- imageUrl: String
- category: String
- featured: Boolean
- uploadDate: LocalDateTime⭐ Testimonial
- id: Long
- clientName: String
- rating: Integer
- comment: String
- serviceType: String
- date: LocalDateTime# Database
DB_HOST=localhost
DB_PORT=3306
DB_NAME=artiles_photography
DB_USERNAME=artiles_user
DB_PASSWORD=your_password
# Server
SERVER_PORT=8080
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173spring.profiles.active=dev
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.com.artiles_photography_backend=DEBUG# Ejecutar todos los tests
mvn test
# Ejecutar tests específicos
mvn test -Dtest=PhotographyServiceControllerTest
# Generar reporte de cobertura
mvn jacoco:reportmvn spring-boot:runmvn clean package
java -jar target/artiles-photography-backend-1.0.0.jarFROM openjdk:17-jdk-slim
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]¡Las contribuciones son bienvenidas! Por favor:
- 🍴 Fork el repositorio
- 🌱 Crea una rama feature (
git checkout -b feature/AmazingFeature) - 💾 Commit tus cambios (
git commit -m 'Add some AmazingFeature') - 📤 Push a la rama (
git push origin feature/AmazingFeature) - 🔄 Abre un Pull Request
- Seguir las convenciones de código Java
- Añadir tests para nuevas funcionalidades
- Actualizar documentación cuando sea necesario
- Usar mensajes de commit descriptivos
- 🔐 Sistema de autenticación JWT
- 📧 Integración con servicio de email
- 🌩️ Subida de imágenes a la nube
- 📊 Analytics y métricas
- 🔍 Búsqueda avanzada en galería
- 📱 Optimización para móviles
- 🌍 Internacionalización (i18n)
¿Tienes preguntas o problemas?
- 📧 Email: Crear issue
- 🐛 Bug Reports: Reportar bug
- 💡 Feature Requests: Solicitar feature
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
Hecho con ❤️ para Artiles Photography Studio
⭐ ¡Dale una estrella si te gusta el proyecto! ⭐