DailyFeed is a Java desktop app that delivers the top 5 AI-ranked German-language news articles from 5 different categories as well as 11 specifically picked assets to represent the general market. With DailyFeed you have an overview about what is happening in the world and how the stock market for example reacts to it.
Java 21 | Spring Boot | Java Swing
News: Currents-News API -> Currents API
Assets: Yahoo-Finance API -> (unofficially)
AI Ranking: Google AI Studio (Gemini-3.5-flash) -> Gemini AI
Build: Maven
Env: java-dotenv (.env) -> dotenv
- Top 5 news: 5 most relevant news by Gemini AI from each of the 5 categories
- Categories: sport, politics, economy, technology & science, society
- Live market data: Big Tech(magnificent 7), S&P 500, DAX, Nikkei 225, Euro Stoxx 50, Gold, Silver, Bitcoin
- 3-day history: browse today, yesterday and the day before
- Local caching: news results are saved as JSON files each containing one day and auto-cleaned after two days
Prerequirements: Java 21 JDK, Maven
- Clone the repository:
git clone https://github.com/Leo51645/DailyFeed.git
cd DailyFeed- Build:
mvn clean package -DskipTests- Run:
java -jar target/DailyFeed-0.0.1-SNAPSHOT.jar- On the first launch you will be asked to put in your API Keys. Currents API & Google AI Studio. Sign in or create an account for free and copy API-Keys
DailyFeed started as a school project in computer science, but I wanted to build something I can also benefit from in my daily life. My interests in politics, finance and software engineering are all combined into this app.
- Swing instead of JavaFX or Web: Swing is easier to implement and for my use case as a school project the decision with the least effort
- JSON Cache over a database: also less effort to set up and maintain -> easy inspect, delete and storage of JSON files
- Parallel requests: removes some of the long waiting time
- Use of AI: all of the service logic, util classes, enums and dtos were written by me and discussed with the AI but only after I've had a clear approach and structure of what to build and how to build it. The whole frontend code, log system and exception handling on the other hand is strongly AI-assisted and generated because in my opinion all of that is just repetitive boilerplate code or irrelevant to backend development.
- Frontend: intentionally minimal and as easy as possible because the main focus on this project was on the backend
- Loading times: due to free ai services and APIs the product is relatively slow when loading and rating news
- Loading errors: the gemini api sometimes throws a 503 - Service Unavailable. From my experience this error occurs in the timespan from 3pm - 9pm (CET) maybe because of the additonal American api requests leading to overloads in the api itself. But I'm actually not the only one dealing with this problem - Read more
License MIT — see LICENSE
