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.
- Realtime content collaboration and editing with multiple people.
- Users can see each other's cursor/location on document.
- Users can do collaborative AI Prompting and add the AI Content into the document.
- Share document & Deep Linking enabled to open document via it's link
- Multi Text Styling i.e different text styles like Text Size, Weight, Color, Background etc. (Coming soon)
- Drop comments in the document. (Coming soon)
- Multiple document support & Explore section to see public document. (Coming soon)
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.
- Language: Kotlin
- UI: Jetpack Compose ( I am a noob in it :), so don't mind my code.)
- Realtime signals: Firebase Realtime Db.
- Architecture: MVVM + Clean Architecture
- 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 :))
<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>
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.