A Node CLI (Notion Internal Integration) that imports your Canvas course data into your Notion workspace. AKA (Canvas Notion Bridge)
-
Have you ever been confused on where to click to find your sylabus, teachers notes, assignments, and assesments on Canvas?
-
Don't you wish that teachers showed you all your course information in the same way?
-
Or do you just hate how the Canvas website is formatted!!!
cnbridge aims to solve this problem by allowing you to create a local template of your Canvas courses in Notion, then allowing you to customize each of those courses according to how they are formatted. All of the data from each of your courses is stored in a collection of unified databases, that allows the creation of a customizable dashboard for all of your classes combined.
cnbridge provides two main peices of functionality, syncing course data, and formatting your Notion workspace to successfully interface with that data.
This is a pet project that I am working in tandem to other things,
Soooooo... development will be slow, but will have set deadlines.Project status will be tracked through a github project tab. While the projects main communication will be on the Mines ACM discord.
Discord: Mines ACM
This project is reliant on Node.js so make sure you have a copy for your platform.
Clone the repository:
git clone https://github.com/MatterMr/CNBridge
cd cnbridge
The following commands must be run within the cnbridge
directory:
To update the source code to the latest commit:
git pull
To install the projects dependancies:
npm install
To install the cnbridge
command in your local enviorment:
npm install -g .
The cnbridge
command should now be installed locally, so lets test it!
cnbridge --help
Unfortunatly the commands listed in the help menu right now are mainly placeholder until the backend services are finished.
The most useful command in this instance is the test command, which allows us to test the backend while it is in development.
To create a test command create test.js
in the src/commands/
directory:
touch src/commands/test.js
Then paste this into test.js
:
exports.command = "test";
exports.describe = "test command";
exports.builder = {};
exports.handler = async function (argv) {};
Any code within the handler function will be run when cnbridge test
is run.
Currently the client configuration is stored in src/config/config.json
, please create this file by copying the template and changing its name.
This configuration system is bound to change as time goes on, but for now it is used for storing api tokens and endpoints.
Before committing, you should formatt your code. Please, I beg of you.
npm run lint
npm run lint-fix
Personaly I use a combination of ESLint and Prettier (with another merging extension ESLint Prettier) vscode extensions. But using only ESLint in whatever IDE you chose should suffice.
This project is still quite early on, so there are large and abstract tasks that need to be taken on before the project is fully functional. Some of which I want to tackle on my own for the sake of learning, but sharing insight and ideas is a key focus of any project I work on, so feel free to contribute.
The end goal of this project is to help people learn, either by developing the project, or by utilizing the tool to remove an extra stress off of your course load.
Contact @mattermr on discord for questions, or just to rant about what I am doing wrong. This is my first open sourced, collaborative project, so pardon my dust as I figure things out.