{"id":26870072,"url":"https://github.com/jvegar/ts-dropbox-folder-sync","last_synced_at":"2025-03-31T06:33:06.528Z","repository":{"id":227732631,"uuid":"772264329","full_name":"jvegar/ts-dropbox-folder-sync","owner":"jvegar","description":"Folder Sync app for Dropbox","archived":false,"fork":false,"pushed_at":"2024-05-02T07:19:42.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T06:33:02.046Z","etag":null,"topics":["dropbox-api","mongodb","prisma-orm"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jvegar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-14T21:09:54.000Z","updated_at":"2025-03-04T12:57:57.000Z","dependencies_parsed_at":"2024-03-26T20:48:31.276Z","dependency_job_id":"d76ef0a4-77f9-4cc3-93e9-e04cc2e277e7","html_url":"https://github.com/jvegar/ts-dropbox-folder-sync","commit_stats":null,"previous_names":["jvegar/dropbox-folder-sync","jvegar/ts-dropbox-folder-sync"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvegar%2Fts-dropbox-folder-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvegar%2Fts-dropbox-folder-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvegar%2Fts-dropbox-folder-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvegar%2Fts-dropbox-folder-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jvegar","download_url":"https://codeload.github.com/jvegar/ts-dropbox-folder-sync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246429452,"owners_count":20775805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dropbox-api","mongodb","prisma-orm"],"created_at":"2025-03-31T06:33:05.651Z","updated_at":"2025-03-31T06:33:06.497Z","avatar_url":"https://github.com/jvegar.png","language":"TypeScript","readme":"# dropbox-folder-sync\n\nConsole app for syncing a local folder with a dropbox folder\n\n## Steps to run app\n\n1. Install packages\n\n```\nnpm install\n```\n\n2. Create .env file from .env.local and replace the required values\n\n```\ncp .env.local .env\n```\n\n3. Run app:\n\n```\nnpm run dev\n```\n\n## Architecture\n\n- Source of Truth: Dropbox folder\n- Client:\n\n  - Initialize:\n\n    - If local folder is empty:\n\n      - Download remote files to local\n      - Regenerate local database (clean-\u003epopulate)\n\n    - Else:\n\n      - Get remote files and iterate:\n\n        - If file exists on local:\n          - If local file is newer:\n            - Leave local file intact\n            - Update content remote file\n            - If local file exists on local database:\n              - Update local file metadata (modified)\n            - Else:\n              - Insert local metadata file\n                Else:\n            - Overwrite local file\n            - If local file exists on local database:\n            - Update local file metadata (modified)\n            - Else: - Insert local metadata file\n              Else:\n          - Download remote file to local\n\n      - Get local files and iterate:\n        - If local file doesn't exist:\n          - Upload local file to remote\n          - If local file exists on local database:\n            - Update local file metadata (modified)\n          - Else:\n            - Insert local metadata file\n\n  - Online/Offline:\n    - Update local database\n    - Generate update remote folder task\n      - Process task (Pending | Running | Error | Completed)\n\n- File:\n  - ID: remote ID generated by DropBox\n  - Path: file path\n  - Modified: modified datetime\n  - Created: created datetime\n  - Status: file status\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvegar%2Fts-dropbox-folder-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjvegar%2Fts-dropbox-folder-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvegar%2Fts-dropbox-folder-sync/lists"}