Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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