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

Task 20: Code Together, Shine Together! 💻✨ #86

Open
aarav0180 opened this issue Dec 31, 2024 · 0 comments
Open

Task 20: Code Together, Shine Together! 💻✨ #86

aarav0180 opened this issue Dec 31, 2024 · 0 comments
Labels
competitive For competitive issues, only top PRs need to be accepted. enhancement New feature or request Points: 50 Skilled

Comments

@aarav0180
Copy link
Member

aarav0180 commented Dec 31, 2024

Task 20: Code Together, Shine Together! 💻✨

🎯 Objective:
Enable a shared coding space where collaborators can code together in real time.

💡 Steps to Implement:

1️⃣ Shared Coding Environment:

  • Use a collaborative coding platform like CodeMirror or Monaco Editor.
  • Integrate it into the app using flutter_webview_plugin or native components.
  • Sync real-time changes using Firebase Firestore or WebSocket.

2️⃣ Collaborative Features:

  • Code Editor: Highlight syntax and support for multiple languages.
  • Chat: Add a messaging feature for discussions using Firebase Realtime Database.
  • Task Progress: Use a Kanban board for task tracking (flutter_board package).

3️⃣ Syncing Code in Real-Time:

  • Firestore Example:
    • Save live changes to a Firestore document:
      FirebaseFirestore.instance.collection('sharedCode').doc('sessionId').update({
        'code': newCode,
      });
    • Stream code updates to the editor:
      StreamBuilder(
        stream: FirebaseFirestore.instance.collection('sharedCode').doc('sessionId').snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) return CircularProgressIndicator();
          return TextField(
            controller: TextEditingController(text: snapshot.data['code']),
            onChanged: (newCode) {
              FirebaseFirestore.instance.collection('sharedCode').doc('sessionId').update({'code': newCode});
            },
          );
        },
      );

4️⃣ Adding Collaborators to the Session:

  • Display a modal or side menu to invite people to the coding session.
  • Use Firebase Firestore to track active participants.

5️⃣ Additional Features:

  • Notifications for code updates or task completion.
  • Version control via Git API integration.

💡 Outcome:
Users can code together, communicate, and track progress—all within the app!

THIS IS A CONTINUATION OF TASK 19.

BUT IT'S COMPETITIVE SO, YOU CAN JUST BUILD IT IN A NEW SCREEN.

@aarav0180 aarav0180 added Points: 50 Skilled competitive For competitive issues, only top PRs need to be accepted. enhancement New feature or request labels Dec 31, 2024
@aarav0180 aarav0180 changed the title Task 20: Task 20: Code Together, Shine Together! 💻✨ Dec 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
competitive For competitive issues, only top PRs need to be accepted. enhancement New feature or request Points: 50 Skilled
Projects
None yet
Development

No branches or pull requests

1 participant