InkCode Fusion is an all-in-one web application designed for technical interviews and collaborative coding. It provides a versatile platform with powerful features for seamless communication, code collaboration, and interactive problem-solving.
- Multi-user Synchronization: Collaborate with others in real-time as the code editor syncs across all connected users.
- Support for Multiple Languages: Write code in various programming languages with real-time syntax highlighting.
- Code History: Navigate through the code history for seamless version control during your session.
- Real-time Messaging: Communicate with your team using an in-built chat feature while coding.
- Persistent Chat History: Chat logs are maintained for reviewing discussions and suggestions post-session.
- Face-to-Face Collaboration: Initiate video and voice calls directly within the platform to discuss ideas and solve problems.
- Multiple Participants Support: Have group discussions with multiple users in a single session.
- Instant Code Execution: Run code instantly and see the results without leaving the application.
- Multi-Language Support: Supports code execution in various languages like Python, JavaScript, and more.
- Interactive Whiteboard: Collaborate on diagrams and visual representations while coding.
The architecture of InkCode Fusion is designed for scalability and real-time collaboration. Here's a high-level overview:
- Framework: MERN stack (React.js)
- Libraries: React, Tailwind CSS, CodeMirror
- UI Enhancements: Tailwind CSS for sleek, responsive UI design
- Server: Node.js
- Real-time Features: Socket.IO for real-time communication and collaboration
- Video/Voice: Agora SDK
- Database/Cache: Redis for session management
- Desktop Application: Electron.js
- Monorepo Management: Turborepo for efficient project structure and builds
To run InkCode Fusion on your local machine, follow these steps:
- Docker: Make sure Docker is installed on your machine. Install Docker
- Yarn: If not installed, install Yarn using npm:
npm install --global yarn
- Clone the Repository
- Start by cloning the repository:
git clone https://github.com/MadhavKrishanGoswami/InkCode-Fusion.git cd InkCode-Fusion
- Start by cloning the repository:
- Run Redis Using Docker
- Redis is required for real-time session management. Start Redis using Docker:
docker run --rm --name redis -p 6379:6379 redis
- Redis is required for real-time session management. Start Redis using Docker:
- Install Dependencies and Initialize Turborepo
- Install the project dependencies using Yarn (recommended for Turborepo-based projects):
yarn install
- Install the project dependencies using Yarn (recommended for Turborepo-based projects):
- Run the Application in Development Mode
- Start the application using the development script:
yarn dev
- Start the application using the development script:
- Access the Application
- Open your browser and navigate to http://localhost:3000 to access the frontend interface.
You can either create a new room or join an existing one to start collaborating with your peers.
- Code Editor: Collaborate with your peers in the real-time synced editor.
- Chat: Discuss your approach or ask questions through the chat interface.
- Video/Voice Call: Initiate a video or voice call to communicate effectively.
- Run Code: Execute and test your code snippets within the platform.
Stay tuned for future updates, including the interactive whiteboard and more advanced code collaboration features!
🌟 Stars | 🍴 Forks | 🐛 Issues | 🔔 Open PRs | 🔕 Closed PRs | 🛠️ Languages | ✅ Contributors |
---|---|---|---|---|---|---|
We welcome contributions from the community! To contribute to InkCode Fusion, please follow these steps:
- Fork the repository.
- Create a new branch for your feature/bug fix.
- Submit a pull request detailing your changes.
Feel free to check out the Issues section for feature requests, bugs, or to suggest improvements.
- We extend our heartfelt gratitude for your invaluable contribution to our project! Your efforts play a pivotal role in elevating this project to greater heights.
- Make sure you show some love by giving ⭐ to our repository.
This project is licensed under the MIT License. See the LICENSE file for more details.
- Thanks to all the developers and contributors who have made this project possible.
- Special thanks to Agora for their SDK integration.