Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sharantangeda/sheetssync
This application is meant to sync google sheets to Offline SQL databases seamlessly
https://github.com/sharantangeda/sheetssync
dropwizard google-sheets kotlin reactjs redux sqlite3
Last synced: 1 day ago
JSON representation
This application is meant to sync google sheets to Offline SQL databases seamlessly
- Host: GitHub
- URL: https://github.com/sharantangeda/sheetssync
- Owner: SHARANTANGEDA
- License: mit
- Created: 2020-05-23T17:44:31.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-06-09T09:27:25.000Z (over 4 years ago)
- Last Synced: 2024-12-13T20:15:54.317Z (20 days ago)
- Topics: dropwizard, google-sheets, kotlin, reactjs, redux, sqlite3
- Language: JavaScript
- Homepage:
- Size: 4.38 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Sync Google Spreadsheets seamlessly with SQLite3 offline database
### Intro to UI
##### _Landing Page as well as Enter Sheets Page_
![Image of UI](readmePic/landing.png)
##### _View All Sheets_
![Image of UI](readmePic/home.png)
##### _View Data in a Sheet_
![Image of UI](readmePic/sheet.png)### Steps to Run the Dropwizard Service
1. Create google service account and add credentials to
`src/main/resources/credentials.json`
2. Now in project home directory run
`./gradlew run`
3. The above command will launch the server `http://localhost:8000/api/enter`### Steps to run the ReactJS Client
1. Move into client/src
`cd ./client/src`
2. Install **_node_modules_**
`npm install`
3. Start the React client with following command
`npm start`
4. On running the above command a client with `http://localhost:3000`##### _Now the React Client will fetch the required data and is connected to the server_
##### The application handles possible SQL injection attacks by sanitizing before data entries and updates
##### Currently, google sheets sync every 30 seconds, which can be always changed## For Collaborators
This is created using the following stack
1. Kotlin with DropWizard Framework and Google Sheets API for backend server
2. SQLite3 Database
3. ReactJS with REDUX for Frontend**_The UI, Logo and colors on the website were inspired from udaan.com website_**
This uses Google Service account so that repeated user authentication is not required and data sync can happen seamlessly without interruption.
And as Organization wide access is not given to the account, before syncing a sheet, it should be shared with the service account email address
### Credits
Thanks to Amod Malviya, Co Founder Udaan.com, for his support in this project