Giter VIP home page Giter VIP logo

codestream's Introduction

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Codestream

A collaborative web based code-editor

View Demo · Report Bug · Request Feature

About The Project

Landing page

Codestream is a collaborative web-based code editor. It allows one to collaborate with their teammates while writing code. Codestream uses codemirror as its code editor. It also provides syntax highlighting for many languages.


Editor

Design Doc

Codestream Case Study - Case Study

Built With

Features

  • Collaborative - Users can collaborate in real-time on their code
  • Multiple Languages - Codestream supports multiple language highlighting
  • Compiler - Codestream has an embedded compiler which can compile your code
  • Chat - Users can chat while they collaborate
  • Zen mode - Codestream supports zen mode for a better editing experience
  • Responsive - Start collaborating through your mobile
  • Question Pane - Add question directly in your room from supported websites(Leetcode, Codeforces, Atcoder, CSES)

Getting Started

Setup Codestream on your local machine using these simple steps:

Prerequisites

  • npm
    npm install npm@latest -g

Installation

  1. Fork the repo
  2. Clone the repo
    git clone https://github.com/your_username_/codestream.git
  3. Install NPM packages
    npm install
  4. Create a .env file in the root directory. Enter your API in .env
    • If you have codestream-server already on your local system
      REACT_APP_SERVER = http://localhost:5000
    • If you have deployed the server on any platform replace http://localhost:5000 with the server URL.

Alternative

If you want to skip all this hassle and straight away dive into coding, consider creating a Codesandbox and import this repository using URL.

Roadmap

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Your Name - @7Aryany - [email protected]

Project Link: https://github.com/starwiz-7/codestream

Acknowledgments

codestream's People

Contributors

koda-pig avatar starkizard avatar starwiz-7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

codestream's Issues

Chat feature for users in room

Is your feature request related to a problem? Please describe.
Adding a chat feature for users in the room to communicate

Describe the solution you'd like
Adding a chatbox in the sidebar component under the active users component, so that users can access it easily.

Improve Responsiveness

Describe the bug
Editor and room page is not responsive

To Reproduce
Steps to reproduce the behavior:

  1. Go to CodeStream
  2. Click on Create new room
  3. Switch to mobile view
  4. Editor and the side tab are not responsive

Additional context
Website works well in desktop view.

More editor customisation

Is your feature request related to a problem? Please describe.
Add a modal for settings, so that users can set the editor theme and change the font size of the editor

Describe the solution you'd like
Adding a button on the top navbar, when clicked will open a modal so that users can change editor settings from there.

Improve slug creation

Currently, the slug is created randomly using 3 lists.

Still, this can lead to collisions.

Possible fix - Use socket.id of the creator and add to slug

Audio Chat

Is your feature request related to a problem? Please describe.
Audio chat feature for users to communicate efficiently.

Naming of Anonymous Users

The Problem
All anonymous people are named "Anonymous shark" thus hard to track who's making the Changes

Solution
Random selection of unique usernames for anyone who joins. Maintaining the already used usernames in a set may help

Screenshot
image

Whiteboard

Is your feature request related to a problem? Please describe.
Develop a whiteboard(collaborative) so that users can express their thoughts

Describe the solution you'd like
Add a button on the side panel to switch between editor and whiteboard. The whiteboard must-have options like pencil, creating shapes, eraser, erase all. This should be a collaborative whiteboard where users can see what other users in the room are drawing.

Scraper to scrape questions

Is your feature request related to a problem? Please describe.
Write scraper to scrape question from various websites

  • Leetcode
  • Atcoder
  • Codeforcees
  • #22

any other website ...

Describe the solution you'd like
Use cheer-io library to write a scraper for the same in codestream-server repository.

Additional context

It is related to feature of users getting the question right inside codestream by just submitting the link of the question

Add a question pane to view question

Is your feature request related to a problem? Please describe.
Add a pane for users to fetch questions in the codestream

Describe the solution you'd like
Use Chakra-UI's drawer component to allow the user to submit a link to a question and then view the question in the same place.
The API call to the backend will post the URL and will receive the question HTML as the response

Additional context
The response will be received from the server.
The issue to build scraper -
#18

Compile and Run button

Is your feature request related to a problem? Please describe.
Integrate a compile and run button with an input/output tab, so that users can check the code right inside the room and do not have to use any other service.

Describe the solution you'd like
Using piston or Jdoodle API can build this compile and run button.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.