using fastMCP instaed of fastAPI
# Dawuro Ghana News
Dawuro is a Ghana-focused, user-driven news app that helps people quickly find and read news from trusted Ghanaian sources.
The idea comes from the traditional dawuro, also known as the gong-gong, which was used in communities to announce important messages. In the same way, the app acts as a modern digital dawuro: it brings important Ghanaian news and updates directly to users.
## App Summary
Dawuro lets users browse, search, and filter Ghanaian news based on what they care about. The app loads default latest news, but users can also search for specific topics like:
- Education
- Politics
- Business
- Black Stars
- Cedi
- Health
- Entertainment
It pulls stories from Ghanaian news websites using Firebase scheduled sync, source-specific APIs/RSS feeds, and BeautifulSoup fallback scraping. AI-facing backend capabilities are exposed through a FastMCP server.
## Current Features
The MVP currently has:
- React Native frontend
- FastMCP backend interface
- Firebase scheduled sync function
- Source-specific news retrieval with BeautifulSoup fallback scraping
- Ghanaian news sources: Citi Newsroom, MyJoyOnline, and Graphic Online
- Search functionality
- Source/news agency filtering
- Story details screen
- Logo and branding
## Backend Records
Stories are saved in the Firestore `stories` collection. Dawuro uses the story URL, or the title when no URL exists, to create a stable SHA-256 document ID so repeat syncs update the same record instead of creating duplicates.
MCP scraper runs save to the separate `mcpStories` collection by default. This keeps MCP extraction/testing separate from the production app feed until those records are reviewed or intentionally promoted into `stories`.
Tracked topics are saved in the separate `trackedTopics` collection. Topic tracking currently accepts a `user_id` value and defaults to `default` until Firebase Auth or another identity layer is connected.
Saved story fields:
- `title`
- `summary`
- `source`
- …