Case 17 / 17 · Full-stack AI app · 2024
News Assistant Studio
A complete platform for automatically collecting, processing, analysing and publishing news with AI models and a Telegram bot integration.
- Development time: 15 days
- UI pages: 10+
- AI providers: 2
- Lines of code: 25,000+
Challenge
Processing, analysing and rewriting news by hand takes a lot of time, and there was no automated publishing or performance analytics.
Solution
A full-stack app (React + Express + SQLite) integrating AI models (Google Gemini, Mistral) to automatically process, analyse and publish news to a Telegram channel, with full analytics and manual moderation.
Highlights
React 19 + Express + SQLite · Google Gemini + Mistral AI · Telegram Bot API · 10+ pages · WatermarkRemover submodule
What was built
- Source management: adding Telegram channels, subscribing to RSS feeds, keyword search, content filtering
- AI news processing: rewriting text, generating catchy headlines, sentiment analysis (positive/negative/neutral)
- AI analysis: spotting promotional content (ad score), automatic breaking-news detection, processing via 2 providers (Gemini + Mistral)
- Image processing: download and storage, watermark removal (WatermarkRemover-AI), cropping, adding your own watermark, parsing from content
- Content moderation: manual review before publishing, statuses (Approved/Pending/Rejected), live news preview, action logging
- Scheduling and publishing: automatic posting to a Telegram channel, a publishing schedule with intervals, a daily post limit
- Queue management: viewing and managing the post queue with previews, setting a custom publish date/time
- Analytics and stats: activity charts per source, a heatmap of content popularity over time
- AI analytics: best-time-to-post recommendations, counts of unique/duplicate/blocked news, AI provider performance analysis
- Full logging: a history of every action with timestamps, filters by event type, source and AI provider, log export
- API key configuration: Telegram Bot Token, Google Gemini API, Mistral API, AI prompt management
- Interval settings: periodic processing config, thresholds and filter parameters, error notifications
- 10+ interface sections: Home (stats), Settings (config), Sources (channels), Moderation (review), Queue, Analytics (charts), History (events), AI Stats (analysis), Logs (details), About (info)
- Dark mode with a responsive design for every device and screen
- Real-time counters with a CountUp effect, animated transitions via Framer Motion
- Live bot status (connected/rejected), drag and drop to reorder items
- Rich text editor (TipTap) for editing content, Recharts for analytics charts
- React DnD Kit for ordering items, React Router for page navigation
- Redis caching and a queue for performance
- WatermarkRemover-AI submodule: a Python tool with Florence-2 and LaMA for removing/restoring watermarks
- Batch processing, video support with audio kept, CUDA acceleration, a PyWebView GUI in 6+ languages
- A production-ready architecture with error handling, error collection via Sentry, RSS Parser and Cheerio integration
Stages
- Architecture (2 days) — Designing the news processing pipeline, choosing AI models, source integrations
- AI and processing (4 days) — Google Gemini + Mistral integration, text rewriting, sentiment analysis, ad score
- Frontend (4 days) — 10+ sections: Home, Settings, Sources, Moderation, Queue, Analytics, History, AI Stats, Logs
- Automation (3 days) — Publishing schedule, post queue, image processing, WatermarkRemover
- Analytics and deployment (2 days) — Heatmap, charts, Sentry, Redis caching, PM2, production deployment
Next project: WgSwitch