Where News Meets Intelligence. A next-generation news analysis platform combining real-time global reporting with AI-powered insights and community discussion.
Ecosphere goes beyond simple news aggregation. It integrates Google Gemini AI to provide legal and contextual analysis of current events, allowing users to understand not just what happened, but why it matters. Complete with real-time, secure chat rooms for every story.
- Real-time Aggregation: Fetches breaking news from global sources via NewsAPI.
- Smart Categorization: seamless switching between Politics, Technology, Health, and Sports.
- Legal Insights: Automatically analyzes news articles for legal implications.
- Fact Contextualization: Uses GenAI to provide background context often missing from headlines.
- Topic-Based Chat Rooms: Every news article spawns its own dedicated discussion room.
- Robust Security: Fully authenticated environments using Firebase Auth.
- Diagnostics: Built-in connection health and permission monitoring for seamless UX.
- Fuzzy Search logic: Powered by
Fuse.jsto find relevant articles even with typos. - Archive Access: Search through historical data and legal CSV archives.
Frontend
Backend & Services
Firebase: Auth, Firestore Database, and Hosting.
Google Gemini API: Artificial Intelligence engine.
- NewsAPI: External data provider.
- Node.js (v16+)
- A Firebase Project (Free tier works)
- API Keys for: NewsAPI, Google Gemini.
-
Clone the Repo
git clone https://github.com/manukrishna804/news-app.git cd echosphere -
Install Dependencies
npm install
-
Environment Setup Create a
.envfile in the root directory:# Firebase VITE_FIREBASE_API_KEY=your_key VITE_FIREBASE_AUTH_DOMAIN=your_domain VITE_FIREBASE_PROJECT_ID=your_id VITE_FIREBASE_STORAGE_BUCKET=your_bucket VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender VITE_FIREBASE_APP_ID=your_app_id # APIs VITE_API_KEY=your_newsapi_key VITE_GEMINI_API_KEY=your_gemini_key
-
Run Locally
npm run dev
Visit
http://localhost:5173
If you see a red "Access Denied" error in the chat:
- Go to your Firebase Console -> Firestore -> Rules.
- Ensure your rules allow authenticated users to read/write:
match /chats/{chatId}/messages/{messageId} { allow read, write: if request.auth != null; }
echosphere/
├── src/
│ ├── components/ # Core React Components (ChatRoom, NewsBoard, etc.)
│ ├── hooks/ # Custom debugging & logic hooks
│ ├── data/ # Static datasets
│ └── App.jsx # Main Routing & Layout
├── public/
│ └── csv/ # Dataset for AI legal training/context
└── firebaseConfig.js # App initialization
Contributions are welcome! Please fork the repository and submit a Pull Request.
This project is licensed under the MIT License.