Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Contributing to RoomRTC

Thank you for your interest in contributing to RoomRTC! We welcome contributions from the community.

## How to Contribute

### Reporting Issues

- Check if the issue already exists in the issue tracker
- Use a clear and descriptive title
- Provide detailed steps to reproduce the problem
- Include relevant logs, screenshots, or code samples

### Submitting Changes

1. **Fork the repository** and create your branch from `main`
2. **Make your changes** following our coding standards
3. **Test your changes** thoroughly
4. **Commit your changes** with clear, descriptive commit messages
5. **Push to your fork** and submit a pull request

### Pull Request Guidelines

- Provide a clear description of the changes
- Reference any related issues
- Ensure all tests pass
- Update documentation as needed
- Keep pull requests focused on a single concern

### Code Style

- Follow the existing code style in the project
- Write clear, readable code with appropriate comments
- Keep functions small and focused

### Development Setup

1. Clone the repository
2. Install dependencies
3. Create a new branch for your feature or fix
4. Make your changes and test locally

## Code of Conduct

Please be respectful and constructive in all interactions. We are committed to providing a welcoming and inclusive environment for all contributors.

## Questions?

Feel free to open an issue for questions or clarifications about contributing.

Thank you for contributing to RoomRTC!
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Issue Template

## Issue Type
- [ ] Bug Report
- [ ] Feature Request
- [ ] Documentation Update
- [ ] Question
- [ ] Other

## Description
A clear and concise description of the issue.

## Steps to Reproduce (for bugs)
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

## Expected Behavior
What you expected to happen.

## Actual Behavior
What actually happened.

## Screenshots
If applicable, add screenshots to help explain your problem.

## Environment (if relevant)
- OS: [e.g. Windows, macOS, Linux]
- Browser: [e.g. Chrome, Firefox, Safari]
- Version: [e.g. 1.0.0]

## Additional Context
Add any other context about the problem here.

## Possible Solution (optional)
If you have suggestions on how to fix the issue.
47 changes: 47 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## Description

Please include a summary of the changes and the related issue. Explain the motivation and context for this pull request.

Fixes # (issue)

## Type of Change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Code refactoring
- [ ] Performance improvement
- [ ] Other (please describe):

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

- [ ] Test A
- [ ] Test B

**Test Configuration**:
* Browser/Environment:
* Version:

## Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

Add screenshots to help explain your changes.

## Additional Notes

Add any other context about the pull request here.
142 changes: 142 additions & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Security Policy

## Supported Versions

We release patches for security vulnerabilities in the following versions:

| Version | Supported |
| ------- | ------------------ |
| 1.x.x | :white_check_mark: |
| < 1.0 | :x: |

**Note:** We recommend always using the latest stable version to ensure you have all security updates and patches.

## Reporting a Vulnerability

We take the security of RoomRTC seriously. If you believe you have found a security vulnerability, please report it to us as described below.

### How to Report

**Please do NOT report security vulnerabilities through public GitHub issues.**

Instead, please report security vulnerabilities by:

1. **Email**: Send an email to sebita29@gmail.com
2. **Subject Line**: Include "RoomRTC Security Vulnerability" in the subject
3. **Details to Include**:
- Type of vulnerability
- Full paths of source file(s) related to the vulnerability
- Location of the affected source code (tag/branch/commit or direct URL)
- Step-by-step instructions to reproduce the issue
- Proof-of-concept or exploit code (if possible)
- Impact of the vulnerability, including how an attacker might exploit it

### What to Expect

- **Acknowledgment**: You should receive an acknowledgment within 48 hours
- **Investigation**: We will investigate and validate the reported vulnerability
- **Updates**: We will keep you informed about the progress of the fix
- **Resolution**: Once the vulnerability is fixed, we will notify you and publicly acknowledge your responsible disclosure (unless you prefer to remain anonymous)
- **Timeline**: We aim to resolve critical vulnerabilities within 30 days

### Disclosure Policy

- Please give us reasonable time to address the vulnerability before any public disclosure
- We will credit you for the discovery in our security advisories (unless you prefer anonymity)
- We follow coordinated disclosure practices

## Security Best Practices

### For Users

1. **Keep Updated**: Always use the latest stable version of RoomRTC
2. **Secure Configuration**:
- Use strong, unique passwords for any authentication
- Enable HTTPS/WSS for all WebRTC connections
- Configure proper CORS policies
3. **Network Security**:
- Use TURN servers with authentication
- Implement proper firewall rules
- Validate and sanitize all user inputs
4. **Monitoring**:
- Monitor your application logs for suspicious activity
- Set up alerts for unusual connection patterns

### For Developers

1. **Secure Coding Practices**:
- Validate and sanitize all inputs, especially signaling data
- Use parameterized queries to prevent injection attacks
- Implement proper authentication and authorization
- Follow the principle of least privilege

2. **WebRTC Security**:
- Always use HTTPS for serving WebRTC applications
- Use WSS (WebSocket Secure) for signaling
- Implement proper STUN/TURN server authentication
- Validate peer connections before establishing media streams

3. **Dependencies**:
- Regularly update all dependencies
- Use tools like `npm audit` or `yarn audit` to check for known vulnerabilities
- Review dependency licenses and security advisories

4. **Data Protection**:
- Implement end-to-end encryption for sensitive data
- Don't store sensitive information in logs
- Follow GDPR and other relevant data protection regulations
- Use secure token generation for session management

5. **Code Review**:
- Conduct security-focused code reviews
- Use static analysis tools to identify potential vulnerabilities
- Implement automated security testing in CI/CD pipelines

### Security Checklist

Before deploying RoomRTC in production:

- [ ] All communications use HTTPS/WSS
- [ ] Authentication is properly implemented
- [ ] Input validation is in place for all user inputs
- [ ] CORS policies are correctly configured
- [ ] Rate limiting is implemented to prevent DoS attacks
- [ ] Error messages don't expose sensitive information
- [ ] Security headers are properly configured
- [ ] Dependencies are up to date
- [ ] Logging doesn't include sensitive data
- [ ] Security testing has been performed

## Known Security Considerations

### WebRTC Specific

1. **IP Address Exposure**: WebRTC can expose users' real IP addresses even when using a VPN. Consider:
- Implementing IP masking via TURN servers
- Warning users about potential IP exposure
- Providing configuration options for privacy-conscious users

2. **Cross-Site Scripting (XSS)**: Ensure all user-generated content is properly sanitized

3. **Man-in-the-Middle Attacks**: Always use encrypted connections and verify peer identities

## Security Updates

Security updates and patches will be announced through:
- GitHub Security Advisories
- Release notes
- Project README

Subscribe to repository releases to stay informed about security updates.

## Additional Resources

- [WebRTC Security Architecture](https://datatracker.ietf.org/doc/html/rfc8827)
- [OWASP WebRTC Security Guidelines](https://owasp.org/)
- [MDN Web Security](https://developer.mozilla.org/en-US/docs/Web/Security)

---

**Last Updated**: 2025-12-17

Thank you for helping keep RoomRTC and its users safe!
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2024 taller-1-fiuba-rust
Copyright (c) 2025 Sebastian Brizuela

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ This repository contains all source code, documentation, and configuration files
<a name="team"></a>
## 👥 Team Members

| StudentID | Name |
| :-------: | :------ |
| 103384 | Adriana Macarena Iglesias Tripodi |
| 105288 | Sebastián Brizuela |
| 105400 | Franco Altieri Lamas |
| 105907 | Nicolás Chen |
| StudentID | Name | Github |
| :-------: | :-------------------------------- | :----------------------------------------------- |
| 103384 | Adriana Macarena Iglesias Tripodi | [AIglesiasT](https://github.com/AIglesiasT) |
| 105288 | Sebastián Brizuela | [SebaB29](https://github.com/SebaB29) |
| 105400 | Franco Altieri Lamas | [FrancoAltieri](https://github.com/FrancoAltieri) |
| 105907 | Nicolás Chen | [nichen710](https://github.com/nichen710) |

<a name="about"></a>
## ℹ️ About the Project
Expand Down Expand Up @@ -221,4 +221,4 @@ This repository includes a `LICENSE` file. Please refer to it for detailed licen

---

**Developed with 🦀 by Rusty Coders | Taller de Programación I - FIUBA - 2025**
**Developed with 🦀 by Rusty Coders | Taller de Programación I - FIUBA - 2025**
Loading