{"id":14963815,"url":"https://github.com/cyberkutti-iedc/pingpong","last_synced_at":"2026-01-24T03:06:02.118Z","repository":{"id":251579796,"uuid":"837200943","full_name":"cyberkutti-iedc/PingPong","owner":"cyberkutti-iedc","description":"PingPong Notifier provides real-time GitHub notifications and data visualization through a website, server, Chrome extension, and NodeMCU hardware. Stay updated on GitHub activities effortlessly.","archived":false,"fork":false,"pushed_at":"2024-08-07T10:24:11.000Z","size":366,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T06:34:08.976Z","etag":null,"topics":["chrome-extension","data-visualization","esp8266","express","fullstack","github-notifications","javascript","nodejs","nodemcu","real-time-updates","tailwindcss","vuejs","website"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyberkutti-iedc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-08-02T12:32:29.000Z","updated_at":"2025-02-01T19:02:20.000Z","dependencies_parsed_at":"2024-08-07T11:25:51.608Z","dependency_job_id":null,"html_url":"https://github.com/cyberkutti-iedc/PingPong","commit_stats":{"total_commits":31,"total_committers":4,"mean_commits":7.75,"dds":0.09677419354838712,"last_synced_commit":"fe6ab4ca96c75c2b3f1f1c859281a79c6574632e"},"previous_names":["cyberkutti-iedc/pingpong"],"tags_count":0,"template":false,"template_full_name":"TH-Activities/saturday-hack-night-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberkutti-iedc%2FPingPong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberkutti-iedc%2FPingPong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberkutti-iedc%2FPingPong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberkutti-iedc%2FPingPong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyberkutti-iedc","download_url":"https://codeload.github.com/cyberkutti-iedc/PingPong/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248742206,"owners_count":21154453,"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","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":["chrome-extension","data-visualization","esp8266","express","fullstack","github-notifications","javascript","nodejs","nodemcu","real-time-updates","tailwindcss","vuejs","website"],"created_at":"2024-09-24T13:32:10.847Z","updated_at":"2026-01-24T03:06:02.091Z","avatar_url":"https://github.com/cyberkutti-iedc.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n![PingPong Notifier](https://github.com/user-attachments/assets/079fdd2e-ba20-4a5b-9801-58448e81d8b9)\n\n# PingPong Notifier\n\nWelcome to the **PingPong Notifier** ecosystem! This tool enhances your GitHub experience with notifications, data visualization, and real-time updates across various platforms. The PingPong system includes a website, server, Chrome extension, and NodeMCU hardware unit.\n\n## 🌐 Website\n\n**PingPong Notifier** website features:\n\n- **View Recent Notifications:** Instant updates on GitHub activities.\n- **Explore Trending Topics:** Browse trending repositories by popular topics.\n- **Customize Notifications:** Tailor notifications to your preferences.\n- **Manage GitHub Account:** Link and manage GitHub accounts.\n\n\u003e The website is optimized for both desktop and mobile devices.\n\n## 💻 Server\n\n**PingPong Notifier** server capabilities:\n\n- **API Endpoints:** Access endpoints like `/user-info`, `/topics`, and `/github-notifications`.\n- **Data Aggregation:** Combine information from multiple GitHub endpoints.\n- **Error Handling:** Robust error management.\n\n\u003e Powered by Node.js with Express for efficient data processing.\n\n## 🧩 Chrome Extension\n\n**PingPong Notifier** Chrome extension features:\n\n- **User Input:** Enter GitHub username to fetch notifications.\n- **Notification Display:** View recent notifications in a clean interface.\n- **Real-Time Updates:** Receive real-time notifications.\n\n\u003e Enhances your browsing experience with GitHub updates directly in your browser.\n\n## 📡 NodeMCU Hardware Unit\n\n**PingPong Notifier** hardware unit features:\n\n- **Data Fetching:** Connects to Wi-Fi and fetches data from the server.\n- **Display Options:** LCD 16x2 I2C or TFT display options.\n- **Automated Updates:** Updates every 20 minutes.\n\n\u003e Provides a tangible way to monitor GitHub activities.\n\n---\n\n## 📚 Documentation\n\nFor detailed instructions, refer to these resources:\n\n- [Website Documentation](doc/Website.md)\n- [Server API Documentation](doc/Server.md)\n- [Chrome Extension Guide](doc/ChromeExtension.md)\n- [NodeMCU Hardware Instructions](doc/HardwareUnit.md)\n\n## 👥 Team Members\n\n- [Sreeraj V Rajesh](https://github.com/cyberkutti-iedc)\n- [Rahan Michael Judes](https://github.com/gitmwon)\n- [Edwin Raffy](https://github.com/EduEdwin24)\n- [Sarath Murukan](https://github.com/SarathSNMIMT)\n\n## 🎥 Product Walkthrough\n\n[Watch the product walkthrough video](https://youtu.be/Zjwk74kRIpU?si=jgKsDziQvETHBNSQ)\n\n---\n\n## 🔧 How It Works\n\n### 1. Server\n\n**Role:** Central component for collecting, processing, and providing user data.\n\n**Technology:**\n- **Express:** Web application framework for Node.js.\n- **Node.js:** JavaScript runtime for server-side applications.\n- **Nodemon:** Auto-restart tool for development.\n- **RESTful GitHub API:** Standardized format for GitHub data.\n\n**Functionality:**\n\n- **Data Collection:** Fetches user data from GitHub.\n- **API Endpoint:** Provides data in JSON format.\n- **Data Format:** Includes fields like `name`, `user`, `followers`, `following`.\n\n### 2. Client Website\n\n**Role:** Provides a GUI for viewing data.\n\n**Technology:**\n- **Vue.js:** Progressive JavaScript framework.\n- **CSS:** Styling for the website.\n- **Tailwind CSS:** Utility-first CSS framework.\n\n**Functionality:**\n\n- **Data Fetching:** Retrieves data from server’s API.\n- **Data Display:** Uses Vue.js reactive components.\n- **User Interface:** Styled with Tailwind CSS.\n\n### 3. Chrome Extension\n\n**Role:** Provides data access directly from the browser.\n\n**Technology:**\n- **HTML, CSS, JavaScript:** Handles UI and logic.\n\n**Functionality:**\n\n- **Data Fetching:** Requests data from server’s API.\n- **Display Data:** Shows data within the extension.\n- **User Interface:** Simple and functional design.\n\n### 4. Hardware Unit\n\n**Role:** Displays data on a physical screen.\n\n**Technology:**\n- **ESP8266 (NodeMCU):** Microcontroller with built-in WiFi.\n- **LCD 16x2 I2C or TFT LCD Display:** Display options.\n\n**Functionality:**\n\n- **WiFi Connection:** Connects to a network.\n- **Data Fetching:** Periodically requests data.\n- **Display Data:** Shows data on the connected display.\n\n---\n\n## 📦 Installation Guide\n\n### Option 1: Use the Provided Scripts\n\nAutomate the installation process with these scripts:\n\n#### For Windows\n\n- **[Command Prompt (`install.cmd`)](./install.cmd)**\n- **[PowerShell (`install.ps1`)](./install.ps1)**\n\n#### For Linux/macOS\n\n- **[Shell Script (`install.sh`)](./install.sh)**\n\n### Option 2: Manual Installation\n\n1. **Navigate to Client Directory:**\n   ```bash\n   cd PingPong/Client\n   ```\n2. **Install Client-Side Dependencies:**\n   ```bash\n   npm install\n   ```\n3. **Navigate to Server Directory:**\n   ```bash\n   cd ../Server\n   ```\n4. **Install Server-Side Dependencies:**\n   ```bash\n   npm install\n   ```\n\n---\n\n## 🚀 How to Run\n\n### Automatic Startup Scripts\n\nTo run the project automatically on startup:\n\n- **Windows:**\n  - [Batch Script (`start-dev.bat`)](./start-dev.bat)\n  - [PowerShell Script (`start-dev.ps1`)](./start-dev.ps1)\n\n- **Linux/macOS:**\n  - [Shell Script (`start-dev.sh`)](./start-dev.sh)\n\n### Manual Running\n\n1. **Open Terminal or Command Prompt:**\n2. **Navigate to Server Directory and Run:**\n   ```bash\n   cd /path/to/server\n   npm run dev\n   ```\n3. **Open a New Terminal or Command Prompt Window:**\n4. **Navigate to Client Directory and Run:**\n   ```bash\n   cd /path/to/client\n   npm run dev\n   ```\n\n### Chrome Extension\n\n1. **Install the Extension:**\n   - Go to `chrome://extensions/`.\n   - Enable \"Developer mode\".\n   - Click \"Load unpacked\" and select the extension directory.\n\n2. **Activate the Extension:**\n   - Ensure the extension is enabled.\n\n### NodeMCU Hardware Unit\n\n1. **Power On the NodeMCU:**\n   - Connect to a power source through USB.\n\n2. **Ensure Network Connectivity:**\n   - Ensure the NodeMCU and your server are on the same network.\n\n3. **Start the Server:**\n   - Verify the server is running.\n\n4. **Verify Functionality:**\n   - Check the NodeMCU’s display for correct data.\n\n---\n\nHappy coding with PingPong! 🚀\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberkutti-iedc%2Fpingpong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyberkutti-iedc%2Fpingpong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberkutti-iedc%2Fpingpong/lists"}