Skip to content

The Platform for Conducting Seamless Online Coding Interviews!πŸš€

Notifications You must be signed in to change notification settings

MadhavKrishanGoswami/InkCode-Fusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.