Contributing to XRXP¶
Thank you for your interest in contributing to XRXP! This document provides guidelines for contributing to the project.
Getting Started¶
- Fork the repository on GitHub
- Clone your fork locally
- Create a new branch for your feature or bug fix
- Make your changes
- Submit a pull request
Development Setup¶
See the self-hosting guide for the current local stack and startup flow.
Code Style¶
TypeScript/JavaScript¶
- Use
constby default,letonly when reassignment is needed - Use semicolons consistently
- Follow existing indentation and nearby project style
- Prefer explicit types over
any - Use async/await instead of callbacks
Dashboard Conventions¶
- The dashboard lives in
apps/dashboard/ - Prefer SvelteKit and TypeScript patterns already used in the repo
- Use kebab-case for route and component filenames
- Preserve the current UI and data-flow conventions
Backend Conventions¶
apps/api/uses TypeScript with ES-style importsapps/websocket-ingestion/uses CommonJS JavaScript- Layered architecture: controllers → services → Prisma
- Route params and body fields use camelCase
- Early returns for validation
- Winston logging for all operations
Testing¶
Dashboard¶
Backend¶
Pull Request Process¶
- Update documentation for any new features
- Add tests for new functionality
- Ensure all tests pass
- Update the README.md if needed
- Request review from maintainers
Reporting Issues¶
When reporting bugs, please include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Node version, etc.)
- Relevant logs or screenshots
Code of Conduct¶
This project adheres to a code of conduct. By participating, you are expected to uphold this code:
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Respect different viewpoints and experiences
Questions?¶
Feel free to open an issue for questions or join our discussions.
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.