{"id":17673326,"url":"https://github.com/marcelo-earth/platkey","last_synced_at":"2025-10-12T18:06:14.228Z","repository":{"id":40450635,"uuid":"436363494","full_name":"marcelo-earth/platkey","owner":"marcelo-earth","description":"💻💚 Multiplatform Browser extension that gives you shortcuts, saved classes, augmented search, and themes for Platzi.","archived":false,"fork":false,"pushed_at":"2023-04-16T03:13:25.000Z","size":2314,"stargazers_count":8,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T18:05:25.731Z","etag":null,"topics":["arc-browser","brave-extension","browser-extension","chrome","chrome-extension","edge-extension","javascript","platzi","safari-extension","typescript"],"latest_commit_sha":null,"homepage":"https://platkey.dev","language":"TypeScript","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/marcelo-earth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2021-12-08T19:11:29.000Z","updated_at":"2024-06-07T20:58:52.000Z","dependencies_parsed_at":"2024-10-22T02:18:58.382Z","dependency_job_id":null,"html_url":"https://github.com/marcelo-earth/platkey","commit_stats":null,"previous_names":["marcelo-earth/platkey"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/marcelo-earth/platkey","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelo-earth%2Fplatkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelo-earth%2Fplatkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelo-earth%2Fplatkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelo-earth%2Fplatkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcelo-earth","download_url":"https://codeload.github.com/marcelo-earth/platkey/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcelo-earth%2Fplatkey/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279012471,"owners_count":26085131,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"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":["arc-browser","brave-extension","browser-extension","chrome","chrome-extension","edge-extension","javascript","platzi","safari-extension","typescript"],"created_at":"2024-10-24T05:21:24.596Z","updated_at":"2025-10-12T18:06:14.197Z","avatar_url":"https://github.com/marcelo-earth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\".github/PlatKeyIcon.png\"\n    align=\"center\"\n    width=\"100\"\n    alt=\"PlatKey\"\n    title=\"PlatKey\"\n  /\u003e\n  \u003ch1 align=\"center\"\u003ePlatKey\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e🚀 Awesome features for \u003ca href=\"https://platzi.com\"\u003ePlatzi\u003c/a\u003e with this browser extension 🦉.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e💚 Open Source, Free, and available for Chrome, Edge, Brave, Arc and Safari 🦁\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://chrome.google.com/webstore/detail/platkey/bdjedpeffgjikndcihipemgdinpcmpcf\"\u003e🤖 Install on Chromium Browser\u003c/a\u003e -\n  \u003ca href=\"https://apps.apple.com/app/platkey/id1659587636\"\u003e🍎 Install on Safari\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg\n    src=\".github/preview.gif\"\n    align=\"center\"\n    width=\"350\"\n    alt=\"Preview of PlatKey\"\n    title=\"Preview of PlatKey\"\n    style=\"border-radius: 10px\"\n  /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://platkey.dev\"\u003ewww.platkey.dev\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  🤗 Thank you for visiting this browser extension project, help spread it by giving a star! 🌟\u003cbr /\u003e\n  \u003cbr /\u003e\n  🚀 Start participing in the development of this tool in the \u003ca href=\"https://github.com/360macky/platkey/discussions\"\u003eDiscussions section\u003c/a\u003e!\u003cbr /\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://github.com/360macky/PlatKey/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/360macky/PlatKey?label=Star%20this%20repository%21\u0026style=social\" /\u003e\u003c/a\u003e\u003cbr /\u003e\n  \u003cbr /\u003e\n  ✅ This project has diagrams to help you understand how it works! 📌\u003cbr /\u003e\n\u003c/p\u003e\n\n## 🤖 Concept\n\n**PlatKey** is a browser extension that helps you to solve exams faster in Platzi. And also the extension provides new functionalities to improve the experience of taking classes in Platzi.\n\nBriefly the features of PlatKey are:\n\n- **Shortcuts**: Select exam options faster with your own keyboard shortcuts. Also navigate between classes and make contributions using keyboard shortcuts.\n- **Greenboard**: Open a fully integrated _whiteboard_ in your exam.\n- **Zen Mode**: A new design that reduces the number of buttons and visual elements in the exam.\n- **SSH Mode**: A terminal-style design to solve exams as if you were installing a package.\n- **Highlight classes**: Select classes you want to highlight in your Student Home.\n- **Save contributions**: Save contributions in your Student Home.\n- **Spotlight**: A new design for the search bar of Platzi available with a keyboard shortcut.\n\nIt supports chromium-based browsers (like Chrome, Edge, Brave, Arc) and WebKit-based browsers (like Safari).\n\n## 🚀 Features\n\nThings you can do with **PlatKey**:\n\n### ⌨ PlatKey Shortcuts\n\nSelect exam options faster with your own keyboard. Use letters, and numbers!\n\n### 🖌 PlatKey Greenboard\n\nOpen a fully integrated _whiteboard_ in your exam to be able to draw, do calculations or whatever you want.\n\n### 🧐 PlatKey Zen Mode\n\nA new design that reduces the number of buttons and visual elements in the exam.\n\n### 💻 PlatKey SSH Mode\n\nA terminal-style design to solve exams as if you were installing a package.\n\n### 📚 PlatKey Highlight classes\n\nSelect classes you want to highlight in your Student Home.\n\n### 💾 PlatKey Save contributions\n\nSave contributions in your Student Home.\n\n## 💻 Core Development\n\nThis section is for developers who want to know how PlatKey works.\n\nPlatKey has a software architecture targeted to be a browser extension for the Chrome Web Store.\n\n### ⭐️ Version Workflow\n\nThe latest version of PlatKey used in production is 3.0.0. The source code you can download is the latest version of **PlatKey for Developers**. Which may contain features that are not yet available in stores, and may contain bugs.\n\n### 📦 Architecture\n\nPlatKey adopts an all-new architecture for browser extensions using TypeScript for the development of the modules. This enables better experience to interact with the Chrome API.\n\nPlatKey uses Webpack for the compilation of the modules written in TypeScript. Webpack is configured into two modes: `development` and `production`.\n\nPlatKey uses JSDocs for the documentation of the code.\n\n```mermaid\ngraph TD\n    A[PlatKey is loaded] --\u003e|Load PlatKey Configuration Storage| B(background.js)\n    B --\u003e |Check if web is Platzi| C[\\matches: platzi.com/*/]\n    C --\u003e|Load PlatKey default features| D(content_scripts)\n```\n\nPlatKey does not store information of the users. An account is not required to use the extension.\n\nInformation related to their extension preferences is stored in the browser's storage.\n\n### ✅ Good practices\n\nAccording to the [Google Chrome Web Store Developer Program Policies](https://developer.chrome.com/docs/webstore/best_practices/), PlatKey as a browser extension follows these good practices:\n\n* **Manifest V3**: The extension uses the new Manifest V3 of Chrome.\n* **Security**: The extension does not store information of the users. An account is not required to use the extension.\n* **User privacy**: Information related to their extension preferences is stored in the browser's storage.\n* **Performance**: The extension is optimized to be lightweight and fast.\n* **User Experence**: The extension is designed to be easy to use and intuitive.\n\n\n### 🔭 Control Flow\n\n`manifest.json` file is the manifest of the extension. It contains the information of the extension and the permissions it needs.\n\n`popup.html` file is the extension window. The `popup.js` file is the JavaScript code whose scope is in this window. It executed when the popup es opened.\n\n`background.ts` file only contains the default storage information about the features of PlatKey. It's the service worker of the extension.\n\n`content.ts` file is executed in background everytime the page is loaded for the `\"https://platzi.com/*\"`\n\n### 🔓 Browser permissions\n\nPlatKey works with these permissions:\n\n- `storage`: To store variables like `shortcuts`, `greenboard`, etc.\n- `scripting`: To execute JavaScript scripts inside the page itself.\n\n### ⌨️ Shortcuts Technology\n\nPlatKey [creates an eventlistener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) inside window to listen for keypresses on keys `A`, `B`, `C`, `D`, `E` and `1`, `2`, `3`, `4`, `5` and `6`. Also `X` or `0` key to skip the question.\n\n## 🔩 Installation\n\n### 🚅 Production (recommended)\n\nGo to [PlatKey Extension page](https://chrome.google.com/webstore/detail/PlatKey/bdjedpeffgjikndcihipemgdinpcmpcf?hl=es-419), and click on \"Add extension\".\n\nIt works correctly in Google Chrome, Micorosft Edge and Brave.\n\n## 🏛️ History\n\nThis browser extension was made with the motive of **accelerating the speed of exam taking** in Platzi inspired by the way in which Typeform structures the shortcuts of its forms.\n\n### 🦊 Development\n\nIf you want the latest features of PlatKey you can install the development version following [this tutorial](https://github.com/360macky/PlatKey/blob/main/INSTALLATION.md).\n\n## 🤲 Contributing\n\nDo you would like to contribute? Do you want to be the author of a new feature? Awesome! please fork the repository and make changes as you like. [Pull requests](https://github.com/360macky/PlatKey/pulls) are warmly welcome.\n\nAlso, you can check [Issues](https://github.com/360macky/PlatKey/issues) to get any ideas on how to improve this browser extension.\n\n## 📃 License\n\nThe source code is distributed under the MIT License.\nSee [`LICENSE`](./LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcelo-earth%2Fplatkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcelo-earth%2Fplatkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcelo-earth%2Fplatkey/lists"}