Thank you for your interest in contributing to CommDesk.
CommDesk is a desktop platform for communities, clubs, organizations, and event teams. Contributions that improve usability, reliability, documentation, maintainability, and developer experience are welcome.
Before making changes, please review the existing documentation and project structure to understand the current scope of the repository.
This repository includes:
- A React + TypeScript frontend
- A Tauri desktop application layer
- A Rust backend under
src-tauri - Documentation for project scope, implementation status, and release flow
To work on this project, you should have the following installed:
- Node.js 20 or later
- pnpm 10 or later
- Rust stable (
rustup,cargo) - The platform-specific dependencies required by Tauri
For Linux, macOS, and Windows, please ensure the appropriate system dependencies are installed before building the project.
- Fork the repository.
- Clone your fork locally.
- Install dependencies.
- Start the development environment.
- Make your changes in a feature branch.
- Test thoroughly before opening a pull request.
git clone https://github.com/NexGenStudioDev/CommDesk.git
cd CommDesk
pnpm install
For local development:
pnpm tauri devIf you need to work on the frontend separately:
pnpm devUse a descriptive branch name for your work.
Recommended formats:
feature/<short-description>fix/<short-description>docs/<short-description>refactor/<short-description>
Examples:
feature/member-searchfix/login-errordocs/update-readme
Please follow the existing code style and project conventions.
General expectations:
- Keep changes focused and minimal
- Write clear, readable, and maintainable code
- Follow the current folder structure and architecture
- Avoid introducing unnecessary dependencies
- Prefer small, reusable components and functions
- Keep frontend and backend changes consistent with the existing design
Before submitting, format and lint your code where applicable.
All contributions should be tested locally before submission.
At minimum, verify:
- The application starts successfully
- The change works as intended
- Existing functionality is not broken
- The project passes linting and build checks where relevant
Useful commands:
pnpm lint
pnpm build
pnpm tauri devIf your contribution affects desktop packaging or Rust functionality, test the relevant Tauri or src-tauri workflow as well.
Before opening a new issue:
- Search existing issues to avoid duplicates
- Use a clear and descriptive title
- Include steps to reproduce the problem
- Add screenshots, logs, or environment details when relevant
A good bug report should explain:
- What you expected to happen
- What actually happened
- How to reproduce the issue
- Which platform and version you used
When opening a pull request, please ensure that:
- The pull request has a clear title
- The description explains what was changed and why
- Related issues are linked when applicable
- The changes are limited to a single purpose where possible
- The branch is up to date with the target branch before submission
A strong pull request should include:
- A short summary of the change
- Screenshots or recordings for UI updates
- Testing notes
- Any relevant context for reviewers
Use concise and meaningful commit messages.
Recommended style:
feat: add member searchfix: resolve updater issuedocs: improve contribution guiderefactor: simplify event module
Do not commit secrets, private keys, or environment-specific credentials.
If your change requires configuration values, update the example environment file or documentation instead of exposing sensitive data.
Please keep discussions respectful, constructive, and professional.
Be considerate in:
- Issues
- Pull requests
- Code reviews
- Documentation discussions
This project follows a code of conduct. All contributors are expected to follow it.
Maintainers may request changes before merging a pull request. Please respond to review feedback promptly and keep discussions focused on the proposed change.
By contributing to CommDesk, you agree that your contributions will be made under the same License as the project.