https://github.com/thudsonbu/breadboard
A microservice that syncs up some of the apps that I use. Currently habitica and todoist.
https://github.com/thudsonbu/breadboard
adapter-pattern hapijs mongodb nodejs rest-api typescript
Last synced: about 1 month ago
JSON representation
A microservice that syncs up some of the apps that I use. Currently habitica and todoist.
- Host: GitHub
- URL: https://github.com/thudsonbu/breadboard
- Owner: thudsonbu
- Created: 2021-08-21T21:10:50.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-07-15T21:45:54.000Z (over 2 years ago)
- Last Synced: 2025-02-05T11:38:52.544Z (about 1 year ago)
- Topics: adapter-pattern, hapijs, mongodb, nodejs, rest-api, typescript
- Language: TypeScript
- Homepage:
- Size: 884 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Breadboard
Breadboard is a micro service that receives webhooks from Todoist and Habitica
and keeps them in sync. It runs on node.js and uses the
[hapi](https://hapi.dev/) backend framework.
# Usage
To use integrations, you need to create a new application from the
[applications menu](https://developer.todoist.com/appconsole.html) in Todoist.
Set the OAuth redirect URL to http://localhost:3232. Next, you can use the
command `npm run o-auth` to retrieve an o-auth url which will guide you
through the OAuth process and output todoist credentials for integrations. (You
might need to clear your cookies before this).
The token that you received will be added as an environment during deployment:
```bash
TODOIST_REST_API_TOKEN="token_from_browser" node lib/index.js
```
Habitica doesn't require the OAuth flow to be completed. Instead you can instead
visit the [api settings page](https://habitica.com/user/settings/api) and crab
the user id and client id. These keys are also added as environment variables
during deployment:
```bash
HABITICA_USER_ID="user_id",
HABITICA_API_KEY="api_token",
```
Habitica doesn't allow apps to be configured in an integrations console like
Todoist. Instead, you need to hit their api to create them. You can use
`npm run setup-webhooks` with the habitica environmental variables added to a
run a script that will guide you through that process.
With those files in place, Breadboard is ready to be built and deployed.
# Development
[Kanban](https://www.notion.so/thomashudsonnotes/7decf642e29a4b0c85f68ab67590bd4f?v=858a547724424c4fb24c1926845db39a)