/Sync-RealtimeContentCollaboration

Sync is a realtime content collaboration app with multiple people developed in Kotlin with Firebase realtime database, offers undo-redo changes and realtime collaborative AI Content generation and many more collaborative features.

Primary LanguageKotlin

Sync- Realtime Content Collaboration

Sync is a realtime content collaboration app with multiple people developed in Kotlin with Firebase realtime database, offers undo-redo changes and realtime collaborative AI Content generation along with many other collaborative features.

Features

  1. Realtime content collaboration and editing with multiple people.
  2. Users can see each other's cursor/location on document.
  3. Users can do collaborative AI Prompting and add the AI Content into the document.
  4. Share document & Deep Linking enabled to open document via it's link
  5. Multi Text Styling i.e different text styles like Text Size, Weight, Color, Background etc. (Coming soon)
  6. Drop comments in the document. (Coming soon)
  7. Multiple document support & Explore section to see public document. (Coming soon)

Screenshots

| | | | |

Open to Contributors

I and We warmly welcome anyone & everyone to contribute to this app and improve the App, add new features & more, especially the Jetpack compose UI part.

Technologies used

  1. Language: Kotlin
  2. UI: Jetpack Compose ( I am a noob in it :), so don't mind my code.)
  3. Realtime signals: Firebase Realtime Db.
  4. Architecture: MVVM + Clean Architecture
  5. AI: Open AI Chat GPT Api

Note: In order to setup the environment and work on the app locally, you've to add the firebase db url, Open AI Api & other credentials in values/string files, i know it's not a good approach to save keys this way, but it is what it is :))

Sample String values

<resources>
<string name="app_name">Sync - Realtime Collaboration</string>
<string name="GPT_BASE_URl"></string>
<string name="GPT_API_KEY"></string>
<string name="STORAGE_URL"></string>
<string name="DB_URL"></string>
<string name="title_activity_splash_screen">SplashScreen</string>
<string name="title_activity_register">RegisterActivity</string>
<string name="title_activity_document">DocumentActivity</string>
<string name="title_activity_tab_screen">TabScreen</string>
</resources>

Submit a change or new feature

If you wish to contribute and want to submit feature/improvement ideas before/after implementing them, you can make an issue for them in this repository or DM me directly on Linkedin(find it from my profile) so that we can have a chat over it.