How firasama29/roadmap-newsletter works
This Spring Boot roadmap-newsletter service lets subscribers sign up, choose topics, and receive articles selected for their subscription day. It also exposes topic and article management APIs and a manual email-send endpoint. The scheduled newsletter service loads subscribers and matching articles, formats topic-grouped messages, and sends them by email. The graph follows the sampled controller/service/repository calls; README-level personalization is represented, but source excerpts do not establish signup-date scheduling behavior.
Main entry points: SubscriberService.java Subscriber Service · NewsletterService.java Newsletter Scheduler · SubscriberController.java Subscriber API · SubscriberRepository.java Subscriber Repository
Components 15
HTTP APIs
- Subscriber API
src/main/java/com/roadmap/newsletter/controller/SubscriberController.java - Topic API
src/main/java/com/roadmap/newsletter/controller/TopicController.java - Article API
src/main/java/com/roadmap/newsletter/controller/ArticleController.java - Manual Email API
src/main/java/com/roadmap/newsletter/controller/SubscriptionController.java
Newsletter Domain
- Subscriber Service
src/main/java/com/roadmap/newsletter/service/SubscriberService.java - Topic Service
src/main/java/com/roadmap/newsletter/service/TopicService.java - Article Service
src/main/java/com/roadmap/newsletter/service/ArticleService.java - Newsletter Scheduler
src/main/java/com/roadmap/newsletter/service/NewsletterService.java
Persistence
- Subscriber Repository
src/main/java/com/roadmap/newsletter/repository/SubscriberRepository.java - Topic Repository
src/main/java/com/roadmap/newsletter/repository/TopicRepository.java - Article Repository
src/main/java/com/roadmap/newsletter/repository/ArticleRepository.java - Relational Database
Email Delivery
- Mail Service
Other components
- Subscriber
- Content Manager
Connections 24
- Subscriber → Subscriber API: signs up
- Subscriber API → Subscriber Service: dispatches
- Subscriber Service → Subscriber Repository: reads and saves
- Subscriber Service → Topic Service: lists topics
- Subscriber Service → Mail Service: sends welcome
- Subscriber → Subscriber API: selects topics
- Subscriber API → Subscriber Service: dispatches
- Subscriber Service → Subscriber Repository: updates subscriptions
- Content Manager → Topic API: manages topics
- Topic API → Topic Service: dispatches
- Topic Service → Topic Repository: queries and saves
- Content Manager → Article API: manages articles
- Article API → Article Service: dispatches
- Article Service → Topic Repository: finds or saves topic
- Article Service → Article Repository: queries and saves
- Newsletter Scheduler → Subscriber Repository: loads by day
- Newsletter Scheduler → Article Repository: loads matching articles
- Newsletter Scheduler → Mail Service: sends newsletters
- Content Manager → Manual Email API: requests email
- Manual Email API → Newsletter Scheduler: dispatches
- Newsletter Scheduler → Mail Service: sends message
- Subscriber Repository → Relational Database: reads and writes
- Topic Repository → Relational Database: reads and writes
- Article Repository → Relational Database: reads and writes