A real-time collaborative coding platform built with ASP.NET Core and SignalR, designed for pair programming sessions, technical interviews, and collaborative learning.
The site was taken down temporarily due to the costs to keep it up. Sorry for the inconvenience.
- Real-time Code Editor: Collaborate on code with syntax highlighting for multiple languages
- Integrated Whiteboard: Share ideas visually with collaborative drawing tools
- Room-based Collaboration: Create or join rooms with unique 5-character codes
- User Presence: See who's currently in your room and get notified when users join or leave
- Code Output Console: View code execution output together in real-time
- Multiple Language Support: Switch between programming languages on the fly
- Responsive Design: Works on desktop and tablet devices
- Backend: ASP.NET Core with C#
- Frontend: HTML, CSS, JavaScript
- Real-time Communication: SignalR
- Data Storage: Azure Redis Cache
- Hosting: Azure App Service
The application uses a hub-and-spoke architecture with SignalR at the center:
- SignalR Hub: Manages real-time connections between users in the same room
- Room Service: Handles room creation, user tracking, and session management
- Redis Cache: Provides distributed storage for room data and user sessions
- API Controllers: Process HTTP requests for room creation and verification
- .NET SDK 8.0 or later
- Visual Studio 2022 or Visual Studio Code
- Redis server (optional)
-
Clone the repository:
git clone https://github.com/yourusername/codecollaboration.git cd codecollaboration -
Configure Redis connection:
- Create a
secrets.jsonfile with your Redis connection information:
{ "ConnectionStrings": { "RedisConnection": "your-redis-connection-string" } } - Create a
- Note: If you do not have a Redis server, you can use the RoomService class that uses an in-memory dictionary for storage.
- Replace the following code in
Program.cs:services.AddSingleton<IRoomService, RoomService>();
- Replace the following code in
-
Build and run the application:
dotnet build dotnet run -
Open your browser and navigate to
https://localhost:7157
The application is designed to be deployed to Azure App Service:
- Create an Azure App Service
- Set up an Azure Redis Cache instance
- Configure connection strings in the Azure Portal
- Deploy the application using Visual Studio or Azure DevOps
Contributions are welcome! Please feel free to submit a Pull Request.
Do whatever you want.
- SignalR for real-time communication
- Monaco Editor for the code editor component
- Azure for hosting and Redis cache services
