{"id":28727669,"url":"https://github.com/norgul/rtc","last_synced_at":"2025-10-07T14:06:38.648Z","repository":{"id":298253632,"uuid":"999334925","full_name":"Norgul/rtc","owner":"Norgul","description":"Real-time camera challenge","archived":false,"fork":false,"pushed_at":"2025-06-12T09:32:55.000Z","size":3213,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-06T15:41:22.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/Norgul.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,"zenodo":null}},"created_at":"2025-06-10T05:22:44.000Z","updated_at":"2025-06-12T09:32:58.000Z","dependencies_parsed_at":"2025-06-10T23:45:52.640Z","dependency_job_id":null,"html_url":"https://github.com/Norgul/rtc","commit_stats":null,"previous_names":["norgul/rtc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Norgul/rtc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norgul%2Frtc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norgul%2Frtc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norgul%2Frtc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norgul%2Frtc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Norgul","download_url":"https://codeload.github.com/Norgul/rtc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Norgul%2Frtc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278786685,"owners_count":26045591,"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-07T02:00:06.786Z","response_time":59,"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-06-15T15:13:51.776Z","updated_at":"2025-10-07T14:06:38.516Z","avatar_url":"https://github.com/Norgul.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Frontend code challenge\n\nThis is a WebRTC showcase project which shows real-time video streaming \u0026 recording\nwith possibility of applying filters to the input stream.\n\n## Setup\n\nTo run the project in dev mode, you need to execute these commands:\n\n- ``npm i``\n- ``npm run build``\n- ``npm run dev``\n\nOtherwise, just open ``dist/index.html`` in the browser.\n\n## Technical decisions \u0026 architecture\n\nProject is a vanilla TS/SCSS implementation with [Vite](https://vite.dev/) used for project\nbuilding and live reload.\n\nProject structure:\n\n- ``Camera`` is a class responsible for camera initialization\n- ``FilterManager`` is a class responsible for loading filters and is called from within\n  ``Camera`` to separate filtering logic. Manager subsequently calls upon filters from\n  ``/filters`` directory to have a clear separation of concerns\n\nFilters are implemented for the most part as a pixel manipulation algorithm due to its\nsimplicity. Only exception is ``Blur`` which has a horrible performance using such approach,\nso that part is done using WebGL instead.\n\nMy initial idea was to have checkboxes for each of the filters, however those became obsolete\nwhen sliders were implemented, so I got rid of them completely. To turn on a filter, it is\nenough to increase the slider above 0.\n\n## Known Limitations \u0026 Browser Compatibility Notes\n\nMinimum browser versions required:\n\n- Chrome 60+\n- Firefox 55+\n- Safari 11+\n- Edge 79+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorgul%2Frtc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnorgul%2Frtc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnorgul%2Frtc/lists"}