Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Open Platypus

Requirements

Welcome to OpenPlatypus. It has a number of requirement to function as included below:

  • PHP >= v5.5.9

    • OpenSSL PHP Extension
    • PDO PHP Extension
    • Mbstring PHP Extension
    • Tokenizer PHP Extension
  • MySQL >= v5.6.6

    Note: Platypus frequently issues SQL statements of the form:

    SELECT * FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2 WHERE ...)

    These queries are not optimised well by the 5.5 series of Mysql resulting in full table scans (sometimes even nested full table scans).

    Mysql from version 5.6.6 comes with the "Semi-Join" and "Materialization" optimisation methods that mitigate the issue and evaluate the queries in more efficient ways. Thus, it is highly recommended to use Mysql 5.6.6 or newer and ensure that the "Materialization" optimisation method is activated. See.

Installation

Platypus needs a php installation as well as a mysql database.

Database Setup

  1. Create an empty database schema called platypus2.

    • If you choose another name: change the settings in app/config/[environmentName]/database.php.
  2. Create a database user called platypus2 with full permissions.

Files

  1. git clone to a location of your choice (/path/to/platypus)

  2. Make sure the app/storage folder and all its files and sub-folders are writable by the web-server

  3. Publish the public folder on your webserver. * E.g. by symlinking cd /path/to/www; ln -s /path/to/platypus/public platypus * Note: Platypus' default configuration assumes access via http://your.server/platypus. * If you would prefer something else, edit public/.htaccess and replace all occurences of platypus with the appropriate path.

Environment Configuration

  1. Edit bootstrap/start.php.

    • Add an environment (for your custom settings) to be used when Platypus is run on your machine
      • Add an entry to the detectEnvironment array as follows:
      • 'environmentName' => array('hostNameOne'), where:
        • environmentName could be anything you like
        • hostNameOne is the output of the hostname command at your terminal. You would add more than one e.g. if you use multiple machines
  2. Create a folder app/config/environmentName

  3. Copy the contents of app/config/local into the created folder.

  4. Edit files in app/config/environmentName as desired.

  5. Create a file .env.environmentName.php in the platypus root (/path/to/platypus) directory as shown below and put the correct database password inside.

<?phpreturnarray(
'Platypus2_mysql_password' => 'SuperSecretDatabasePassword',
);
?>

Everything should be set up now and it is time to fire up platypus.

  • Visit http://your.server.name/platypus/setup. If everything is ok, it should ask you to initialise the primary admin user. After submitting, Platypus will initialise the the database tables and everything is good to go.

Webserver Setup

Platypus loads quite a few Javascript and CSS resources. Thus, it is highly recommended to ensure the cache settings of the webserver allow the client to cache static resources without sending requests to the server with each page load.

Credits

The Laravel framework is open-sourced software licensed under the MIT license.

License

Platypus Copyright (C) 2015 The Robotics Design Lab at The University of Queensland

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

About

The Open Platypus Question-Based Peer Review System

Resources

Stars

3 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages