{"id":13625781,"url":"https://github.com/magkopian/drivenote","last_synced_at":"2026-01-18T04:27:21.529Z","repository":{"id":22080543,"uuid":"25410033","full_name":"magkopian/drivenote","owner":"magkopian","description":"Drivenote is a permission management system for Google Drive shared folders. Its goal is to assist students sharing their class notes securely, by granting access to a central shared folder only to verified students. ","archived":false,"fork":false,"pushed_at":"2017-02-01T14:07:12.000Z","size":113,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-08T15:46:59.457Z","etag":null,"topics":["google-drive","php"],"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/magkopian.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-10-18T21:00:02.000Z","updated_at":"2023-10-25T10:42:10.000Z","dependencies_parsed_at":"2022-08-19T06:10:56.285Z","dependency_job_id":null,"html_url":"https://github.com/magkopian/drivenote","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/magkopian/drivenote","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magkopian%2Fdrivenote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magkopian%2Fdrivenote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magkopian%2Fdrivenote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magkopian%2Fdrivenote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magkopian","download_url":"https://codeload.github.com/magkopian/drivenote/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magkopian%2Fdrivenote/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["google-drive","php"],"created_at":"2024-08-01T21:02:01.815Z","updated_at":"2026-01-18T04:27:21.509Z","avatar_url":"https://github.com/magkopian.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"## Description:\nDrivenote is a permission management system for Google Drive shared folders. Its goal is to assist students \nsharing their class notes securely, by granting access to a central shared folder only to verified students.\n\n## How to Install:\nTo install Drivenote first download a stable release from the \n[releases page](https://github.com/magkopian/drivenote/releases) and extract the \ncontents of the zip/tar.gz archive to the directory you wish to install \nit e.g. `/var/www/drivenote/`.\n\nFor the next step you need to have installed `composer` in order to install the \ndependencies. If composer is not installed in your system you can download it \nand find installation instructions [here](https://getcomposer.org/doc/00-intro.md#globally).\n\nAfter installing `composer` you'll need to `cd` to the directory where you have \nextracted the files e.g `cd /var/www/drivenote/`, and run `composer install` to install the dependencies.\n\nLastly, you'll need to rename `src/config.template.php` to `src/config.php` and\nedit it in order to reflect the setup of your own application, by filling your Google Web Application \nand Web Service account credentials, the credentials for your database, the pattern and the example for \nthe academic email address, etc.\n\n## Configuration:\nAfter installing the application you need to configure it by editing and renaming the file\n`src/config.template.php` to `src/config.php`.\n\n### Google API Setup\nFirst go to the [Google Developers Console](https://console.developers.google.com) and set up a new project. \n\nAfter that, you'll need to enable the `Drive API` for the project you've just created. \n\nLastly, you'll have to generate two types of OAuth `Client ID`s for your application,\none `Service Account` type and one `Client ID for web application` type. \nFill the `src/config.php` file with the credentials you just generated and download\nthe key file of the service account and place it inside the `keys/` directory.\n\n### Adding the files\nAfter generating the credentials for the Google API you will have to give the application access to the files\nyou want to manage their permissions.\n\nAt first, you will have to make sure that all the files you want the application to manage are inside a \nspecific folder in your Google Drive, the structure inside the folder doesn't matter. You will have to share \nthis folder with the application and give it write access, but you don't have to make the application the owner. \n\nThe email of the application that you have to share the folder with, is the same email that was generated\nwhen you created the `Google Service Account` on the previous step.\n\nAfter you give the application write access to the folder, you will have to find its ID and fill the\nappropriate field inside your `config.php` file. For this purpose create a PHP file with the following code \nand put it inside the `public_html` directory:\n\n```PHP\n\u003c?php require_once '../src/init.php';\n$drive-\u003elistFiles();\n```\n\nWhen you run the script from your browser, it will list all the files and folders that the application manages.\nNow you just have to find the folder that you shared with the application in this list so you can find its ID. \nThe record of the folder will be most likely near the top of the list. When you are done, delete the PHP file \nyou created to find the ID of the folder.\n\n### Database Setup\nThe application needs a simple MySQL database in order to work. You can create an\nempty database and import the `sql/drivenote.sql` file in order to generate the right database schema. \nAlso, create a user with access to the same database.\n\nNext, fill the `src/config.php` file with the credentials of the database you just created.\n\n### SMTP Configuration\nThe application needs access to an SMTP server in order to be able to send account\nactivation emails. Fill the `src/config.php` file with the credentials of your SMTP \nserver. If don't have an SMTP server installed you can use a relay server like [Mailgun](http://www.mailgun.com/).\n\n### Academic Email Verification\nIn order to be able to accept students only from a specific school the application\nuses a regular expression for validating the user's academic email address. You need to\nprovide a regular expression that matches the academic email address format you want.\n\nYou'll also need to provide an academic email address example to indicate to your users\nwhich type of email addresses are accepted as valid.\n\n## Dependencies:\nPHP 5.3  \nPHPMailer 5.\\*  \nGoogle APIs Client Library for PHP 1.\\*  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagkopian%2Fdrivenote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagkopian%2Fdrivenote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagkopian%2Fdrivenote/lists"}