{"id":26678414,"url":"https://github.com/telexintegrations/sofware-principles-aggregator","last_synced_at":"2025-08-22T15:04:05.804Z","repository":{"id":278561430,"uuid":"936027079","full_name":"telexintegrations/sofware-principles-aggregator","owner":"telexintegrations","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-23T11:34:53.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-02T19:44:45.406Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/telexintegrations.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-02-20T12:11:40.000Z","updated_at":"2025-02-23T11:34:56.000Z","dependencies_parsed_at":"2025-02-20T13:27:24.234Z","dependency_job_id":"e9a02921-23b3-4878-906b-3c30b68050a1","html_url":"https://github.com/telexintegrations/sofware-principles-aggregator","commit_stats":null,"previous_names":["telexintegrations/softwaredev-principles-aggregator","telexintegrations/sofware-principles-aggregator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/telexintegrations/sofware-principles-aggregator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fsofware-principles-aggregator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fsofware-principles-aggregator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fsofware-principles-aggregator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fsofware-principles-aggregator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telexintegrations","download_url":"https://codeload.github.com/telexintegrations/sofware-principles-aggregator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Fsofware-principles-aggregator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271657464,"owners_count":24797933,"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-22T02:00:08.480Z","response_time":65,"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":[],"created_at":"2025-03-26T05:15:44.475Z","updated_at":"2025-08-22T15:04:05.790Z","avatar_url":"https://github.com/telexintegrations.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Random Software Principles Aggregator\n\nA C# application that scrapes technical articles from various programming and development websites to collect interesting facts and articles. This project is meant for the Stage Three Tax in Telex integration, hosted on Render using Docker.\n\n### Telex Integration\n\nThe scraper is designed to work as a Telex integration. When integrated with Telex:\n\n1. The scraper automatically sends articles to your Telex channels\n2. No manual API calls needed - Telex handles the webhook communication\n3. Articles are posted at configured intervals\n\n## Features\n\n- Scrapes articles from multiple sources:\n    - GeeksForGeeks (popular and recent articles)\n    - MDN Web Docs (featured articles)\n- Randomly selects articles from each source\n- Extracts article titles, content, and URLs\n- Error handling and logging for failed scraping attempts\n- Summarizes articles with Groq and sends them to a Telex channel\n\n## Project Structure\n\n```\nbetter-submitter/\n├── Models/\n│   ├── Fact.cs\n│   ├── TelexWebhook.cs\n│   └── TelexPayload.cs\n├── Services/\n│   ├── FactScraper.cs\n│   └── Integration.cs\n├── Properties/\n│   └── launchSettings.json\n├── Program.cs\n├── Dockerfile\n└── README.md\n```\n\n### Project Folders\n\n- `Properties`: Contains project properties and settings.\n- `Models`: Contains data models like `Fact`.\n- `Services`: Contains service classes for scraping and integration.\n- `Program.cs`: The startup point of the application.\n## Setup Instructions\n\n### Prerequisites\n- [.NET SDK 9.0 or higher](https://dotnet.microsoft.com/download/dotnet) should be installed.\n- A code editor such as [Visual Studio Code](https://code.visualstudio.com/) is recommended.\n\n### Running Locally\n```bash\n      1. Clone the repository to your local machine:\n         `git clone https://github.com/telexintegrations/sofware-principles-aggregator.git`\n         `cd sofware-principles-aggregator`\n      \n      2. Restore project dependencies:\n         `dotnet restore`\n      \n      3. Run the application locally:\n         `dotnet run`\n      \n         This will run the API on your local machine. By default, it will be accessible at `http://localhost:5198`.\n      \n      4. Test the API and get the integraion by sending a GET request to the following endpoint:\n         `http://localhost:5198/integration.json`\n```\n## API Documentation\n\n### Endpoint: `GET /base-url/integration.json`\nThis endpoint returns the integration specs\nStatus Code 200\n\n### Endpoint: `POST /base-url/tick`\nThis endpoint to be called by telex\nStatus Code 202\n\n### Endpoint: `POST /base-url/webhook`\nThis an optional enpoint added to get data from the telex channel if need be\nStatus Code 200\n\n## Implementation Details\n\n### GeeksForGeeks Scraper\n\n- Scrapes both popular and recent articles\n- Extracts full article content\n- Includes article preview and publication date\n- Uses article container class selectors for reliable extraction\n\n### MDN Scraper\n\n- Focuses on featured articles from the MDN homepage\n- Extracts article title, preview, and full content\n- Handles relative URLs by converting them to absolute URLs\n- Uses specific class selectors for reliable data extraction\n\n## Deployment\n\nThe application is hosted on Render using Docker. For integration specs and the normal app, visit:\n\n- [Integration Specs](https://sofware-principles-aggregator.onrender.com/integration.json)\n\n## Repository\n\nFor more details, visit the [GitHub Repository](https://github.com/telexintegrations/sofware-principles-aggregator).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fsofware-principles-aggregator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelexintegrations%2Fsofware-principles-aggregator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Fsofware-principles-aggregator/lists"}