Inspiration

We wanted to create a discord bot that helps with remote collaboration among teams, and integrate one of our favorite web tools, Notion into the bot and give it superpowers with the Cloud Vision API.

What it does

It has a lot of different user commands -

  1. !status - Used to check status of the current project
  2. !menu - To view command list
  3. !setup Project Name - To start up a project and store it on Firebase
  4. !load Project Name - To load a project from Firebase if it exists
  5. !token token_v2 - To set the token value from the user's Notion cookie
  6. !page page link - To set the link of publicly shared and untitled page in the project
  7. !lock label - To lock the page from any edits
  8. !unlock label - To unlock the page
  9. !add label img attachment - To add a specified block to the project.
  10. !read query string - To get the hyperlink of the indexed block of the page.
  11. !update query string img attachment - To set text of queried block to image's text
  12. !delete query string - To delete the indexed block of the page.
  13. !img url - To add the specified image to the project
  14. !video url - To add the specified video to the project

How we built it

  1. Node.js
  2. Cloud Vision API
  3. Firebase
  4. Python Child Process Script
  5. Discord.js

Challenges we ran into

No official API, had to understand a homebrewed one ourselves, using the Firebase and Vision APIs, recursion bugs. Plus, the Notion API was in Python, so we had to use it in our project. Also, setting up different admin and user roles was a difficult process.

Accomplishments that we're proud of

  1. We used Cloud Vision and Firebase APIs successfully!'
  2. We didn't create a REST API altogether, just used a Node child_process for running our Python script
  3. Setup everything with the help of a number of random tutorials, documentation and debugging!

What we learned

Using child processes, APIs, async programming, Linode setting up, Discord.js library, creating user roles and permissions for our bot's messaging.

What's next for Notionly - Empowering Teams!

  1. Integration with the official Notion API when it's out of beta
  2. Adding colors, toggle blocks, page nested integrations.
  3. More usability and friendliness!
  4. Command History

Built With

Share this project:

Updates