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!
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.