{"id":28253716,"url":"https://github.com/ecstaticfly/newshub","last_synced_at":"2026-07-14T07:32:06.081Z","repository":{"id":291735454,"uuid":"978514628","full_name":"EcstaticFly/NewsHub","owner":"EcstaticFly","description":"NewsHub is a full-stack AI-powered news platform that displays curated news articles with real-time AI-generated summaries using Google Gemini API. Built with React, Node.js, Express, and MongoDB, it features a responsive UI, RESTful API, and an admin panel for article management. Ideal for users who want quick, AI-enhanced news insights.","archived":false,"fork":false,"pushed_at":"2025-07-19T20:01:31.000Z","size":125,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T09:42:55.363Z","etag":null,"topics":["docker","expressjs","gemini-api","mongodb","monolith-architecture","nodejs","reactjs","responsive-design","tailwi","vercel-deployment"],"latest_commit_sha":null,"homepage":"https://newshub-iota-vert.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EcstaticFly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-06T05:27:54.000Z","updated_at":"2025-07-19T20:01:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"a07dadbf-0d90-4fcf-b422-37f6d3932292","html_url":"https://github.com/EcstaticFly/NewsHub","commit_stats":null,"previous_names":["ecstaticfly/newshub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EcstaticFly/NewsHub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FNewsHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FNewsHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FNewsHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FNewsHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EcstaticFly","download_url":"https://codeload.github.com/EcstaticFly/NewsHub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FNewsHub/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35451878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-14T02:00:06.603Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","expressjs","gemini-api","mongodb","monolith-architecture","nodejs","reactjs","responsive-design","tailwi","vercel-deployment"],"created_at":"2025-05-19T17:21:33.448Z","updated_at":"2026-07-14T07:32:06.076Z","avatar_url":"https://github.com/EcstaticFly.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 NewsHub: AI-Powered News Platform\n\nThis project is a full-stack web application that serves as an AI-powered news platform. It features a responsive UI for browsing news articles and uses Gemini API to generate AI summaries for each article.\n\n## ✨ Features\n\n- Responsive frontend displaying news articles\n- Article summary generation using Gemini API\n- Admin panel for article management\n- RESTful API backend\n\n## 🛠 Tech Stack\n\n- **Frontend**: React.js, React Router, Tailwind CSS\n- **Backend**: Node.js, Express.js\n- **AI Integration**: Google Gemini API\n- **Database**: MongoDB\n\n## 🗂️ Project Structure\n\n```\nNewsHub/\n├── client/                  # Frontend React app\n│   ├── public/\n│   └── src/\n│       ├── components/      # Reusable UI components\n│       ├── configs/         # Configuration files\n│       ├── pages/           # Page components\n│       ├── store/           # Global State Managmement(Themes)\n│       ├── App.jsx          # Main app component\n│       ├── Dockerfile       # Dockerfile for containerization\n│       ├── .env             # Environment variables(not committed)\n│       └── main.jsx         # Entry point\n├── server/                  # Backend Node.js/Express app\n│   ├── config/              # Server configuration\n│   ├── controllers/         # Route controllers\n│   ├── data/                # JSON data\n│   ├── models/              # Database models\n│   ├── routes/              # API routes\n│   ├── Dockerfile           # Dockerfile for containerization\n│   ├── .env                 # Environment variables (not committed)\n│   ├── server.js            # Server entry point\n├── docker-compose           # Docker compose file for containerization\n├── LICENSE                  # License agreement\n└── README.md\n```\n\n## 🧰 Setup Instructions\n\n### ✅ Prerequisites\n\n- Node.js (v14 or higher)\n- npm or yarn\n- Google Gemini API key\n\n### 📦 Installation\n\n1. Clone the repository:\n   ```\n   git clone https://github.com/EcstaticFly/NewsHub.git\n   cd NewsHub\n   ```\n\n2. Install dependencies for both frontend and backend:\n   ```\n   # Install backend dependencies\n   cd server\n   npm install\n   \n   # Install frontend dependencies\n   cd ../client\n   npm install\n   ```\n\n3. Create `.env` files in the server and client Directories:\n   ```\n   # For server\n   PORT=5000\n   GEMINI_API_KEY=your_gemini_api_key\n   MONGODB_URI=your_mongodb_connection_string\n   CLIENT_URL=your_frontend_url\n\n   # For client\n   VITE_API_URL=http://localhost:5000\n   ```\n\n4. Start the development servers:\n   ```\n   # Start backend server (from server directory)\n   npm run dev\n   \n   # In a new terminal, start frontend (from client directory)\n   npm run dev\n   ```\n\n5. Access the application:\n   - Frontend: http://localhost:5173\n   - Backend API: http://localhost:5000\n\n## 🔍 API Endpoints\n\n- `GET /api/articles` - Get all articles\n- `GET /api/articles/:id` - Get a specific article\n- `GET /api/articles/:id/summary` - Get AI-generated summary for an article\n- `POST /api/admin/articles` - Create a new article (admin only)\n- `PUT /api/admin/articles/:id` - Update an article (admin only)\n- `DELETE /api/admin/articles/:id` - Delete an article (admin only)\n\n## 🚀 Deployment\n\n🔗 **Live Link:** [NewsHub](https://newshub-iota-vert.vercel.app/)  \n📂 **Source Code:** [GitHub](https://github.com/EcstaticFly/Chatzy.git)\n\n## 🧠 Development Approach\n\nI approached this project with a focus on:\n1. Clean architecture with separation of concerns\n2. Responsive UI design using modern React practices\n3. RESTful API design\n4. Integration with Gemini API for AI-powered summaries\n\nFor the AI summary generation, I used Google's Gemini API to analyze the article content and generate concise summaries that capture the key points.\n\n## 🔮 Potential Improvements\n\n- Add user authentication\n- Implement article categorization and filtering\n- Add more advanced AI features like sentiment analysis\n- Implement caching for API responses\n- Add unit and integration tests\n\n## 🤖 GPT Tool Usage\n\nI used GPT tools for:\n- Getting AI generated summaries\n- Debugging complex React component interactions\n\n## 🤝 Contributing  \nContributions, issues, and feature requests are welcome!  \nFeel free to **fork** the repo and submit a **pull request**.  \n\n## 📜 License  \nThis project is licensed under the **GNU GENERAL PUBLIC LICENSE v3**.\n\n## 📬 Contact\nFor inquiries, reach out to me at [Suyash Pandey](mailto:suyash.2023ug1100@iiitranchi.ac.in).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecstaticfly%2Fnewshub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecstaticfly%2Fnewshub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecstaticfly%2Fnewshub/lists"}