View your Canvas assignments in Notion created by Mari Garey!
Using this repository you will be able to export all of your assignments from Canvas to a Notion Database! Following the instructions below will help you set up the database!
- Give a ⭐️ to the repository please and thank you 🤗
- Submit a PR for feedback or in the Discussion Tab
- Watch the demo on YT and give it a 👍
Coming Soon
# Clone this repository to your computer
git clone https://github.com/marigarey/canvas-notion-integration.git
# Open this project
cd canvas-notion-integration
# Install dependencies
npm install
# Build image
docker -t canvas-notion-integration build .
Note
This step is not required on most architectures. GHCR should have built the latest version on the following architectures:
linux/amd64
linux/arm/v6
linux/arm/v7
linux/arm64
Go to your Canvas Profile Settings and scroll down to Approved Integrations
.
Click on + New Access Token
to create the token.
This string will be your Canvas API Key
Warning
Once you move away from that screen you will not be able to access the token string! Make sure to save the Token string now!
3. Notion API Key Access1
Pull up the Notion - My Integrations site and click + New Integration
Enter the name of the integration (ie Canvas Notion Integration) and what workspace the Integration will apply to.
In the Secrets
tab and copy the Internal Integration Secret this will be your Notion API Key.
Head to whatever Notion Page you want to put the database in and click on ...
in the top right.
Scroll down to + Add Connections
. Find and select the integration. Make sure to click confirm.
Create a .env
file and replace all the <> with your own information. Place the .env
file in the src
folder.
Keep the NOTION_DATABASE
variable as is because it will be overwritten when you run the code
Note
How to Access the Key for the NOTION_PAGE
:
- On the desired Notion page, click
Share
then🔗 Copy link
- Paste the link down, example url: notion.so/{name}/{page}-0123456789abcdefghijklmnopqrstuv?{otherstuff}
- Copy the string of 32 letter and number combination to the
.env
file
CANVAS_API_URL=<example: https://canvas-page.edu>
CANVAS_API=<your canvas api token>
NOTION_PAGE=<page id of the parent page to create the database>
NOTION_API=<your notion api key> # filled by user
NOTION_DATABASE='invalid' # filled by integration
Important
To update your database you will have to run the script every time there is a change in Canvas It is recomended to rerun the code every semester or class/assignment changes
cd src
node main.js
docker run --env-file ./.env canvas-notion-integration
Note
If you did not choose to build the image yourself, you can replace canvas-notion-integration
with ghcr.io/marigarey/canvas-notion-integration:main
In the future I do plan to add more to this, possibly blocks outside of the database. If you have any suggestions on what I should, please let me know! I want to hear your feedback and improve!
Note
The ID Property is for internal use and you can hide it in your database Hiding a Property:
- Go to
...
on the top right of your database - Click on the
Properties
Tab - Click the eye on the
ID
Property - It should get crossed out and disapear from your database!
Other: Docker addition doesn't run because the .env file is not set up