SmartNews Tracker is an API that allows users to monitor news based on specific keywords. The system periodically queries a news API and sends email alerts whenever new articles matching the keywords are found.
- Java 21
- Spring Boot/Data JPA/Security
- Flyway
- Maven
- Lombok/MapStruct
- Testcontainers
- Wiremock
- Docker
- SpringDoc - Open API 3
- Authentication
- User signup with email verification
- User email verification flow (send verification link, verify user)
- User login with JWT token/refresh token
- User logout
- Business
- Users accounts can be managed by admin
- User can register keyword for monitoring
- User receive scheduled emails summarizing ten most popular news monitored
- User can fetch ten most popular news with a keyword
- Java 21
- Docker
Generate a 32-byte secret key at https://jwtsecret.com/generate
Create an API key at https://newsapi.org/
Rename .env.example to .env and set:
JWT_SECRET_KEYNEWS_API_KEY
- Clone the repository to your local machine:
git clone https://github.com/kauanmocelin/smart-news-tracker.git - Go to the project directory:
cd smart-news-tracker - Starting with a script that builds and starts the REST API:
scripts/run.sh - Access the api documentation:
http://localhost:8080/swagger-ui/index.html
Please follow the instructions at the docker hub repository.
Contributions are welcome. If you have suggestions, bug reports, or feature requests, please open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
Kauan Mocelin