Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create contributing.md file #33

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 159 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
# Contributing to InkCode Fusion

Thank you for taking the time to contribute to **InkCode Fusion**! We are excited to have you here, and we appreciate your help in improving the project. Please follow these guidelines to ensure a smooth and collaborative experience.

## Table of Contents
1. [Setting Up the Project](#setting-up-the-project)
2. [Code of Conduct](#code-of-conduct)
3. [Issues](#issues)
4. [Pull Requests](#pull-requests)
5. [Commit Messages](#commit-messages)
6. [Coding Guidelines](#coding-guidelines)
7. [Getting Started](#getting-started)
8. [License](#license)

---

## Setting Up the Project

Follow these steps to set up the project locally:

1. **Fork the repository**: Click on the `Fork` button at the top right of this repository.
2. **Clone your fork**:
```bash
git clone https://github.com/<your-username>/InkCode-Fusion.git
3. **Navigate to the project directory**:
```bash
cd InkCode-Fusion
4. **Create a new branch: Create a new branch for your feature or bug fix.**
```bash
git checkout -b feature/my-new-feature
5. **Make your changes and commit them. Follow the commit message guidelines below.**

## Code of Conduct

Please note that this project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code and maintain a welcoming and inclusive environment for everyone.

---

## Issues

### Reporting Bugs

- Check if the issue is already reported in the [issues](https://github.com/MadhavKrishanGoswami/InkCode-Fusion/issues) section.
- If not, [open a new issue](https://github.com/MadhavKrishanGoswami/InkCode-Fusion/issues/new) with detailed steps to reproduce the bug.
- Be sure to include details such as the version of the project you are using, your operating system, and any relevant logs.

### Requesting Features

- To request a new feature, open an issue using the **Feature Request** template.
- Clearly describe the problem you want to solve and why it is essential.
- If possible, provide mockups or examples to illustrate the proposed feature.

---

## Pull Requests

### Steps to Submit a Pull Request

1. Ensure your branch is up to date with the `main` branch:
```bash
git fetch origin
git checkout main
git merge origin/main
2. Push your feature branch:
```bash
git push origin feature/my-new-feature
3. Open a pull request from your fork to the main branch of this repository.
4. In the pull request description:
- Clearly describe the changes you have made.
- Link to the issue you're addressing (if applicable).
- Provide relevant screenshots or logs to demonstrate your changes.

### Pull Request Guidelines

- Ensure the PR passes all tests.
- Follow the [Coding Guidelines](#coding-guidelines) and [Development Workflow](#development-workflow).
- Be responsive to feedback from maintainers or reviewers.

## Commit Messages

- Write clear and concise commit messages.
- Use the following format for commit messages:
```bash
[Component]: Description of the change

Closes #issue-number

- Begin with an uppercase letter and keep the summary under 50 characters.
- Reference any related issue by number, using keywords like `Closes`, `Fixes`, `Resolves`.

## Coding Guidelines

- Ensure that your code adheres to the existing code style of the project.
- We use the following stack and styles:

### **Tech Stack**:

#### 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](https://www.docker.com/get-started)
- **Yarn**: If not installed, install Yarn using npm:
```bash
npm install --global yarn

```

## Installation and Setup
1. Clone the Repository
- Start by cloning the repository:
```bash
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:
```bash

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):
```bash

yarn install

```
4. Run the Application in Development Mode
- Start the application using the development script:
```bash

yarn dev

```
5. Access the Application
- Open your browser and navigate to http://localhost:3000 to access the frontend interface.

## License

By contributing, you agree that your contributions will be licensed under the MIT License.