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

Project Idea: [Mentorship Program 2023] AsyncAPI Studio: Enhanced Collaboration and Real-time Editing #619

Closed
Shurtu-gal opened this issue May 14, 2023 · 8 comments

Comments

@Shurtu-gal
Copy link
Collaborator

🚀 Introduction:

AsyncAPI Studio is a web-based IDE designed for working with AsyncAPI specifications. While the tool provides a solid foundation for individual developers, there is a need to enhance collaboration features and introduce real-time editing capabilities. This project aims to improve collaboration within AsyncAPI Studio by enabling multiple users to work together on AsyncAPI specifications in real-time.

💡 Project Description:

The primary focus of this idea is to enhance collaboration and real-time editing capabilities within AsyncAPI Studio. The following features can be developed:

  • 🤝 Real-time Collaboration:

    • Implement real-time collaboration features, allowing multiple users to work on the same AsyncAPI specification simultaneously.
    • Enable live editing, so changes made by one user are instantly visible to others working on the specification.
    • Support real-time chat or comments to facilitate communication and collaboration among users.
  • 🔄 Conflict Resolution:

    • Implement conflict detection and resolution mechanisms to handle concurrent changes made by multiple users to the same specification.
    • Provide visual indicators and notifications when conflicts occur, allowing users to resolve conflicts efficiently.
  • Version History:

    • Integrate version control capabilities within AsyncAPI Studio to track the history of specification changes.
    • Allow users to view the revision history, compare versions, and revert to previous versions if needed.
    • Enable branching and merging functionalities to facilitate collaborative workflows.
  • 👥 User Presence Indicators:

    • Display user presence indicators within AsyncAPI Studio to show who else is currently active and working on the same specification.
    • Enhance collaboration by enabling users to see which parts of the specification are being modified by others in real-time.

🔧 Approach:

The approach for enhancing collaboration and real-time editing in AsyncAPI Studio could be like this

  1. Integration of Real-time Collaboration Framework:

    • Select and integrate a real-time collaboration framework, such as ShareDB or Yjs, that best aligns with the requirements of AsyncAPI Studio.
    • Set up the necessary server-side infrastructure to handle real-time communication and synchronization of specification changes.
    • Implement the client-side integration of the collaboration framework, allowing multiple users to connect and collaborate within AsyncAPI Studio.
  2. Real-time Editing and Conflict Resolution:

    • Enable live editing functionality, ensuring that changes made by one user are instantly visible to others working on the same specification.
    • Implement conflict detection mechanisms to identify concurrent changes made by multiple users.
    • Develop conflict resolution strategies, such as highlighting conflicting changes and providing options for users to merge or resolve conflicts.
  3. Version Control and History:

    • Integrate version control functionality within AsyncAPI Studio, allowing users to track the history of specification changes.
    • Implement the ability to view revision history, compare different versions, and revert to previous versions if necessary.
    • Enable branching and merging functionalities to support collaborative workflows and branching strategies.
  4. User Presence Indicators and Communication:

    • Implement user presence indicators within AsyncAPI Studio to display active users and their current editing status.
    • Enable real-time chat or comment functionality to facilitate communication and collaboration among users.
    • Provide notifications or alerts to notify users of changes made by others and to handle any collaborative actions required.

By following this approach, we aim to transform AsyncAPI Studio into a powerful collaborative platform where users can seamlessly work together on AsyncAPI specifications in real-time.I look forward to a critical review so that we can fine tune the points.

@github-actions
Copy link

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Sep 12, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jan 11, 2024
@Shurtu-gal
Copy link
Collaborator Author

Reopening this issue as has been mentioned in GSoC.

cc: @AceTheCreator

@Amzani
Copy link
Collaborator

Amzani commented Feb 16, 2024

I appreciate the thorough and well-thought-out plan for enhancing collaboration within AsyncAPI Studio. However, considering the growing trend of developers using integrated development environments (IDEs) like VSCode, I propose a slight shift in focus toward this.

Example of existing VS Code extension: https://code.visualstudio.com/learn/collaboration/live-share
https://learn.microsoft.com/en-gb/visualstudio/liveshare/

@Shurtu-gal you can join this discussion if you are interested.

@Shurtu-gal
Copy link
Collaborator Author

That sound's like a great idea.

@skushagra9
Copy link

skushagra9 commented Feb 23, 2024

Hi, I have a good experience with open source
I am interested to take this project , should I start contributing now ??
So that I can get some experience for this project and there are better chances to get selected for this project in GSOC'24

@Shurtu-gal
Copy link
Collaborator Author

Hey @skushagra9, currently the focus is shifting towards editor extensions as mentioned in previous comment.

@github-project-automation github-project-automation bot moved this from Backlog to Done in Studio - Kanban Feb 23, 2024
@shahnawazpatel23
Copy link

HEY @Shurtu-gal , i am in my web dev journey meanwhile i have created a chat app which uses real time chatting using socket.io and now i am keen to work in this project ,so can you please enlighten me ,how can i start contribution in this project?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

4 participants