-
Notifications
You must be signed in to change notification settings - Fork 0
Adds API, OBS/YouTube integrations, React UI, and Docker deployment #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implements a full API for managing OBS connections and interactions, enabling seamless control of streaming, scene switching, and status monitoring. Introduces a structured architecture with services, controllers, and SignalR for real-time communication, enhancing user experience in managing live streams. Fixes issues with basic connection management and adds functionality for scene management and media status tracking. Optimizing OBS integration for the Thrive Live Stream.
Implements new endpoints for starting, stopping, and checking the status of the OBS Virtual Camera. Enhances audio monitoring by introducing real-time volume meter updates, allowing users to visualize audio levels from all active inputs. Introduces a new component to manage and display these volume levels, along with settings for displaying dB values and scales. Improves SignalR integration for efficient audio data streaming and enhances the user interface for better interaction.
- Add YouTube OAuth authentication (YouTubeAuthService, YouTubeAuthController) - Add YouTube Live broadcast management (YouTubeLiveService, YouTubeLiveController) - Create broadcasts with custom title/description - Persistent stream key support (OBS config never changes) - Broadcast lifecycle: create → bind → testing → live → complete - Thumbnail upload support - Get broadcast defaults from previous streams - Add credential encryption for secure token storage - Add StreamingControls UI component for volunteer-friendly operation - Start Stream button (creates YT broadcast + starts OBS) - Open Facebook button (opens Live Producer URL) - End Stream button (stops OBS + ends YT broadcast) - Real-time status indicators - Update Dashboard to include StreamingControls panel
Adds containerized build and runtime support so the app can be built and deployed as a single image that serves the React UI as static files from the .NET API. Provides environment config and ignore rules for Docker workflows, enables SPA fallback so client-side routing works in production, and wires up a basic healthcheck and persisted data volumes for runtime reliability. - Introduces a multi-stage Dockerfile to build the UI and API and produce a runtime image. - Adds a compose file to simplify local/container deployment, with env loading, volumes, extra_hosts, and healthcheck. - Serves the built frontend from the API (static files + SPA fallback) so API routes take precedence. - Adds example env file and dockerignore / gitignore entries for container artifacts and persisted data. - Tweaks frontend build config to output a dist bundle and optimize chunks for production. - Adds documentation describing the recommended livestream workflow and the rationale for avoiding automated Facebook UI interactions.
Adds comprehensive unit tests for the OBS controller and the credential encryption service to improve coverage and validate key behaviors (connection, scene switching, streaming control, encryption/decryption and input validation). Also updates the test project setup to use MSTest and updates test dependencies while removing the placeholder test. - Introduces controller tests covering connection status, Connect/Disconnect flows, scene listing and switching, and streaming start/stop scenarios with both success and failure paths. - Adds encryption service tests that validate encrypt/decrypt behavior, input validation, invalid base64 handling, and a real-protector roundtrip; also verifies the protector is created with the expected purpose. - Updates test project packages: replaces xUnit with MSTest test adapter/framework and bumps Moq; removes the placeholder unit test file.
Adds a GitHub Actions CI pipeline to automate linting, building and testing of the frontend and backend and to validate Docker image builds on push and PR activity. The pipeline provides fast feedback on regressions and ensures artifacts and container builds are reproducible before merges. - Frontend job: sets up Node, installs dependencies, runs linter and build, and uploads the build artifact for downstream use. - Backend job: sets up .NET, restores dependencies, builds and runs tests to verify server-side correctness. - Docker job: sets up Docker Buildx and performs a local build using the CI cache to validate the Dockerfile without pushing images; depends on UI and API jobs.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a complete backend API, frontend UI, platform integrations, and deployment assets to enable volunteer-friendly live streaming.
Key changes:
Why:
Notes / next steps: