{"id":15020167,"url":"https://github.com/marigarey/canvas-notion-integration","last_synced_at":"2025-04-09T19:43:26.808Z","repository":{"id":245511535,"uuid":"817095231","full_name":"marigarey/canvas-notion-integration","owner":"marigarey","description":"Integrate Canvas Assignments into Notion!","archived":false,"fork":false,"pushed_at":"2025-03-13T21:23:16.000Z","size":1460,"stargazers_count":16,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T21:45:49.740Z","etag":null,"topics":["canvas","canvas-api","canvas-lms","integrations","notion","notion-api","notion-client","notion-database","notion-integrations"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/marigarey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-19T02:34:56.000Z","updated_at":"2025-03-13T21:23:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"f070b78f-5d57-4f57-babf-9640e38e5ff6","html_url":"https://github.com/marigarey/canvas-notion-integration","commit_stats":null,"previous_names":["marigarey/canvas-notion-integration"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marigarey%2Fcanvas-notion-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marigarey%2Fcanvas-notion-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marigarey%2Fcanvas-notion-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marigarey%2Fcanvas-notion-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marigarey","download_url":"https://codeload.github.com/marigarey/canvas-notion-integration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248101492,"owners_count":21047981,"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":["canvas","canvas-api","canvas-lms","integrations","notion","notion-api","notion-client","notion-database","notion-integrations"],"created_at":"2024-09-24T19:54:40.340Z","updated_at":"2025-04-09T19:43:26.777Z","avatar_url":"https://github.com/marigarey.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Canvas to Notion Integration\nView your Canvas assignments in Notion created by Mari Garey!\n\n\u003cimg src=\"./img/canvasNotionIntegration.png\" width=\"500\"/\u003e\n\n## Introduction\n\nUsing this repository you will be able to export all of your assignments from Canvas to a Notion Database!\nFollowing the instructions below will help you set up the database!\n\n### Support the Creator!\n\n* Give a ⭐️ to the repository \u003csub\u003eplease and thank you 🤗\u003c/sub\u003e\n* Submit a PR for feedback or in the Discussion Tab\n* Watch the demo on YT and give it a 👍 \n\n\n## Using the Canvas to Notion Integration\n\n### Video Tutorial\n\n*Coming Soon*\n\n### 1. Project Setup\n\n```zsh\n# Clone this repository to your computer\ngit clone https://github.com/marigarey/canvas-notion-integration.git\n\n# Open this project\ncd canvas-notion-integration\n```\n\n#### Without Docker\n```zsh\n# Install dependencies\nnpm install\n```\n\n#### With Docker\n```zsh\n# Build image\ndocker -t canvas-notion-integration build .\n```\n\n\u003e [!NOTE]\n\u003e This step is not required on most architectures. GHCR should have built the latest version on the following architectures:\n\u003e - `linux/amd64`\n\u003e - `linux/arm/v6`\n\u003e - `linux/arm/v7`\n\u003e - `linux/arm64`\n\n### 2. Canvas Token Access\n\nGo to your Canvas Profile Settings and scroll down to `Approved Integrations`.\n\u003cimg src=\"img/CanvasIntegrationNAT.png\"\u003e\n    Click on `+ New Access Token` to create the token.\n\n\u003cimg src=\"img/CanvasIntegrationToken.png\" width=\"400\"\u003e\n    Name your Token, and leave the date blank to have no expiration date.\n\n\u003cimg src=\"img/CanvasIntegrationDetails.png\" width=\"400\"\u003e\n    Once the Token is generated, copy the Token string.\n\nThis string will be your **Canvas API Key**\n\n\u003e [!WARNING]\n\u003e Once you move away from that screen you will not be able to access the token string!\n\u003e Make sure to save the Token string now!\n\n### 3. Notion API Key Access[^1]\n\nPull up the [Notion - My Integrations](https://www.notion.so/my-integrations) site and click `+ New Integration`\n\nEnter the name of the integration (ie Canvas Notion Integration) and what workspace the Integration will apply to.\nIn the `Secrets` tab and copy the _Internal Integration Secret_ this will be your **Notion API Key**.\n\n\u003cimg src=\"/img/NotionIntegration.gif\" width=\"500\"\u003e\n\n### 4. Create Integration within Notion\n\nHead to whatever Notion Page you want to put the database in and click on `...` in the top right.\nScroll down to `+ Add Connections`. Find and select the integration. Make sure to click confirm.\n\n\u003cimg src=\"/img/NotionPermissions.gif\" width=\"500\"\u003e\n\n### 5. Environment Variable `.env` file Setup\nCreate a `.env` file and replace all the \u003c\u003e with your own information. Place the `.env` file in the `src` folder.\n*Keep the `NOTION_DATABASE` variable as is because it will be overwritten when you run the code*\n\u003e [!NOTE]\n\u003e How to Access the Key for the `NOTION_PAGE`:\n\u003e 1. On the desired Notion page, click `Share` then `🔗 Copy link`\n\u003e 2. Paste the link down, example url: notion.so/{name}/{page}-**0123456789abcdefghijklmnopqrstuv**?{otherstuff}\n\u003e 3. Copy the string of 32 letter and number combination to the `.env` file\n\n```\nCANVAS_API_URL=\u003cexample: https://canvas-page.edu\u003e\nCANVAS_API=\u003cyour canvas api token\u003e\nNOTION_PAGE=\u003cpage id of the parent page to create the database\u003e\nNOTION_API=\u003cyour notion api key\u003e # filled by user\nNOTION_DATABASE='invalid' # filled by integration\n```\n\n### 6. Run Code\n\n\u003e [!IMPORTANT]\n\u003e To update your database you will have to run the script every time there is a change in Canvas\n\u003e It is recomended to rerun the code every semester or class/assignment changes\n\n#### Without Docker\n```zsh\ncd src\nnode main.js\n```\n\n#### With Docker\n```zsh\ndocker run --env-file ./.env canvas-notion-integration\n```\n\n\u003e [!NOTE]\n\u003e If you did not choose to build the image yourself, you can replace `canvas-notion-integration` with `ghcr.io/marigarey/canvas-notion-integration:main`\n\n## Other Information\n\nIn the future I do plan to add more to this, possibly blocks outside of the database.\nIf you have any suggestions on what I should, please let me know! I want to hear your feedback and improve!\n\n\u003e [!NOTE]\n\u003e The ID Property is for internal use and you can hide it in your database\n\u003e Hiding a Property:\n\u003e 1. Go to `...` on the top right of your database\n\u003e 2. Click on the `Properties` Tab\n\u003e 3. Click the eye on the `ID` Property\n\u003e 4. It should get crossed out and disapear from your database!\n\n\u003csub\u003eOther: Docker addition doesn't run because the .env file is not set up\u003c/sub\u003e\n\n[^1]: [Source of Gifs and for more information on Notion Integrations](https://developers.notion.com/docs/create-a-notion-integration)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarigarey%2Fcanvas-notion-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarigarey%2Fcanvas-notion-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarigarey%2Fcanvas-notion-integration/lists"}