{"id":29099927,"url":"https://github.com/bcc-code/bcc-media-platform","last_synced_at":"2026-03-17T18:36:25.763Z","repository":{"id":36953486,"uuid":"421723152","full_name":"bcc-code/bcc-media-platform","owner":"bcc-code","description":"[BCC Media] Website and backend for the BCC Media apps","archived":false,"fork":false,"pushed_at":"2025-10-24T10:11:01.000Z","size":32981,"stargazers_count":9,"open_issues_count":8,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-24T10:27:08.430Z","etag":null,"topics":["bcc-media"],"latest_commit_sha":null,"homepage":"https://app.bcc.media","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcc-code.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-10-27T07:43:38.000Z","updated_at":"2025-10-24T10:11:05.000Z","dependencies_parsed_at":"2024-02-19T10:30:43.414Z","dependency_job_id":"ff4cdbb0-0c1a-423f-bca5-299e6b5cd31a","html_url":"https://github.com/bcc-code/bcc-media-platform","commit_stats":null,"previous_names":["bcc-code/brunstadtv"],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/bcc-code/bcc-media-platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcc-code%2Fbcc-media-platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcc-code%2Fbcc-media-platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcc-code%2Fbcc-media-platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcc-code%2Fbcc-media-platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcc-code","download_url":"https://codeload.github.com/bcc-code/bcc-media-platform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcc-code%2Fbcc-media-platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30628418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bcc-media"],"created_at":"2025-06-28T17:37:50.298Z","updated_at":"2026-03-17T18:36:25.746Z","avatar_url":"https://github.com/bcc-code.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://bccmedia.semaphoreci.com/badges/brunstadtv/branches/develop.svg?style=shields\u0026key=ca08f58c-7627-45e3-ab5e-3bfae64cc963)](https://bccmedia.semaphoreci.com/projects/brunstadtv)\n\n\n# BCC Media\n\n## Prerequisites\n- `make`\n- **Database**\n  - `pg-diff-cli` `npm i -g pg-diff-cli`\n  - Goose `go install github.com/pressly/goose/v3/cmd/goose@latest`\n- **Backend**\n  - Golang v1.19.0^\n- **WEB**\n  - NodeJS\n  - PNPM\n  - NPM\n- **CMS**\n  - NPM\n\n## Installing\n\nRun\n```\nmake install\n```\nTo install the database and run the initial migrations. This will clean the existing database if present\n\n## Services\n\nBCC Media is split into different services which are responsible for different parts of the application.\n\n\n### [Jobs](./backend/cmd/jobs)\nis an event listener hooked up to Google's PubSub. Events sent to PubSub triggers requests to endpoints on this service (in Cloud Run) which in turn do something based on the data in the event.\n\nFor example:\n- Reindexing Search\n- Synchronize Translations\n- Update entries in respective external systems (search, crowdin)\n\nA fake pubsub instance is run with the compose file, and is configured/triggered manually by the \"commands\" in the backend [Makefile](./backend/Makefile)\n\n### [API](./backend/cmd/api)\nis the public facing/open GraphQL API which an (un)authenticated user can retrieve data. It is built on the GraphQL schema files located at [graph/schema](./backend/graph/api/schema)\n\nIn most cases, this is the only backend service (in addition to a filled database/CMS) you need to run in order to get a working local environment, as this is what the frontend will exclusively communicate with.\n\nYou can start the API with `make run-api` inside the 'backend' folder. **Just remember to update the `backend/cmd/api/.env` file (run `make run-api` once and it'll make a sample one you can update.)**\n\n#### Authentication\n\nAuthentication is implemented with [Auth0](https://auth0.com). At the moment, we use custom claims which means an Auth0 tenant and application won't work out of the box, even if the options are configured correctly in the environment here.\n\nAdditional user data is retrieved from the BCC Members API (api.bcc.no)\n\n### [CMS](./cms)\n\nThe CMS is the system for managing the content, and is run in a separate container with Directus. This application only writes to the database and has hooks to our event service for triggering actions based on the events.\n\nThe database must be running and installed with the migrations in order for this to work. It is run with the `make run` command in the respective directory.\n\nSetup the cms with `make init`.\n\nThe initial login credentials are:\n**Username:** admin@brunstad.tv\n**Pass:** btv123\n\n### Test-data\nYou can quickly make some dummy data with `./packages/test-data`. Do `npm install` and `make all`.\n\n### Formats\n\nThe default date format is RFC3339. For go: `x.Format(time.RFC3339)`\n\n## [Testing](./tests)\n\nDo `make tests.setup` to install dependencies and set up a testing environment.\n\nDo `make tests.run` to run configured tests.\n\n### [End to end](./tests/e2e)\n\nE2E testing is written mostly in TypeScript and uses [AVA](https://github.com/avajs/ava) as the testing framework.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcc-code%2Fbcc-media-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcc-code%2Fbcc-media-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcc-code%2Fbcc-media-platform/lists"}