Skip to content

An AWS Lambda function for syncing various different services with Notion databases

License

Notifications You must be signed in to change notification settings

jakegodsall/notion-dashboard

Repository files navigation

Notion Dashboard

The Notion Dashboard app integrates data from different services into a Notion database, helping you track and manage your activities seamlessly.

Integrations

  • LingQ Integration: Sync your daily word counts into a Notion database.
  • WHOOP Integration: Track your workouts, including metrics like heart rate, duration, and calories burned.

Installation

  1. Clone the repository:

    git clone https://github.com/jakegodsall/notion-dashboard.git
    cd notion-dashboard
  2. Create and activate a virtual environment:

    python3 -m venv .venv
    source .venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Configure the app:

    • Add your Notion API credentials and database configurations to the src/config/notion.config.yml file.

Usage

Run Manually

The app can be run as a command-line tool using the main.py file:

python main.py

Run as an AWS Lambda Function

The app includes a lambda.py file for running as an AWS Lambda function. This is useful for deploying the app to AWS Lambda for serverless execution.

The project is set up using AWS SAM (Serverless Application Model) for easy deployment. To deploy:

  1. Install the AWS SAM CLI if not already installed:
brew install aws-sam-cli
  1. Build the project:
sam build
  1. Deploy the application:
sam deploy --guided

Follow the prompts to configure the environment variables and other configurations for deployment.


Configuration

Notion API

Create a notion.config.yml file in src/config with the following structure:

notion:
  key: "notion-key"
  integrations:
    whoop:
      database_id: "database-id"
      field_mappings:
        date:
          label: "Date"
          key: "date"
          type: "date"
        duration:
          label: "Duration"
          key: "duration"
          type: "number"
        distance:
          label: "Distance (km)"
          key: "distance"
          type: "number"

Troubleshooting

Common Errors

FileNotFoundError: notion.config.yml

  • Ensure the configuration file exists at src/config/notion.config.yml with valid Notion API credentials.

ModuleNotFoundError

  • Check that your PYTHONPATH includes the project root directory:
    export PYTHONPATH=/path/to/notion-dashboard

Contributing

  1. Fork the repository.
  2. Create a new feature branch:
    git checkout -b my-new-feature
  3. Commit your changes:
    git commit -am 'Add some feature'
  4. Push to the branch:
    git push origin my-new-feature
  5. Open a pull request.

License

This project is licensed under the MIT License. See LICENSE for details.

About

An AWS Lambda function for syncing various different services with Notion databases

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages