{"id":31829899,"url":"https://github.com/softwareengineeringdaily/sedaily-devops","last_synced_at":"2025-10-11T20:58:36.207Z","repository":{"id":49685760,"uuid":"109533288","full_name":"SoftwareEngineeringDaily/sedaily-devops","owner":"SoftwareEngineeringDaily","description":"Logging, monitoring, analytics for SE Daily","archived":false,"fork":false,"pushed_at":"2018-08-23T03:22:19.000Z","size":335,"stargazers_count":13,"open_issues_count":15,"forks_count":7,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2023-10-20T06:12:52.308Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/SoftwareEngineeringDaily.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-04T21:57:45.000Z","updated_at":"2022-07-25T21:54:41.000Z","dependencies_parsed_at":"2022-09-08T08:11:27.542Z","dependency_job_id":null,"html_url":"https://github.com/SoftwareEngineeringDaily/sedaily-devops","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/SoftwareEngineeringDaily/sedaily-devops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareEngineeringDaily%2Fsedaily-devops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareEngineeringDaily%2Fsedaily-devops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareEngineeringDaily%2Fsedaily-devops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareEngineeringDaily%2Fsedaily-devops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoftwareEngineeringDaily","download_url":"https://codeload.github.com/SoftwareEngineeringDaily/sedaily-devops/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftwareEngineeringDaily%2Fsedaily-devops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008636,"owners_count":26084480,"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-10-11T02:00:06.511Z","response_time":55,"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-10-11T20:58:32.211Z","updated_at":"2025-10-11T20:58:36.201Z","avatar_url":"https://github.com/SoftwareEngineeringDaily.png","language":"JavaScript","readme":"[![logo](https://i.imgur.com/3OtP3p8.png)](https://softwareengineeringdaily.com/)\n\n# SEDaily Logging, Monitoring, and Analytics\n\nThe real time event processing infrastructure gateway server for the Software Engineering Daily [Android](https://github.com/SoftwareEngineeringDaily/SEDaily-Android), [iOS](https://github.com/SoftwareEngineeringDaily/se-daily-iOS), and [web front end](https://github.com/SoftwareEngineeringDaily/sedaily-front-end). The SEDaily event stream is responsible for validating event payload schemas before putting the event into InfluxDB. The resulting database is queried using Grafana to get up to the second analytics reporting.\n\n\u003cdiv\u003e\n  \u003ca href=\"https://travis-ci.org/SoftwareEngineeringDaily/sedaily-devops\"\u003e\u003cimg src=\"https://travis-ci.org/SoftwareEngineeringDaily/sedaily-devops.svg?branch=develop\"\u003e\u003c/img\u003e\u003c/a\u003e\n  \u003cimg src=\"https://wt-1364ed7c3f0364e6608ffd3c14d53518-0.run.webtask.io/coverage-badge?service=github\" hspace=\"10\"\u003e\u003c/img\u003e\n\u003c/div\u003e\n\n## Getting Started\n```sh\n$ git clone https://github.com/SoftwareEngineeringDaily/sedaily-devops.git\n$ cd sedaily-devops\n```\n\n### Set up (local) \n  - Install and run a local [InfluxDB](https://github.com/influxdata/influxdb) client\n  - `cp .env.local_example .env`\n  - `npm install` or `yarn install`\n  - `npm start` or `yarn start`\n  - see package.json for other builds\n\n### Set up (Docker)\n  - `cp .env.docker_example .env`\n  - Run `docker-compose up`\n  - If dependencies are updated in package.json, run `docker-compose down` and then `docker-compose up --build`. This will remove the old container and rebuild the API image which installs the new dependencies.\n\n## Contributing\nWe use the develop branch to perform work in. Fork the project and clone it, create a branch off of develop and perform your changes. Then  submit a pull request to merge your branch into the develop branch here. We have an active Slack community that you can reach out to for more information or just to chat with anyone. Check out the [\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/7/76/Slack_Icon.png\" alt=\"Slack Channel\" width=\"20px\"/\u003e SED app development](https://softwaredaily.slack.com/app_redirect?channel=sed_app_development) slack channel. Also see the [Open Source Guide](https://softwareengineeringdaily.github.io/).\n\n## Examples\nFor clients wanting to post events to the API, there should be a base URL variable declared in the config already. Send a post command to the event stream API for the desired event. For the full list of possible events see the [parameter validation schema](https://github.com/SoftwareEngineeringDaily/sedaily-event-stream/blob/develop/config/param-validation.js).\n\n```\n/*\n* Sending a login event to the event stream\n*/\nloginEvent: (username) =\u003e {\n  return axios.post(`${EVENTS_API_BASE_URL}`, {\n    clientId: username,\n    deviceType: 'Browser',\n    eventTime: new Date().getTime(),\n    eventType: 'login',\n    eventData: {},\n    eventApiEnv: `${EVENT_API_ENV}`\n  })\n}\n```\n\n```\n/*\n* Sending a play episode event when the user presses the play button\n*/\nplayEpisodeEvent: (username, playEvent) =\u003e {\n  return axios.post(`${EVENTS_API_BASE_URL}`, {\n    clientId: username,\n    deviceType: 'Browser',\n    eventTime: new Date().getTime(),\n    eventType: 'playEpisode',\n    eventData: {\n      episodeName: playEvent.episodeName,\n      minutesPlayed: playEvent.minutesPlayed,\n      minutesRemaining: playEvent.minutesRemaining\n    },\n    eventApiEnv: `${EVENT_API_ENV}`\n  })\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareengineeringdaily%2Fsedaily-devops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftwareengineeringdaily%2Fsedaily-devops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareengineeringdaily%2Fsedaily-devops/lists"}