Thank you for your interest in contributing 🤗! This document provides guidelines and steps for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/[your-github-username]/StreamMaster.git
- Create a new branch:
git checkout -b [your-feature-name]
- Git: For version control
- Docker: For running the development container (recommended)
- .NET SDK: For C# backend development (if not using Dev Container)
- Node.js: For React frontend development (if not using Dev Container)
StreamMaster provides a DevContainer configuration for a consistent development experience:
-
Install Prerequisites:
- Visual Studio Code
- Docker installed locally or a remote environment (e.g. Podman Desktop, Docker Desktop, Docker in WSL2, etc)
-
Open in Visual Studio Code with DevContainer:
- Open the project in VS Code
- When prompted, select "Reopen in Container"
- Alternatively, use the command palette (F1) and select "Dev Containers: Open Folder in Container..."
-
Launch 🚀:
CTRL+SHIFT+D
to view the "Run and Debug" panel- At the top, you can select from various Launch Profiles. It's likely that
Full Stack: Run
profile will be best to start with- Polling is there if your environment is not working with Hot Reloading for Front End development (e.g. in WSL2)
There are many ways that could be detailed here. It's simplest to get Visual Studio to launch the .sln
file. Then use Visual Studio Code for working with the Front End.
However based on command line functions, it would be;
- Backend Setup:
dotnet build
dotnet watch run --project src/StreamMaster.API/StreamMaster.API.cspro
Access API at: http://localhost:7095/swagger
- Frontend Setup:
cd src/StreamMaster.WebUI
npm install
npm run dev
Access UI at: http://localhost:3000
/src/
: Contains all source code/src/StreamMaster.API
: C# based API, this is the "host" that runs everything backend wise/src/StreamMaster*
: Other C# project folders for various components of th ebackend/stc/StreamMaster.WebUI
: React frontend (Vite-based)
- Make your changes on your own fork and branch
- Follow the existing code style and formatting
- Add tests if applicable
- Ensure all tests pass
- Update documentation as needed
- Ensure your PR description clearly describes the problem and solution
- Reference any related issues in your PR description
- Make sure your branch is up to date with the
main
branch before submitting (rebase is required)
- Use meaningful variable and function names
- Comment complex logic
- Keep functions focused and concise
- Follow existing project patterns and conventions
- Follow the Conventional Commits naming conventions
- Separate subject from body with a blank line
- Subject should be limited to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the body to add additonal context (what, why, how)
- Use the GitHub issue tracker
- Check existing issues before creating new ones
- Provide clear steps to reproduce bugs
- Include relevant system information and logs
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
Feel free to open a discussion for any questions not covered by this guide.