Este proyecto es una demostración de una API construida con Laravel 11, que incluye:
- Gestión de Posts y Usuarios: CRUD completo.
- Notificaciones Automáticas por Email: Envío de correos electrónicos a los administradores cuando se crea un nuevo post.
- Integración con Brave SMTP: Configuración de un servicio SMTP personalizado para el envío de correos.
- Pruebas Unitarias: Validación automatizada de las funcionalidades clave, incluidas las notificaciones.
- CRUD de Usuarios: Permite crear, leer, actualizar y eliminar usuarios.
- CRUD de Posts: Similar al de usuarios, pero incluye notificaciones por correo al administrador.
- Se genera un correo automático para los administradores cada vez que se crea un post.
- Plantilla del Correo:
- Asunto: Nuevo Post Publicado.
- Cuerpo: Detalles del post (título y creador).
- Se utilizó Brave SMTP para gestionar el envío de correos.
- La configuración incluye:
- Servidor SMTP:
smtp-relay.brave.com. - Puerto:
587. - Autenticación habilitada.
- Importante configura un email a el usuario admin para que le prueba del smtp sea corecta
- Servidor SMTP:
php artisan service:init: Comando para inicializar el servicio.- Crea las tablas necesarias (por ejemplo,
jobspara colas). - Configura
.envautomáticamente para establecerQUEUE_CONNECTION=database.
- Crea las tablas necesarias (por ejemplo,
- Crear Post:
POST /api/posts - Listar Posts:
GET /api/posts - Actualizar Post:
PUT /api/posts/{id} - Eliminar Post:
DELETE /api/posts/{id}
- Validación del envío de notificaciones con
Notification::fake(). - Prueba:
php artisan test --filter=PostNotificationTest. - Esta prueba se limita a revisar el corecto funcionamiento del codigo mas no del servicio smtp
-
Clonar el Repositorio:
git clone https://github.com/luydevops/demo-api.git cd demo-api -
Instalar Dependencias:
composer install
-
Configurar el Archivo
.env:- Copiar
.env.examplea.env:cp .env.example .env
- Agregar las credenciales SMTP:
MAIL_MAILER=smtp MAIL_HOST=smtp-relay.brave.com MAIL_PORT=587 MAIL_USERNAME=your-email@domain.com MAIL_PASSWORD=your-password MAIL_ENCRYPTION=tls
- Copiar
-
Generar Clave de Aplicación:
php artisan key:generate
-
Configurar Base de Datos:
- Actualiza las variables de conexión a la base de datos en el archivo
.env.
- Actualiza las variables de conexión a la base de datos en el archivo
-
Ejecutar Migraciones:
php artisan migrate
-
Inicializar el Servicio:
php artisan service:init
-
Ejecutar el Worker de Cola (opcional para notificaciones en cola):
php artisan queue:work
-
Probar la Aplicación:
- Ejecuta las pruebas unitarias para verificar que todo funcione correctamente:
php artisan test
- Ejecuta las pruebas unitarias para verificar que todo funcione correctamente:
¡Las contribuciones son bienvenidas! Por favor, envía tus PRs al repositorio.
El proyecto está licenciado bajo la Licencia MIT.