Updated with rooms features This project is a collaboration platform that allows users to share code, communicate via voice calls and send messages. It is built with a modern tech stack including React for the frontend, Express.js for the backend, and WebRTC for real-time communication.
- Code Sharing: Users can write, edit, and share code in real-time.
- Voice Calls: Users can initiate and receive voice calls.
- Messaging: Users can send and receive text messages.
- Real-time Updates: Leveraging WebRTC and WebSockets for real-time communication and updates.
- Frontend: React
- Backend: Express.js
- Real-time Communication: WebRTC, Socket.IO
- Database: MySQL managed with Sequelize
To run this project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/yourusername/collaboration-platform.git cd collaboration-platform -
Set up environment variables: Create a
.envfile in the root of your project with the following content:PORT=5000 DB_HOST=your_db_host DB_USER=your_db_user DB_PASS=your_db_password DB_NAME=your_db_name REACT_APP_VOICE_API_URL=your_voice_api_url
-
Install dependencies:
npm install
-
Start the server:
npm start
-
Navigate to the
frontdirectory:cd front -
Install dependencies:
npm install
-
Start the React app:
npm start
- Open your browser and navigate to
http://localhost:3000for the frontend. - Use the application to share code, initiate voice calls, and send messages.
If you would like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature). - Open a pull request.
run these command for manually docker compose down --volumes --remove-orphans docker system prune -a --volumes --force docker compose up --build
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or suggestions, feel free to open an issue or contact the project maintainer at your-email@example.com.