/InkCode-Fusion

The Platform for Conducting Seamless Online Coding Interviews!🚀

Primary LanguageJavaScript

InkCode Fusion

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.


🚀 Key Features

💻 Real-time Code Editor

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

💬 Integrated Chat

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

🎥 Video/Voice Calls

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

⚡ Live Code Execution

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

🧑‍🤝‍🧑 Collaborative Whiteboard (Planned)

  • Interactive Whiteboard: Collaborate on diagrams and visual representations while coding.

🧱 Application Architecture

The architecture of InkCode Fusion is designed for scalability and real-time collaboration. Here's a high-level overview:

Architecture Diagram


🛠️ Technologies Used

Frontend:

  • Framework: MERN stack (React.js)
  • Libraries: React, Tailwind CSS, CodeMirror
  • UI Enhancements: Tailwind CSS for sleek, responsive UI design

Backend:

  • Server: Node.js
  • Real-time Features: Socket.IO for real-time communication and collaboration
  • Video/Voice: Agora SDK
  • Database/Cache: Redis for session management

Application Framework:

  • Desktop Application: Electron.js
  • Monorepo Management: Turborepo for efficient project structure and builds

🔧 Getting Started

To run InkCode Fusion on your local machine, follow these steps:

Prerequisites

  • Docker: Make sure Docker is installed on your machine. Install Docker
  • Yarn: If not installed, install Yarn using npm:
    npm install --global yarn
    

Installation and Setup

  1. Clone the Repository
    • Start by cloning the repository:
      git clone https://github.com/MadhavKrishanGoswami/InkCode-Fusion.git
      cd InkCode-Fusion
      
  2. 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
      
  3. Install Dependencies and Initialize Turborepo
    • Install the project dependencies using Yarn (recommended for Turborepo-based projects):
      yarn install
      
  4. Run the Application in Development Mode
    • Start the application using the development script:
      yarn dev
      
  5. Access the Application

📖 Usage Instructions

Create or Join a Room

You can either create a new room or join an existing one to start collaborating with your peers.

Utilize the Features

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

Future Feature Updates

Stay tuned for future updates, including the interactive whiteboard and more advanced code collaboration features!


👥 Contributing

We welcome contributions from the community! To contribute to InkCode Fusion, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature/bug fix.
  3. Submit a pull request detailing your changes.

Feel free to check out the Issues section for feature requests, bugs, or to suggest improvements.


👀 Our Contributors

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

📝 License

This project is licensed under the MIT License. See the LICENSE file for more details.


🤝 Acknowledgments

  • Thanks to all the developers and contributors who have made this project possible.
  • Special thanks to Agora for their SDK integration.