It centralizes the sending and management of notifications from the RIDECI ecosystem, allowing the mobility, institutional security, and administration modules to send in-app messages and emails in a unified, reliable, and traceable manner to users.
- Raquel Iveth Selma Alaya\
- Nestor David Lopez CastaΓ±eda\
- Juan Pablo Nieto Cortes\
- Carlos David Astudillo Castiblanco\
- Robinson Steven NuΓ±ez Portela
The ATENEA Notifications Backend has a decoupled hexagonal / clean architecture that isolates the core notification logic from infrastructure and external providers:
Business rules: creation, states, templates, channels, idempotency.
Defines what the domain can do: send notifications, persist them, publish events, consume messages.
Implementation of ports: databases, RabbitMQ, SMTP, integrations.
- Clear separation of concerns
- Maintainable and replaceable components
- Scalable (expand to SMS, push, WhatsApp, etc.)
- Testable without infrastructure
π ATENEA_NOTIFICATIONS_BACKEND
β£ π src/
β β£ π main/
β β β£ π java/
β β β β π edu/dosw/rideci/
β β β β£ AteneaNotificationsBackEndApplication.java
β β β β£ π domain/
β β β β β£ π model/
β β β β β£ π service/
β β β β β π event/
β β β β£ π application/
β β β β β£ π ports/
β β β β β β£ π input/
β β β β β β π output/
β β β β β π usecases/
β β β β£ π infrastructure/
β β β β β π adapters/
β β β β β£ π input/
β β β β β β£ π controller/
β β β β β β π listener/
β β β β β π output/
β β β β β£ π persistence/
β β β β β π email/
β β β π resources/
β β β£ application.properties
β β β application-*.yml
β£ π test/
β£ π docs/
β β£ uml/
β β pdf/
β£ docker-compose.yml
β£ Dockerfile
β£ pom.xml
β README.md
Swagger UI: http://localhost:8080/swagger-ui.html
Method URI Description
POST /notifications/email Send email notification POST /notifications/in-app Create in-app notification GET /notifications/users/{userId} List user notifications PATCH /notifications/{id}/read Mark as read PATCH /notifications/{id}/archive Archive notification GET /notifications/{id} Notification detail GET /notifications Filter notifications POST /notifications/templates Create template PUT /notifications/templates/{id} Update template GET /notifications/templates List templates POST /notifications/test/email Test SMTP POST /notifications/test/event Test RabbitMQ GET /actuator/health Health check
Code Status
200 OK 201 Created 202 Accepted 400 Bad Request 401 Unauthorized 404 Not Found 409 Conflict 500 Internal Server Error
- to
- subject
- body
- templateId?
- params?
- metadata?
- userId
- title
- message
- priority?
- type?
- expiresAt?
- metadata?
- id?
- name
- channel
- language
- subject
- body
- enabled
- id, userId?, channel, status, timestamps...
- content, page, size, totalElements, totalPages
Trip events β emails & in-app messages.
Driver approvals, blocks, reports β notifications.
Password recovery, email verification.
Office 365 or similar.
Authentication and routing.
Metrics, dashboards, logs.
- Java\
- Spring Boot\
- Maven
- RabbitMQ\
- Microsoft 365 SMTP
- Docker\
- Kubernetes\
- Railway\
- Vercel
- GitHub Actions\
- SonarQube\
- JaCoCo
- Swagger\
- Postman
- Figma\
- Jira\
- Slack
Branch Purpose
main Stable production develop Main development feature/* New features release/* Pre-production hotfix/* Urgent fixes
- feature/email-notifications\
- feature/rabbitmq-integration\
- release/v1.0.0\
- hotfix/securityPatch
type(scope): short description
- Java 17\
- Maven 3.x\
- Docker\
- Port 8080
git clone https://github.com/RIDECI/ATENEA_NOTIFICATIONS_BACKEND.git
cd ATENEA_NOTIFICATIONS_BACKEND
docker compose up -d
mvn clean install
mvn clean compile
mvn spring-boot:run