How mani-navi/duta works
Duta is a Persian-language news aggregation and credibility platform. News sources are polled, articles are classified and clustered, and event credibility is scored before representative stories are served through REST APIs to the web app; users can also personalize feeds and inspect coverage. The README documents market prices, SEO metadata and Telegram delivery as additional capabilities. The graph follows shown imports and calls where available; some capability links rely on README statements because their implementation was not sampled.
Main entry points: RssFetcherService.java RSS ingestion · ArticleController.java Article API · ArticleService.java Article services · axiosConfig.js REST client
Components 21
Ingestion and analysis
- RSS ingestion
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/RssFetcherService.java - Category classifier
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/CategoryClassifierService.java - Article clustering
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/ClusteringService.java - Credibility scoring
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/ScoringService.java
Backend services
- Article API
Backend/V.1.0/src/main/java/com/NewsGrid/V10/controller/ArticleController.java - Article services
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/ArticleService.java - Personalized feeds
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/PersonalizationService.java - Auth and users
Backend/V.1.0/src/main/java/com/NewsGrid/V10/controller/AuthAndUserController.java - User service
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/UserService.java - JWT service
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/JwtService.java - Market prices
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/PriceService.java - Article repository
Backend/V.1.0/src/main/java/com/NewsGrid/V10/repository/ArticleRepository.java - Article and cluster data
Backend/V.1.0/src/main/java/com/NewsGrid/V10/entity/Article.java
Web experience
- Web application
Frontend/V.1.0/newsgrid-frontend/src/App.jsx - User preferences
Frontend/V.1.0/newsgrid-frontend/src/context/UserContext.jsx - REST client
Frontend/V.1.0/newsgrid-frontend/src/api/axiosConfig.js
Telegram bot
- Fetch and cluster engine
TelegramBot/duta-bot/src/fetcherAndClusterEngine.js - Bot data store
TelegramBot/duta-bot/src/db.js - Tablo service
TelegramBot/duta-bot/src/tabloService.js
Other components
- News reader
- News sources
Connections 18
- News reader → Web application: opens
- Web application → REST client: requests
Frontend/V.1.0/newsgrid-frontend/src/App.jsx - REST client → Article API: calls REST
- RSS ingestion → News sources: fetches feeds
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/RssFetcherService.java - RSS ingestion → Category classifier: classifies stories
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/RssFetcherService.java - RSS ingestion → Article clustering: clusters stories
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/RssFetcherService.java - RSS ingestion → Article services: persists articles
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/RssFetcherService.java - Article clustering → Credibility scoring: scores coverage
- Article API → Article services: delegates
Backend/V.1.0/src/main/java/com/NewsGrid/V10/controller/ArticleController.java - Article API → Personalized feeds: gets feed
Backend/V.1.0/src/main/java/com/NewsGrid/V10/controller/ArticleController.java - Article services → Article repository: queries
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/ArticleService.java - Article repository → Article and cluster data: reads articles
Backend/V.1.0/src/main/java/com/NewsGrid/V10/repository/ArticleRepository.java - Auth and users → User service: delegates
Backend/V.1.0/src/main/java/com/NewsGrid/V10/controller/AuthAndUserController.java - User service → JWT service: uses tokens
Backend/V.1.0/src/main/java/com/NewsGrid/V10/service/UserService.java - User preferences → REST client: loads profile
Frontend/V.1.0/newsgrid-frontend/src/context/UserContext.jsx - Article API → Market prices: serves prices
- Fetch and cluster engine → Bot data store: reads and writes
TelegramBot/duta-bot/src/fetcherAndClusterEngine.js - News sources → Fetch and cluster engine: supplies sources