First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to SlideGenerator. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This project and everyone participating in it is governed by the SlideGenerator Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
This section guides you through submitting a bug report for SlideGenerator. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps to reproduce the problem in as much detail as possible.
- Include screenshots or GIFs which show you following the reproduction steps.
- Explain which behavior you expected to see instead and why.
This section guides you through submitting an enhancement suggestion for SlideGenerator, including completely new features and minor improvements to existing functionality.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as much detail as possible.
- Explain why this enhancement would be useful to most SlideGenerator users.
The process is straightforward:
- Fork the repo on GitHub.
- Clone the project to your own machine.
- Create a branch for your feature or fix:
git checkout -b feature/amazing-feature. - Commit your changes to your own branch.
- Make sure to follow the Code Quality guidelines.
- Write clear, descriptive commit messages.
- Push your work back up to your fork.
- Submit a Pull Request so that we can review your changes.
Ensure you have the following installed:
We recommend using Visual Studio (for Backend) or Visual Studio Code (Full Stack) for the best development experience.
Clone the repository with submodules:
git clone https://github.com/thnhmai06/SlideGenerator --recurse-submodules
cd SlideGeneratorTo update an existing clone:
git fetch
git pull-
Via Visual Studio:
- Open
SlideGenerator.sln. - Set
SlideGenerator.Presentationas the startup project. - Start Debugging (F5).
- Open
-
Via VS Code:
- Open the "Run and Debug" tab.
- Select
[Backend]configuration and Start Debugging (F5).
-
Via CLI:
cd backend dotnet run --project src/SlideGenerator.Presentation
First, install dependencies:
cd frontend
npm install-
Via VS Code:
- Select
[Frontend]configuration and Start Debugging (F5).
- Select
-
Via CLI:
npm run dev
We use Task (also known as go-task) as our build runner. It provides a consistent interface across platforms.
Prerequisites:
- Install Task: Installation Guide
VS Code Integration:
The project includes a .vscode/tasks.json that maps VS Code tasks to Taskfile commands. You can run them via the Terminal -> Run Task menu or by pressing Ctrl+Shift+B for a full build.
Build Commands:
Build everything (Backend + Frontend):
task buildBuild components individually:
task build:backend
task build:frontendRun tests:
task testSpecify target runtime (defaults to win-x64):
task build RUNTIME=linux-x64Supported Runtimes: win-x64, linux-x64, linux-arm, linux-arm64.
Before committing, please run the formatters using Task:
task formatThis will run dotnet format for the backend and npm run format for the frontend.
Backend:
Frontend: