95 lines
2.9 KiB
Markdown
95 lines
2.9 KiB
Markdown
|
|
# Contributing to LANCommander
|
||
|
|
|
||
|
|
Thanks for your interest in contributing to LANCommander! This project is primarily developed by a single developer, so community contributions are greatly appreciated.
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
### Prerequisites
|
||
|
|
|
||
|
|
- [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
|
||
|
|
- [Node.js](https://nodejs.org/) (for the server UI's TypeScript/SCSS assets)
|
||
|
|
- A code editor such as [Visual Studio](https://visualstudio.microsoft.com/), [Rider](https://www.jetbrains.com/rider/), or [VS Code](https://code.visualstudio.com/)
|
||
|
|
|
||
|
|
### Building the Project
|
||
|
|
|
||
|
|
1. Clone the repository:
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/LANCommander/LANCommander.git
|
||
|
|
cd LANCommander
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Restore dependencies:
|
||
|
|
```bash
|
||
|
|
dotnet restore
|
||
|
|
```
|
||
|
|
|
||
|
|
3. Build the server:
|
||
|
|
```bash
|
||
|
|
dotnet build LANCommander.Server
|
||
|
|
```
|
||
|
|
|
||
|
|
4. Build the launcher:
|
||
|
|
```bash
|
||
|
|
dotnet build LANCommander.Launcher
|
||
|
|
```
|
||
|
|
|
||
|
|
### Running Locally
|
||
|
|
|
||
|
|
To run the server in development mode:
|
||
|
|
```bash
|
||
|
|
dotnet run --project LANCommander.Server
|
||
|
|
```
|
||
|
|
|
||
|
|
The server will be available at `http://localhost:1337` by default.
|
||
|
|
|
||
|
|
## How to Contribute
|
||
|
|
|
||
|
|
### Reporting Bugs
|
||
|
|
|
||
|
|
Use the [GitHub Issues](https://github.com/LANCommander/LANCommander/issues) page with the bug report template. Include:
|
||
|
|
- Steps to reproduce the issue
|
||
|
|
- Expected vs. actual behavior
|
||
|
|
- Your OS and LANCommander version
|
||
|
|
- Relevant logs or screenshots
|
||
|
|
|
||
|
|
### Submitting Changes
|
||
|
|
|
||
|
|
1. Fork the repository
|
||
|
|
2. Create a feature branch from `main` (`git checkout -b my-feature`)
|
||
|
|
3. Make your changes
|
||
|
|
4. Test your changes locally
|
||
|
|
5. Commit with a clear, descriptive message
|
||
|
|
6. Push to your fork and open a Pull Request
|
||
|
|
|
||
|
|
### What to Work On
|
||
|
|
|
||
|
|
- Check [open issues](https://github.com/LANCommander/LANCommander/issues) for bugs or feature requests
|
||
|
|
- Documentation improvements are always welcome at our [documentation site](https://docs.lancommander.app/)
|
||
|
|
- Game packaging scripts and guides for the community
|
||
|
|
|
||
|
|
### Code Guidelines
|
||
|
|
|
||
|
|
- Follow existing code style and conventions in the project
|
||
|
|
- Keep PRs focused, one feature or fix per PR when possible
|
||
|
|
- Include screenshots in your PR if you're changing UI
|
||
|
|
|
||
|
|
## Project Structure
|
||
|
|
|
||
|
|
| Directory | Description |
|
||
|
|
|-----------|-------------|
|
||
|
|
| `LANCommander.Server` | ASP.NET Blazor web application (server/admin) |
|
||
|
|
| `LANCommander.Launcher` | Avalonia desktop client (launcher) |
|
||
|
|
| `LANCommander.Packager` | Game packaging tool |
|
||
|
|
| `LANCommander.SDK` | .NET SDK for building custom clients |
|
||
|
|
| `LANCommander.Server.Data` | Entity Framework data models and migrations |
|
||
|
|
| `LANCommander.Server.Services` | Server business logic |
|
||
|
|
| `LANCommander.Documentation` | Docusaurus documentation site |
|
||
|
|
|
||
|
|
## Community
|
||
|
|
|
||
|
|
- [Discord](https://discord.gg/vDEEWVt8EM): Best place for discussion, help, and sharing game packages
|
||
|
|
|
||
|
|
## License
|
||
|
|
|
||
|
|
By contributing to LANCommander, you agree that your contributions will be licensed under the [MIT License](LICENSE).
|