{"id":30201460,"url":"https://github.com/precise-goals/civicpulse","last_synced_at":"2026-04-29T23:02:09.103Z","repository":{"id":304733717,"uuid":"1016339124","full_name":"Precise-Goals/civicpulse","owner":"Precise-Goals","description":" AI-powered news platform built with React v19, Vite, and Bun. Features real-time tech news summaries via Gemini API, intelligent chatbot with weather/stock integration, Firebase authentication, and analytics dashboard. Perfect for developers seeking modern AI-enhanced news experiences.","archived":false,"fork":false,"pushed_at":"2025-07-15T00:56:51.000Z","size":393,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-15T02:14:04.441Z","etag":null,"topics":["agentic-ai","ai-summaries","aichatbot","bun","firebase","gemini-api","mvp","open-source","react-19","realtime-news","tech-news","vite"],"latest_commit_sha":null,"homepage":"https://civicpulse-prototype.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Precise-Goals.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-07-08T21:27:31.000Z","updated_at":"2025-07-15T00:56:55.000Z","dependencies_parsed_at":"2025-07-15T02:24:49.770Z","dependency_job_id":null,"html_url":"https://github.com/Precise-Goals/civicpulse","commit_stats":null,"previous_names":["precise-goals/civicpulse"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Precise-Goals/civicpulse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Precise-Goals%2Fcivicpulse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Precise-Goals%2Fcivicpulse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Precise-Goals%2Fcivicpulse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Precise-Goals%2Fcivicpulse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Precise-Goals","download_url":"https://codeload.github.com/Precise-Goals/civicpulse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Precise-Goals%2Fcivicpulse/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270228429,"owners_count":24548817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"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":["agentic-ai","ai-summaries","aichatbot","bun","firebase","gemini-api","mvp","open-source","react-19","realtime-news","tech-news","vite"],"created_at":"2025-08-13T10:49:58.287Z","updated_at":"2025-10-10T19:11:53.669Z","avatar_url":"https://github.com/Precise-Goals.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CivicPulse 📰🤖\n\n\u003e AI-Powered Real-Time News, Chat, and Analytics Platform\n\nCivicPulse is a comprehensive web application that delivers AI-enhanced news summaries, contextual chatbot interactions, and real-time user analytics. Built with Google's Gemini 1.5 Flash API and Firebase Realtime Database, it provides an interactive experience for users who want to stay updated with the latest technology and startup news while tracking their activity metrics.\n\n## ✨ Features\n\n- **🤖 AI-Enhanced News Summaries**: Get intelligent summaries of the latest tech and startup news\n- **💬 Contextual Chatbot**: Interactive AI chat powered by Google Gemini 1.5 Flash\n- **📊 Real-Time Analytics**: Track user activity and engagement metrics\n- **🌤️ Weather Integration**: Enriched conversations with live weather data\n- **📈 Stock Market Data**: Real-time stock price updates and market information\n- **🔥 Firebase Integration**: Seamless authentication and real-time data synchronization\n\n## 🛠️ Tech Stack\n\n- **Frontend**: React v19 with Vite\n- **Package Manager**: Bun\n- **AI/ML**: Google Gemini 1.5 Flash API\n- **Database**: Firebase Realtime Database\n- **Authentication**: Firebase Auth\n- **News API**: GNews API\n- **Weather API**: OpenWeatherMap\n- **Stock API**: TwelveData\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js (v18 or higher)\n- Bun (latest version)\n- Firebase account\n- API keys for all required services\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/sarthakpatil/civicpulse.git\n   cd civicpulse\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   bun install\n   ```\n\n3. **Set up environment variables**\n\n   Create a `.env` file in the root directory and add the following variables:\n\n   ```env\n   VITE_GEMINI_API_KEY=your_gemini_api_key_here\n   VITE_GNEWS_API_KEY=your_gnews_api_key_here\n   VITE_FIREBASE_API_KEY=your_firebase_api_key_here\n   VITE_FIREBASE_AUTH_DOMAIN=yourapp.firebaseapp.com\n   VITE_FIREBASE_DB_URL=https://yourapp-default-rtdb.firebaseio.com\n   VITE_FIREBASE_PROJECT_ID=your-firebase-project-id\n   VITE_FIREBASE_STORAGE_BUCKET=yourapp.appspot.com\n   VITE_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id\n   VITE_FIREBASE_APP_ID=your-firebase-app-id\n   VITE_FIREBASE_MEASUREMENT_ID=your-measurement-id\n   VITE_OPENWEATHER_API_KEY=your_openweather_api_key_here\n   VITE_TWELVEDATA_API_KEY=your_twelvedata_api_key_here\n   ```\n\n4. **Start the development server**\n   ```bash\n   bun run dev\n   ```\n\n## 🔑 API Keys Setup\n\n### Required API Keys\n\n| Service                     | Purpose                                 | Get API Key                                               |\n| --------------------------- | --------------------------------------- | --------------------------------------------------------- |\n| **Google Gemini 1.5 Flash** | AI blog generation and chat responses   | [Google Cloud Console](https://console.cloud.google.com/) |\n| **GNews**                   | Real-time technology and startup news   | [GNews API](https://gnews.io/)                            |\n| **Firebase**                | Authentication, database, and analytics | [Firebase Console](https://console.firebase.google.com/)  |\n| **OpenWeatherMap**          | Live weather data for chat context      | [OpenWeatherMap](https://openweathermap.org/api)          |\n| **TwelveData**              | Real-time stock market data             | [TwelveData](https://twelvedata.com/)                     |\n\n### Environment Variables Reference\n\n| Variable                            | Description                           | Required |\n| ----------------------------------- | ------------------------------------- | -------- |\n| `VITE_GEMINI_API_KEY`               | Powers AI features and chat responses | ✅       |\n| `VITE_GNEWS_API_KEY`                | Fetches technology and startup news   | ✅       |\n| `VITE_FIREBASE_API_KEY`             | Firebase project authentication       | ✅       |\n| `VITE_FIREBASE_AUTH_DOMAIN`         | Firebase authentication domain        | ✅       |\n| `VITE_FIREBASE_DB_URL`              | Firebase Realtime Database URL        | ✅       |\n| `VITE_FIREBASE_PROJECT_ID`          | Unique Firebase project identifier    | ✅       |\n| `VITE_FIREBASE_STORAGE_BUCKET`      | Firebase storage bucket               | ⚠️       |\n| `VITE_FIREBASE_MESSAGING_SENDER_ID` | Firebase Cloud Messaging ID           | ⚠️       |\n| `VITE_FIREBASE_APP_ID`              | Firebase app initialization ID        | ✅       |\n| `VITE_FIREBASE_MEASUREMENT_ID`      | Firebase Analytics measurement ID     | ⚠️       |\n| `VITE_OPENWEATHER_API_KEY`          | Weather data integration              | ✅       |\n| `VITE_TWELVEDATA_API_KEY`           | Stock market data integration         | ✅       |\n\n\u003e **Note**: ✅ = Required, ⚠️ = Optional but recommended\n\n## 🏗️ Project Structure\n\n```\ncivicpulse/\n├── src/\n│   ├── components/        # React components\n│   ├── services/          # API services and utilities\n│   ├── hooks/             # Custom React hooks\n│   ├── utils/             # Helper functions\n│   └── styles/            # CSS and styling files\n├── public/                # Static assets\n├── .env                   # Environment variables\n├── vite.config.js         # Vite configuration\n└── package.json           # Dependencies and scripts\n```\n\n## 📝 Available Scripts\n\n- `bun run dev` - Start development server\n- `bun run build` - Build for production\n- `bun run preview` - Preview production build\n- `bun run lint` - Run ESLint\n- `bun test` - Run tests\n\n## 🚢 Deployment\n\n### Firebase Hosting\n\n1. **Build the project**\n\n   ```bash\n   bun run build\n   ```\n\n2. **Deploy to Firebase**\n   ```bash\n   firebase deploy\n   ```\n\n### Vercel\n\n1. **Connect your repository to Vercel**\n2. **Set environment variables in Vercel dashboard**\n3. **Deploy automatically on push**\n\n## 🔒 Security\n\n- **Environment Variables**: Never commit your `.env` file or API keys to public repositories\n- **API Key Management**: Use environment variables with the `VITE_` prefix for client-side access\n- **Firebase Security**: Configure Firebase security rules for database access\n- **Rate Limiting**: Implement rate limiting for API calls to prevent abuse\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Google Gemini AI for powering intelligent conversations\n- Firebase for seamless backend services\n- GNews API for real-time news data\n- OpenWeatherMap for weather integration\n- TwelveData for stock market data\n\n## 📞 Support\n\nIf you encounter any issues or have questions, please:\n\n1. Check the [Issues](https://github.com/sarthakpatil/civicpulse/issues) page\n2. Create a new issue if your problem isn't already reported\n3. Provide detailed information about your environment and the issue\n4. Contact the maintainer: sarthakpaitl.ug@gmail.com\n\n---\n\n## 👨‍💻 Author\n\n**Sarthak Tulsidas Patil**\n\n- Email: sarthakpaitl.ug@gmail.com\n- Founder of Falcons Tech Community, NMIET\n- GitHub: [@sarthakpatil](https://github.com/Precise-Goals)\n\n---\n\n### build for Google Developer Club Application\n\n![gif](https://i.redd.it/ckp5gcuzv7581.gif)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprecise-goals%2Fcivicpulse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprecise-goals%2Fcivicpulse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprecise-goals%2Fcivicpulse/lists"}