{"id":14063301,"url":"https://github.com/polypodes/GoogleDrive-based-DMS","last_synced_at":"2025-07-29T15:32:25.982Z","repository":{"id":23092718,"uuid":"26446689","full_name":"polypodes/GoogleDrive-based-DMS","owner":"polypodes","description":"A proof of concept for a private, Google Drive-based, document management system (DMS)","archived":false,"fork":false,"pushed_at":"2016-08-24T07:24:53.000Z","size":3129,"stargazers_count":22,"open_issues_count":1,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-13T07:04:36.327Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/polypodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-10T17:15:17.000Z","updated_at":"2024-05-30T22:28:10.000Z","dependencies_parsed_at":"2022-08-21T20:30:25.834Z","dependency_job_id":null,"html_url":"https://github.com/polypodes/GoogleDrive-based-DMS","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypodes%2FGoogleDrive-based-DMS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypodes%2FGoogleDrive-based-DMS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypodes%2FGoogleDrive-based-DMS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/polypodes%2FGoogleDrive-based-DMS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/polypodes","download_url":"https://codeload.github.com/polypodes/GoogleDrive-based-DMS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228028276,"owners_count":17858306,"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":[],"created_at":"2024-08-13T07:03:15.389Z","updated_at":"2024-12-04T01:30:30.971Z","avatar_url":"https://github.com/polypodes.png","language":"PHP","readme":"# Google Drive based DMS (atop Symfony2)\n\nA proof of concept for a Google Drive based document management system (DMS)\n\nInspired from [genj/GenjGoogleDriveBundle](https://github.com/genj/GenjGoogleDriveBundle)\n\n![snapshot](https://raw.githubusercontent.com/polypodes/GoogleDrive-based-DMS/master/doc/design/snapshots/1.png)\n\n![snapshot](https://raw.githubusercontent.com/polypodes/GoogleDrive-based-DMS/master/doc/design/snapshots/2.png)\n\n## Requirements\n\n- [Symfony 2.5](http://symfony.com/get-started), as declared in [composer.json](composer.json)\n- [GooglApiClient](https://github.com/google/google-api-php-client), as declared in [composer.json](composer.json)\n\n## 1/3 Setup Google API Client App credentials\n\nTo consume the Google Drive API, you need to follow this steps in [Google Developers Console (GDC)](https://console.developers.google.com/):\n\n- Create a Google Drive API Project on [Google Developers Console (GDC)](https://console.developers.google.com/)\n- Activate Google Drive API (status: ON) in [GDC](https://console.developers.google.com/) \u003e API \u0026 auth \u003e APIs\n- Generate a *Service Account* application type OAuth Client ID in [GDC](https://console.developers.google.com/) \u003e API \u0026 auth \u003e Credentials\n- Download a `.p12` key file, via the same API Credentials form in GDC, to be then renamed as `ServiceAccountAPIKey.p12`\n\n## 2/3 Symfony2 App configuration\n\nYou need to configure your app using this informations you just obtained from [Google API Console](https://code.google.com/apis/console):\n\n- Service account API key file: the `ServiceAccountAPIKey.p12`, generated above, pasted in the `app/config/` folder\n- Service account e-mail address: a long `...@developer.gserviceaccount.com` e-mail address, generated above by Google API Console while creating your OAuth Credentials Client ID.\n\nAdd these to your parameters.yml:\n\n```\ndms.service_account_key_file:\ndms.service_account_email:\n```\n\n\n## 3/3 Installation:\n\n```bash\n$~: git clone https://github.com/polypodes/GoogleDrive-based-DMS.git\n$~: cd GoogleDrive-based-DMS\n$~: make\n$~: make install\n```\n\n\n## API documentation generation (with [RAML](http://raml.org) \u0026 [NPM](https://www.npmjs.com))\n\n```bash\nnpm install -g raml2html\nraml2html api.raml \u003e build/API.html\n[open/xdg-open] build/API.html\n```\n\n\n## Usage:\n\n- Use / Create a [Google Drive](https://www.google.com/drive/) User Account\n- In the Google Drive web interface, (right-click)**share a file or an entire folder**\nwith the same email address used to fill `dms.service_account_email` above.\n\nThen open the `/files` route URL in a browser to see, view \u0026 download filesize, filetype \u0026 thubmnail of each file \u0026 folder.\n\n\n## VPS deployement\n\n```bash\nssh login@production\ncd current_release\nmake deploy\n```\n\n\n## Hackin' \u0026 Slashin'\n\nYou may want to temporary avoid the OAuth login/authorize process while you're developing new features:\nJust comment these lines at the very end of `app/config/security.yml`\n\n```\n#     Commenting these lines below = DISABLING login process \u0026 security controls\n#        - { path: ^/api, roles: ROLE_USER }\n#        - { path: ^/files, roles: ROLE_USER }\n\n```\n\n## Front-end\n\n### Set up front-end 'stuff'\n\n```bash\ncd integration\nbower install\nnpm install\ngulp\n```\n\n## Heroku deployment\n\n### One-click way:\n\n[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)\n\n\n### Manual way:\n\nsee https://devcenter.heroku.com/articles/getting-started-with-symfony2\nand http://symfony.com/doc/current/cookbook/deployment/heroku.html\n\n```bash\nheroku config:set SYMFONY_ENV=prod\ngit push heroku master\n```\n\nTo push a branch other than master, use this syntax:\n\n```bash\ngit push heroku yourbranch:master\n```\n\n### Set up Heroku parameters\n\nMethod: [a Composer script hadling your ignored parameter file](https://github.com/Incenteev/ParameterHandler#using-environment-variables-to-set-the-parameters)\n\n#### `ServiceAccounAPIKey.p12` file:\n\nLog in using `heroku run bash` and use curl to deploy manually the ServiceAccountAPIKey.p12 from a remote server\n\n[Alternative solution](http://bezhermoso.github.io/2014/08/19/handling-parameters-for-heroku-deploy-in-symfony2/#alternate-solution)\n\n### Heroku debug\n\nHeroku allows you to run commands in a one-off dyno with heroku run.\nUse this for scripts and applications that only need to be executed when needed,\nor to launch an interactive PHP shell attached to your local terminal for experimenting in you app’s environment:\n\n```bash\n$ heroku run \"php -a\"\nRunning `php -a` attached to terminal... up, run.8081\nInteractive shell\nphp \u003e echo PHP_VERSION;\n5.5.11\n```\n\nFor debugging purposes, e.g. to examine the state of your application after a deploy,\nyou can use `heroku run bash` for a full shell into a one-off dyno.\nBut remember that this will not connect you to one of the web dynos that may be running at the same time!\n\n([source](https://yitdeveloper.wordpress.com/2014/06/18/getting-started-with-php-on-heroku/))\n\n\n\nex: [vast-temple-3501](https://vast-temple-3501.herokuapp.com)\n\n## TODO\n\nThere is a lot to do ! See [TODO.md](TODO.md)\n\n\n## License \u0026 Copyright\n\n(c) 2015 Les Polypodes\n\nLicence: MIT\n\nMade in Nantes, France by [Les Polypodes](http://lespolypodes.com)\n\n","funding_links":[],"categories":["PHP"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolypodes%2FGoogleDrive-based-DMS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolypodes%2FGoogleDrive-based-DMS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolypodes%2FGoogleDrive-based-DMS/lists"}