Git Product home page Git Product logo

kothariji / syntaxmeets Goto Github PK

View Code? Open in Web Editor NEW
168.0 3.0 58.0 66.7 MB

Syntaxmeets. Create rooms 🏠 Call your friends πŸ‘¬πŸΌ Sip Chai, β˜• Chat, Create, and CodeπŸ‘¨β€πŸ’». A coding platform to code simultaneously πŸš€ with your friends and design your algorithms on SyntaxPad.πŸ’«βœ¨

Home Page: https://syntaxmeets.vercel.app

License: MIT License

HTML 3.47% JavaScript 93.69% CSS 2.84%
code code-editor programming react chatroom room draw javascript socket-io code-completion

syntaxmeets's Introduction

SyntaxMeets

SM

Syntaxmeets. Create rooms 🏠 Call your friends πŸ‘¬πŸΌ Sip Chai, β˜• Chat, Create, and CodeπŸ‘¨β€πŸ’». A coding platform to code simultaneously πŸš€ with your friends and design your algorithms on SyntaxPad. And you know what's awesome? It's Free.πŸ’«βœ¨

Vercel contributions welcome Open Source? Yes!

forthebadge forthebadge


Website - SyntaxMeets

Features

πŸš€Glimpse πŸ’«πŸ’«

createaroom

Creators βš‘πŸ’«


Dhruv Kothari
πŸ§ πŸ‘¨β€πŸ’»πŸš€β€οΈ

Akash Salvi
πŸ§˜πŸ”­πŸ‘¨β€πŸŽ“πŸ‘½

Nishant Handge
πŸ’»πŸ“±πŸ‘¨β€πŸ’»πŸ’₯

How to Run Locally

Run the below command to clone the repo locally

git clone https://github.com/kothariji/SyntaxMeets.git

To run the server, go to the server folder in the backend directory and Run

npm install
npm start

this will run your express server in localhost:4000


To run the application, go to the SyntaxMeets folder in the frontend directory

create a new .env file and add following variables

REACT_APP_SYNTAXMEETS_BACKEND_API = 'http://localhost:4000/'
REACT_APP_ONLINE_JUDGE_API = YOUR API KEY

and Run the application using below commands

npm install		//install all react dependencies
npm start		//runserver

this will run your application in localhost:3000

Thank you for Contributing πŸ™ πŸ’«

4

If you liked our work do give us a star ⭐⭐⭐ It Encourages us to do more πŸ˜‰ πŸ’«

syntaxmeets's People

Contributors

akash-salvi avatar amaan-ahmad avatar anhushree avatar dependabot[bot] avatar devenkapoor7303 avatar garvitgupta13 avatar jainaayush01 avatar karan0805 avatar kothariji avatar krishna-y2000 avatar kshitijdarekar avatar lavcodes avatar maneprajakta avatar murtaza1112 avatar nishant127 avatar priyankcoder avatar shubham-kumar-2000 avatar shubhamsj07 avatar simran2607 avatar subhangi2731 avatar umbridge avatar vishv07 avatar wadermanasi 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  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  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  avatar

syntaxmeets's Issues

Adding styling to cards of in About Us section

Is your feature request related to a problem? Please describe.
Right now, this section looks good but if we add some styling to the cards such as:

  1. Card will only show name and bio at the start.
  2. After hovering over it it will display all the links and enhancing some more styling in cards so it will highlight the card we are looking at.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Motivation
Please outline the motivation for the proposal.

Are you willing to contribute to this issue? [Yes/No]

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
If you want I can provide you the video of the effect I am talking about.
Please let me know @kothariji @akash-salvi @Nishant127

Adding GitHub issue templates

Hi :)
Right now there is no issue template for Project.
I think we should take advantage of GitHub’s support for multiple issue templates.

You can see here :
64684565-3c595a00-d47d-11e9-8ea4-589cffa16375

I think right now two templates for creating an issue will do great.
1.For bug report
2.For feature request

Like this :
Screenshot from 2021-02-27 09-53-01

Allow the users to adjust views

Is your feature request related to a problem? Please describe.
Majority of the time, the syntax pad and editor would not be used at the same time. Allow the user decide which feature to access. Would allow for a cleaner UI. While coding, would allow input output window to be beside the written code. This would improve the user experience as well.

Describe the solution you'd like
Create options to display editor (with input output) or the syntaxPad.

Motivation
Improvement of user interface. I believe this will provide a cleaner look and allow the participants of a room to focus attention and work collaboratively.

Are you willing to contribute to this issue? Yes.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Conflict resolution for collaborative editing.

Is your feature request related to a problem? Please describe.

  • In the current implementation, the message received via socket connection is set as a value for the editor as well. There is no conflict resolution strategy.
  • For example:-
    If one user types "foo" in front of "bar" and the other types "baz" after "bar" at the same time, you will notice inconsistencies.
    To handle this we need some kind of conflict resolution strategy.
  • Demo Link

Describe the solution you'd like

Motivation

  • Resolving conflicts in the editor to maintain consistency for all the participants of a room.

Are you willing to contribute to this issue?

  • Yes

Describe alternatives you've considered

  • These are the only conflict resolution algorithms I know of. Personally, I cant see an alternative.

Additional context

  • I would like to work on this issue. I have implemented Operational Transformation previously.
  • Can you please assign this issue to me?
  • This is a major change and I would suggest discussing it beforehand.

Adding Some Helpful Resources Links below the Syntax Pad

The area under syntax pad and besides input output block looks incomplete and empty.

To modify the same I would like to create this issue
I can add some helpful resource links like GFG, Hackkerrank, LeetCode since programmers who are coding might need these resources frequently and it will also fill up the place nicely.

If you like the idea, please assign me this issue for GSSOC'21
Screenshot from 2021-03-10 10-05-56
The bottom right area is where I'm referring to

Snackbar instead of Javascript alert when copying code using "Copy" button.

Is your feature request related to a problem? Please describe.
This feature request is the enhancement of the existing "copy code" feature.

Describe the solution you'd like
On clicking the "Copy" Button in SyntaxEditor a javascript alert pops up saying "Code Copied Sucessfully". This default alert can be enhanced and a snackbar can be used.

Motivation
The motive is to enhance UX by replacing old alert with Material design Snackbar.

Are you willing to contribute to this issue? [Yes/No]
Yes

Describe alternatives you've considered
Snackbar seems to be a great approach for this feature, but I am open to new suggestions 😊

Room ID generation

generateRoomId method inside home.js

  • The room Id generated from this method will be inefficient and less secure, as it is generated from set of lowerCase & upperCase Alphabets.

solution

  • We can use uuid npm package for generating unique Id's, created from cryptographically-strong random values.

Screenshots
1

Default Source code in SyntaxEditor remains unchanged on changing the programming language from the drop-down.

Describe the bug
Default Source Code in SyntaxEditor doesn't change on changing the language from the drop-down.

To Reproduce
Clear steps describing how to reproduce the issue.

  1. Create or Join a room by navigating to Syntaxmeets
  2. Try to change the programming language from the SyntaxEditor drop down. for example, change it from C++ to Python.
  3. Notice that the default source code doesn't change to python equivalent/similar source code as expected.

Expected result
The source code of the default programming language should change to the default source code for the selected programming language.

Actual result
The source code in the editor remains unchanged even after changing the programing language from the drop-down in SyntaxEditor.

Are you willing to contribute to this issue? [Yes/No]
Yes

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Google chrome
  • Version 89.0.4389.82 (Official Build) (64-bit)

Additional context
Default code for languages are recently added, we just need to add default "source code" for each mentioned programming language.

Add a leave button to Exit from meet πŸ‘‹

Description

Currently, there is no option to leave the meeting. So we just need a leave meet button(probably in deep red color) so that anyone can exit from the meet, and redirect to the home page.

Compiling Model fix

Can we remove this
image

πŸ”¨ It looks weird. we can keep it simple by just Placing loading in the Run Button while it's Executing the Code.

Validation, Alert issues in Create and Join Room

Describe the bug
While creating a room, when we submit the input with empty characters, it gives and default browser alert. But after clicking on "ok" of alert, the popup or Modal get's disappeared.
Same with the Join room. In join room, if name is empty and the room id is wrong, then it continuously checks and gives two alert one back to the other.

I will rectify this error and also I will try to give an different ALERT other than the default browser error.

To Reproduce
Clear steps describing how to reproduce the issue.

  1. Go to 'Home Page'
  2. Click on 'Create Room'
  3. Click on 'Create Room button with empty input'
  4. Accept the alert.
  5. See the error

Expected result
The validation should be proper and Modal shouldn't go after accepting the alert.

Actual result
Modal got disabled after accepting the alert.

Screenshots
If applicable, add screenshots to help explain your problem.

Are you willing to contribute to this issue? [Yes/No]
Yes

Additional context
I would like to solve this issue as being a participant of GSSoC 21'. Please assign me this issue.
Also, I would do the validation proper with an different Alert message or pop-up or notifications.

Pop-up alert message on copying room-id.

Hii πŸ‘‹ @kothariji. On clicking room-id, an alert message appears which disappears on clicking ok otherwise it remains there and freezes the window. I know it is the default behaviour of alert messages but we can do a better UI friendly message alert that fades away on clicking the copy button. It doesn't freeze the windows too and doesn't require any user interaction.

For Chatbox , Add 'user is typing' functionality .

Is your feature request related to a problem? Please describe.
In the chatbox , it can't be seen if a user is currently typing a message .

Describe the solution you'd like
Show the name of user typing above the submit input above the input tag in the chatbox .

Motivation
A common feature in all chat applications .

Are you willing to contribute to this issue?
Yes

Enter Key should submit Forms

Describe the solution you'd like
For creating a room or joining a room, after filling in the necessary information, if the user presses Enter Key, it should automatically take us to the result page.

Are you willing to contribute to this issue? [Yes/No]
Yes

[Feat]: Add Code Template for the user

Is your feature request related to a problem? Please describe.
We always want to do fast coding!!

Describe the solution you'd like
Code Snippets can be saved for a particular user(This can be done only after the login/signup feature is added which is in the issue bucket list)

Motivation
When the user login and creates a new room(not for joining room as some other code may get affected) this code snippet for only one particular language (ex: c++) will be displayed in the editor.

Are you willing to contribute to this issue? [Yes/No]
Yes

Describe alternatives you've considered
A button to add a snippet for a particular user in the login room(assuming after the user logins he will get a chance to create or join the room) which will allow the user to add a particular code snippet for anyone(latest remains) particular language and it will automatically be added when a user creates a room.

UI Improvement

Describe the bug
Describe the issue that you're seeing clearly.
image

To Reproduce
Clear steps describing how to reproduce the issue.

  1. Go to syntax meet
  2. Create a room
  3. Scroll Horizontally
  4. See Error caused due to footer content

Expected result
What should happen?
image

Actual result
Extra Margin was added due to footer content.

Are you willing to contribute to this issue? [Yes/No]
Yes

Desktop (please complete the following information):

  • OS: Windows
  • Browser Chrome
  • Version 89.0.4389.82 (Official Build) (64-bit)

Additional context
Add any other context about the problem here.

Code Collaboration

Is your feature request related to a problem? Please describe.
Allow the users to view each others code

Describe the solution you'd like
The users shall be able to view the code of the people in the room and collaborate with them in their editor. this feature would be similar to the live share feature.

Motivation
Please outline the motivation for the proposal.
The main motivation behind this proposal is to allow pair programming and make programming a fun and lively experience

Are you willing to contribute to this issue? [Yes/No]
Yes I would like to contribute to this issue along with two of my teammates @Coder-Srinivas @FireQueen-3010

Describe alternatives you've considered
There should be a bar that displays the names of all the participants in the room, near their name there will be a view button. which when pressed will send a notification to the other member to accept the invite to collaborate.

please assign this issue to us under GSSoC 2021

[Feat]: Add Option to upload code from local files

Is your feature request related to a problem? Please describe.
Sometimes a user may have a particular file to modify.

Describe the solution you'd like
Add Option to upload code from local files

Are you willing to contribute to this issue? [Yes/No]
Yes

Describe alternatives you've considered
User can add files from local storage for the chosen Language and it should have the same extension for a file to be uploaded
(We can also add upload from google drive as an option).

Room only shows updated content after first change

Hello. Great project you have here!
Doing some testing with the app I found this minor issue: by the time an user enter a room, he always sees the default code in C++ in the editor, regardless if another user already made changes to it. Just after a new change is done, the code in the editor is updated for the second user.

first_user
second_user
updated_code

Add Close button for closing Chat

Is your feature request related to a problem? Please describe.
User can close the chat only by clicking in the shaded area. He/She should have an Close icon at top right or top left corner of the chat box to close it.

Describe the solution you'd like
I would like to add the close icon button to close the chat box.

Motivation
This feature is for better user experience and user friendly.

Are you willing to contribute to this issue? [Yes/No]
Yes

Please assign me this issue under GSSoC 21'

Docs: Change the github command to set the upstream in CONTRIBUTING.md

Describe the bug
There is a minor change required in the GitHub command to set the upstream repository in the Contributing.md file.
The current command gives an error: " fatal: pathspec 'upstream' did not match any files "

Screenshots
image
image

Are you willing to contribute to this issue?
Yes

Share button for room-Id

Is your feature request related to a problem? Please describe.
To share the room-code directly through Whatsapp without copying it and then sharing.

Describe the solution you'd like
Adding a share button to share room code.

Are you willing to contribute to this issue? [Yes/No]
I would like to contribute towards it.

Long chat message breaks div

When the user types a long message. It simply breaks⚑ down the div and the user cant see the outside part of a message.

image

πŸ”¨Fixes:

  1. can be fixed with minor CSS changes🧨

  2. But if you guys planning to change Chat UI/UX then we can wait and can be implemented in the new Design.

Cross browser CSS differences

Hi
I checked out your project and the concept is really cool!
While I was trying the room feature I noticed that the font size section of the editor seems to be overlapping the right side section in my 14" laptop. (1366x768px).
image

Enable 'xyz is typing..' feature in code editor

Is your feature request related to a problem? Please describe.
While multiple users are typing in the code editor at the same time, the other users are not shown. This could create problems when say, two or more of them try to edit at the same place, cannot track progress in real time, who is writing where.
How it looks right now

syntaxmeets

Describe the solution you'd like

Along with the typing cursor, show the username of who is typing.

Are you willing to contribute to this issue? Yes. Would like some direction though. Not entirely sure about how to implement this.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Would want it to look something like this.

Screenshot (16)

Additional context

SVG not covered on landing Page

Describe the bug
The svg is not covered fully on home page

To Reproduce
Clear steps describing how to reproduce the issue.

  1. Go to 'Home page'
  2. Scroll down to 'bottom' if 'required'
  3. See blank white space not covering the page.

Expected result
The svg should cover the whole page and not look half covered.

Screenshots
Screenshot from 2021-03-14 15-38-45
At the bottom there is the white space which is seen. This is to be removed or covered

Are you willing to contribute to this issue? [Yes/No]
Yes

Additional context
I would like to work on this issue under GSSoC 21'
Though issue is small. It doesn't looks great on the landing page itself.

Add list view of all the people who have joined the room

The Current UI does not show any information about all the persons who have joined the room ( including the room creator ).
Curated Idea-

  • The idea is to get a view list of the people associated with the room and show their nicknames.
  • Nicknames can be fetched when the user enters their name to enter the room. ( using socket names )
  • This list can be shown/generated below the drawing pad.

#GSSOC21

CORS issue while handling backend requests.

Describe the bug
CORS get blocked bcz Socket didn't configured by all origins

Expected result
It should handle backend req.

Are you willing to contribute to this issue? [Yes]

πŸš€[Feat]: code and illustrations are lost once you refresh

Is your feature request related to a problem? Please describe.

Once you refresh you lose all the code/illustrations and you can't continue from where you left. And you have to join as new member with no old code/illustrations.

Are you willing to contribute to this issue? [Yes/No]
Yes

πŸ› [Bug]: Illustrations are not reflected

Describe the bug
Describe the issue that you're seeing clearly.
As you can see in the provided screenshots that codes are being reflected to all members but illustrations are not.

Expected result
Illustrations should be visible to all the members.

Actual result
Illustration is visible only to the one who drew it.

Screenshots
If applicable, add screenshots to help explain your problem.

c2
c1

Are you willing to contribute to this issue? [Yes/No]
yes

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser [e.g. chrome, safari] : chrome
  • Version [e.g. 22] : 89.0.4389.82

Coding: Add more information to the Introduction Page

Is your feature request related to a problem? Please describe.
The Intro page (Landing Page) misses FAQs, Contact Us for Queries slides.
A User who first sees SyntaxMeets will find it easier to get to know it better.

Describe the solution you'd like
We can add more sections on the Intro Page.
As the user scrolls down he can find the FAQs, Contact us slides
Optional: Can include the About Us section in the Intro Page itself.

Motivation
Please outline the motivation for the proposal.
I've seen other Landing pages as simple as this but offer information to the user.

Are you willing to contribute to this issue? [Yes/No]
Yes

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.