Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing workflows and adding more docs #10

Merged
merged 3 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSHKEY }}
source: ".,!tests,!.git,!.vscode"
source: ".,!tests,!scripts,!docs"
target: "/home/theodorb/notion-recurring-tasks/"

- name: Install dependancies
Expand All @@ -28,5 +28,5 @@ jobs:
script: |
cd /home/theodorb/notion-recurring-tasks
. .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install --upgrade pip
pip install .
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Tests

on:
push:
branches-ignore: [main]
branches: [main, dev]
pull_request:
branches: [main, dev]

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Using the Notion API to achieve recurring tasks in Notion.

## General Information

Notion is a great productivity tool for tracking goals, projects and tasks. However, achieving recurring tasks (tasks whos due date repeats at a set interval) is a hassle and requires manual intervention without external tools. Thanks to the Notion API we can access our task data programatically and make specific tasks recur automatically. This program can be connected to a tasks database in Notion and update the Status and Due Date of these tasks accordingly.
Notion is a great productivity tool for tracking goals, projects and tasks. However, achieving recurring tasks (tasks whos due date repeats at a set interval) is a hassle and requires manual intervention without external tools. Thanks to the Notion API we can access our task data programatically and make specific tasks recur automatically. This software can be connected to a tasks database in Notion and update the Status and Due Date of these tasks accordingly.

### Technologies

Expand Down Expand Up @@ -93,4 +93,4 @@ Room for Improvement:

## Contact

This code is written and maintained by [Theodor Blom](mailto:[email protected]).
This code is written and maintained by [Theodor Blom](mailto:[email protected]).
Binary file added docs/assets/img/demonstration-1.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/demonstration-2.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/demonstration-3.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/demonstration-4.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-1.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-10.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-2.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-3.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-4.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-5.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-6.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-7.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-8.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/getting-started-9.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions docs/demonstration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Demonstration

The purpose of the Notion Recurring Tasks software is to detect tasks in your Notion which are marked for recurrance and update them according to the task properties. In the below demonstration you will see a set of images showing how these tasks are updated when running the software.

![Recurring Task](assets/img/demonstration-1.PNG)

The above task is done and marked to recur with all properties set. The Status is reset to 'Not started' and the Due Date is set to the new date accoring to the recur properties.

![Recurring Task Without Due Date](assets/img/demonstration-2.PNG)

Tasks do not *need* a Due Date to recur. Here the Status is simply reset to 'Not started'. This is useful if you have tasks that are dependant on something else than a Due Date.

![Incomplete Recurring Task](assets/img/demonstration-3.PNG)

If a recurring task is missing one of the recur properties, it resets the Status but keeps the old Due Date.

![Archived Task](assets/img/demonstration-4.PNG)

If a task is marked as Archived it is ignored and does not recur.
12 changes: 6 additions & 6 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# Welcome to the Notion Recurring Tasks Documentation

> [Notion Recurring Tasks](https://github.com/Theeoi/notion-recurring-tasks) is a program for achieving recurring tasks in [Notion](https://www.notion.so/).
> [Notion Recurring Tasks](https://github.com/Theeoi/notion-recurring-tasks) is software for achieving recurring tasks in [Notion](https://www.notion.so/).

Notion is a great productivity tool for tracking goals, projects and tasks. However, achieving recurring tasks (tasks whos due date repeats at a set interval) is a hassle and requires manual intervention without external tools. Thanks to the Notion API we can access our task data programatically and make specific tasks recur automatically. The [Notion Recurring Tasks](https://github.com/Theeoi/notion-recurring-tasks) program can be connected to a tasks database in Notion and update the Status and Due Date of these tasks accordingly.
Notion is a great productivity tool for tracking goals, projects and tasks. However, achieving recurring tasks (tasks whos due date repeats at a set interval) is a hassle and requires manual intervention without external tools. Thanks to the Notion API we can access our task data programatically and make specific tasks recur automatically. The [Notion Recurring Tasks](https://github.com/Theeoi/notion-recurring-tasks) software can be connected to a tasks database in Notion and update the Status and Due Date of these tasks accordingly.

## Getting Started [Quickly]

If you are getting started with the program for the first time is it recommended that you follow the full [Getting Started Tutorial](tutorial/getting-started.md). If not, here is a quick rundown of what needs to be done:
If you are getting started with the software for the first time is it recommended that you follow the full [Getting Started Tutorial](tutorial/getting-started.md). If not, here is a quick rundown of what needs to be done:

1. Download a [release of the program](https://github.com/Theeoi/notion-recurring-tasks/releases)
- Executable or Source code (Executable recommended for most users)
2. Set up a [Notion Integration](https://www.notion.so/my-integrations) and get a Notion API key.
3. Set up your Notion database with the required properties and integration
4. Install and run the program
- The program will prompt you for the key from step 2
- The software will prompt you for the key from step 2
5. [Optional] Automate the execution of the program

## Documentation Overview

- [Tutorials](tutorial/index.md)

Learn how to set up and use the Notion Recurring Tasks program in bite-sized chunks.
Learn how to set up and use the Notion Recurring Tasks software in bite-sized chunks.

- [How-to-guides](how-to-guide/index.md)

Expand All @@ -36,7 +36,7 @@ Gain deeper understanding of the Notion Recurring Tasks package with explanation

## Support

If you have an issue or question regarding this program I highly appreciate it if you would [submit an issue on the Github page](https://github.com/Theeoi/notion-recurring-tasks/issues). This way every inquiry is public and collected in a centralized place for me and others to assist you easily. Please take some time to look through the issues, chances are that your issue or question already has been answered.
If you have an issue or question regarding this software I highly appreciate it if you would [submit an issue on the Github page](https://github.com/Theeoi/notion-recurring-tasks/issues). This way every inquiry is public and collected in a centralized place for me and others to assist you easily. Please take some time to look through the issues, chances are that your issue or question already has been answered.

When submitting a new issue it is important to leave as much information as possible. More detailed issues have a higher chance of getting a quick response. Important details to include are:

Expand Down
1 change: 1 addition & 0 deletions docs/tutorial/automating-the-software.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Automatically Running the Software
1 change: 1 addition & 0 deletions docs/tutorial/build-from-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Building an Executable from Source
72 changes: 72 additions & 0 deletions docs/tutorial/getting-started.md
Original file line number Diff line number Diff line change
@@ -1 +1,73 @@
# Getting Started

Congratulations on deciding to get started using the Notion Recurring Tasks software!

The road ahead can be a little complex if you are not used to working with APIs and Notion databases. But this tutorial will break down the process in four easy-to-follow steps. Once you have completed this tutorial the software and your Notion will be set up for continous use without complications.

And remember, if you have trouble following this tutorial or have any other questions please do not hessitate to reach out through the [support page](../index.md#support).

## Getting the Software

The first step is to get the software onto your computer. There are 3 ways of doing this where the first two revolve around downloading (or cloning) the source code. From there you can either [install the software](install-from-source.md) or [build an executable](build-from-source.md). The third option is to download an already built executable.

For the purposes of this tutorial we will be downloading an already built executable of the software. You should *always* be cautious of downloading an executable from the internet! So if you do not trust the files you are about to download then it is recommended to instead choose one of the above two options.

![Release Assets](../assets/img/getting-started-1.PNG)

You can find the software on the [release page on Github](https://github.com/Theeoi/notion-recurring-tasks/releases). On the various releases there are assets as shown in the image above.

The source code assets contain a copy of the source code at the time of the release. The other assets are compressed executables of the software (marked in red) built for specific operating systems (windows for Windows and unix for Linux/MacOS). Download the one appropriate for you. After downloading, extract the `.zip` to an appropriate location.

> :grey_exclamation: **NOTE**: For Windows users, NordVPNs file protection service (and possibly other similar services) will immediately delete `notion-recurring-tasks.exe`. Please disable such services before extracting.

If done successfully, you should now have the `notion-recurring-tasks` directory with the content shown below and be able to run it.

![Software Content](../assets/img/getting-started-2.PNG)

![First Run](../assets/img/getting-started-3.PNG)

## Setting up your Notion Integration

Before moving onward with the software, it is required to allow the software to interact with your Notion. This is done through a [Notion Integration](https://www.notion.so/my-integrations). Navigate to that page and login using your Notion account.

![Notion Integration Page](../assets/img/getting-started-4.PNG)

On the Notion Integration page you should see something like the image above. Create your integration by pressing '+ Create new integration' and fill in some basic information like below. It is important to select the Notion Workspace in which your recurring tasks database will be. Choose a name that is descriptive of what the integration does and is easily identifiable. This will help you later.

![New Integration Basicinfo](../assets/img/getting-started-5.PNG)

![Change Integration Capabilities](../assets/img/getting-started-6.PNG)

![Copy Integration Secret](../assets/img/getting-started-7.PNG)

After your integration is created you can change its capabilities on the 'Capabilities' page. The Notion Recurring Tasks software only needs access to read and update tasks in your task database, and therefore it is recommended to limit it accordingly.

The 'Secret' page contains the Notion key that is required to connect the software to your integration. We will use this key in a future step.

> :warning: **WARNING**: DO NOT SHARE THIS NOTION KEY WITH ANYONE!

## Preparing your Task Database within Notion

The next step is to create the necessary properties in your task database within Notion and add your newly created integration to it.

In your task database, every task must have the following properties set up like below: *Archived, Status, Due Date, Recurring, RecurInterval and RecurUnit*. The two images show a demo task with the properties added as well as an overview of each property and how they are set up in the database. If you are unfamiliar with how to set up properties in a database, it is recommended to read [Thomas Franks guide](https://thomasjfrank.com/notion-databases-the-ultimate-beginners-guide/#database-properties) on the topic.

> :grey_exclamation: **NOTE**: You can have more task properties than the minimum required. Add these to a new database or integrate the properties with your already existing tasks database.

![Notion Task](../assets/img/getting-started-8.PNG)

![Task Properties Overview](../assets/img/getting-started-9.PNG)

The final step is to add your previously created Notion integration to this database. *On the page of the database*, press the three dots in the far upper right corner. Go to 'Add connections' and search for the name of your integration. Once added it should show up in the list of connections.

> :grey_exclamation: **NOTE**: Since the connection is added to the database itself and not the workspace, the connection will not be visible on the connections list elsewhere.

![Adding the Integration](../assets/img/getting-started-10.PNG)

## Running the Software

Congratulations! With your Notion database set up you are ready to run the software and try it out.

As we saw earlier, the software prompts you for your Notion key upon starting up. Copy the secret key from your integration you created earlier and input it to the software. If everything is set up properly the software should print how many tasks it managed to update with a new Due Date according to the set properties. If not (or you are getting an error), please dubble check that everything is set up as instructed above.

If you are still experiencing issues, please get in touch through the [support page](../index.md#support).
1 change: 1 addition & 0 deletions docs/tutorial/install-from-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Installing the Software from Source
6 changes: 6 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,18 @@ plugins:

markdown_extensions:
- footnotes
- attr_list
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg

nav:
- Home: index.md
- Demonstration: demonstration.md
- Tutorials:
- tutorial/index.md
- Getting Started: tutorial/getting-started.md
- Automatically Running the Software: tutorial/automating-the-software.md
- How-to-Guides:
- how-to-guide/index.md
- Code References: reference/
Expand Down