Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/abtaaahi/docsync
Document Syncing
https://github.com/abtaaahi/docsync
firebase firebase-auth kotlin retrofit
Last synced: about 13 hours ago
JSON representation
Document Syncing
- Host: GitHub
- URL: https://github.com/abtaaahi/docsync
- Owner: abtaaahi
- Created: 2024-07-30T10:28:27.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-14T11:34:26.000Z (2 months ago)
- Last Synced: 2024-09-14T21:55:35.668Z (2 months ago)
- Topics: firebase, firebase-auth, kotlin, retrofit
- Language: Kotlin
- Homepage:
- Size: 515 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DocSync - Document Syncing
DocSync is a comprehensive document syncing application designed to enhance document management and collaboration.
The app features a seamless integration of Firebase for authentication and real-time database storage, ensuring a robust and interactive user experience.
## Demo Video
[![DocSync Demo Video](https://img.youtube.com/vi/5tqxx5ZuGpw/hqdefault.jpg)](https://youtu.be/5tqxx5ZuGpw)
## API Reference
Firebase: https://console.firebase.google.com/u/0/Authentication: https://firebase.google.com/docs/auth
Database: https://firebase.google.com/docs/database
#### Dependencies```
implementation("com.google.firebase:firebase-auth:21.0.1")
implementation("com.google.firebase:firebase-database:20.0.4")
implementation("com.google.code.gson:gson:2.8.8")implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
implementation("com.squareup.okhttp3:okhttp:4.9.1")
```#### Fetch document
```
private fun fetchDocuments() {
database.addValueEventListener(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
documents.clear()
for (documentSnapshot in snapshot.children) {
val document = documentSnapshot.getValue(Document::class.java)
document?.let { documents.add(0, it) }
}
documentAdapter.notifyDataSetChanged()
}
override fun onCancelled(error: DatabaseError) {
}
})
}
```
#### GSON to JSON
```
val gson = Gson()
val documentJson = gson.toJson(document)```
#### Plugins```
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.google.gms.google.services)
}```
## Features
- User Authentication: Utilizes Firebase Authentication for secure signup and login.
- Document Management: Displays all documents in a RecyclerView, leveraging Firebase Realtime Database for data storage and synchronization.
- Offline Support: Implements SharedPreferences and Room Database to ensure access to data even without an internet connection.
- Version Control: Shows past editors and commits changes in real-time, enhancing collaboration and tracking.
- Search Functionality: Allows users to search for documents easily.
- Local Storage: Supports file import from and export to local storage, as well as file sharing capabilities.## Tech Stack
**Development Environment:** Android Studio
**Programming Language:** Kotlin
**Firebase:** Authentication, Realtime Database
**SharedPreferences:** Offline data storage
**Room Database:** Offline data storage
**RecyclerView:** Displaying documents
**User Interface Design:** Material Design Principles
**Testing:** JUnit, Espresso