{"id":23699473,"url":"https://github.com/jakegodsall/notion-dashboard","last_synced_at":"2026-04-28T01:33:13.081Z","repository":{"id":264687769,"uuid":"894091169","full_name":"jakegodsall/notion-dashboard","owner":"jakegodsall","description":"A collection of AWS Lambda functions for syncing various different services with Notion databases.","archived":false,"fork":false,"pushed_at":"2025-10-27T19:30:43.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-27T21:25:57.291Z","etag":null,"topics":["aws-sam","lambda-functions","lingq","notion","notion-api","whoop"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jakegodsall.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-25T18:28:49.000Z","updated_at":"2025-10-27T19:30:47.000Z","dependencies_parsed_at":"2025-02-06T22:22:04.822Z","dependency_job_id":"78ac72bb-4f56-4f2d-a20e-4514a8af9582","html_url":"https://github.com/jakegodsall/notion-dashboard","commit_stats":null,"previous_names":["jakegodsall/notion-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jakegodsall/notion-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakegodsall%2Fnotion-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakegodsall%2Fnotion-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakegodsall%2Fnotion-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakegodsall%2Fnotion-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jakegodsall","download_url":"https://codeload.github.com/jakegodsall/notion-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jakegodsall%2Fnotion-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32362781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws-sam","lambda-functions","lingq","notion","notion-api","whoop"],"created_at":"2024-12-30T08:11:21.300Z","updated_at":"2026-04-28T01:33:13.067Z","avatar_url":"https://github.com/jakegodsall.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Notion Dashboard\n\nThe **Notion Dashboard** app integrates data from different services\ninto a Notion database, helping you track and manage your activities seamlessly.\n\n## Integrations\n\n- **LingQ Integration**: Sync your daily word counts into a Notion database.\n- **WHOOP Integration**: \n  - Track your workouts, including metrics like heart rate, duration, and calories burned\n  - Monitor sleep and recovery data with intelligent date handling for overnight sleep sessions\n\n---\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/jakegodsall/notion-dashboard.git\n   cd notion-dashboard\n   ```\n\n2. Create and activate a virtual environment:\n   ```bash\n   python3 -m venv .venv\n   source .venv/bin/activate\n   ```\n\n3. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Configure the app:\n   - Add your Notion API credentials and database configurations to the `src/config/notion.config.yml` file.\n\n---\n\n## Usage\n\n### Command Line Interface\n\nThe app provides a rich command-line interface with various commands for different integrations:\n\n#### Get Help\n```bash\n# Show all available commands\npython main.py --help\n\n# Show help for Whoop-specific commands\npython main.py whoop --help\n```\n\n#### LingQ Commands\n```bash\n# Sync LingQ word counts\npython main.py lingq\n```\n\n#### WHOOP Commands\n```bash\n# Sync workouts for today\npython main.py whoop workouts\n\n# Sync workouts for a specific date\npython main.py whoop workouts --date 2024-03-20\n\n# Sync sleep and recovery data for today\npython main.py whoop sleep\n\n# Sync sleep and recovery for a specific date\npython main.py whoop sleep --date 2024-03-20\n\n# Sync sleep data, continuing backwards until first available record\npython main.py whoop sleep --date 2024-03-20 --loop-until-first\n```\n\n### Run as an AWS Lambda Function\n\nThe 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.\n\nThe project is set up using AWS SAM (Serverless Application Model) for easy deployment. To deploy:\n\n1. Install the AWS SAM CLI if not already installed:\n\n```bash\nbrew install aws-sam-cli\n```\n\n2. Build the project:\n\n```bash\nsam build\n```\n\n3. Deploy the application:\n\n```bash\nsam deploy --guided\n```\n\nFollow the prompts to configure the environment variables and other configurations for deployment.\n\n---\n\n## Configuration\n\n### Notion API\nCreate a `notion.config.yml` file in `src/config` with the following structure:\n\n```yaml\nnotion:\n  key: \"notion-key\"\n  integrations:\n    whoop-workout:\n      database_id: \"database-id\"\n      field_mappings:\n        date:\n          label: \"Date\"\n          key: \"date\"\n          type: \"date\"\n        duration:\n          label: \"Duration\"\n          key: \"duration\"\n          type: \"number\"\n        distance:\n          label: \"Distance (km)\"\n          key: \"distance\"\n          type: \"number\"\n    whoop-sleep-and-recovery:\n      database_id: \"sleep-database-id\"\n      field_mappings:\n        date:\n          label: \"Date\"\n          key: \"date\"\n          type: \"date\"\n        sleep_score:\n          label: \"Sleep Score\"\n          key: \"sleep_performance_percentage\"\n          type: \"number\"\n        recovery_score:\n          label: \"Recovery Score\"\n          key: \"recovery_score\"\n          type: \"number\"\n```\n---\n\n## Troubleshooting\n\n### Common Errors\n\n#### FileNotFoundError: `notion.config.yml`\n- Ensure the configuration file exists at `src/config/notion.config.yml` with valid Notion API credentials.\n\n#### ModuleNotFoundError\n- Check that your `PYTHONPATH` includes the project root directory:\n  ```bash\n  export PYTHONPATH=/path/to/notion-dashboard\n  ```\n\n#### Sleep Data Synchronization Issues\n- The sleep tracking system handles overnight sleep sessions by checking both the current and previous day for matching records\n- If you see duplicate records, ensure you're not running multiple syncs for the same sleep session across different days\n\n---\n\n## Contributing\n\n1. Fork the repository.\n2. Create a new feature branch:\n   ```bash\n   git checkout -b my-new-feature\n   ```\n3. Commit your changes:\n   ```bash\n   git commit -am 'Add some feature'\n   ```\n4. Push to the branch:\n   ```bash\n   git push origin my-new-feature\n   ```\n5. Open a pull request.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See `LICENSE` for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakegodsall%2Fnotion-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakegodsall%2Fnotion-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakegodsall%2Fnotion-dashboard/lists"}