diff --git a/PID-example.md b/PID-example.md new file mode 100644 index 0000000..9898488 --- /dev/null +++ b/PID-example.md @@ -0,0 +1,43 @@ +# Project Initiation Document + +## Project: Align projects across devices + +### Objectives + +Easier capturing of project ideas and access to existing project documentation on the fly. Best tools and storage locations decided and frameworks built around it all to make the workflow work. + +### In scope + +- Workflows on Linux and Android to **initiate** projects +- Creation of project folder and PID document +- Python coding +- Determining suitable Android coding - consider Automate and Tasker, and/or Obsidian plugins if needed +- Update PID template as needed. Use this project as a first-run test case. + +### Out of scope + +- Building an app +- Archiving projects +- Reporting of projects +- Anything to do with undertaking projects + +### Outcomes + +- [x] Single button on Android to start project creation process +- [x] Folders adhere to YYYYMMDD-lower-case-slug format +- [x] All files and folders synced across devices +- [x] Python scripting only on the Linux side +- [x] PID opens in Obsidian (mobile) +- [x] PID opens in Helix (Linux) +- [ ] Any code uploaded to dedicated Codeberg repo + +### Resources + +- [Automate by LlamaLab](https://llamalab.com/automate/doc/index.html) + +### Next actions + +- [x] Move PID template to vault folder and update create_project.py ✅ 2025-05-06 +- [x] Create an Obsidian workflow that replicates create_project.py +- [ ] Update PID template to split "Scope" headings to "In scope" and "Out of scope" +- [ ] Update PID template to include list and TODO placeholders under respective headings diff --git a/PID-template.md b/PID-template.md new file mode 100755 index 0000000..627377b --- /dev/null +++ b/PID-template.md @@ -0,0 +1,28 @@ +# Project Initiation Document + +## Project: + +### Objectives + + + +### In scope + +- + +### Out of scope + +- + +### Outcomes + +- [ ] + +### Resources + +- + +### Next actions + +- [ ] + diff --git a/README.md b/README.md index 2eb0ed0..3a8a375 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,21 @@ # create-project +These are the core files I use in my creation of projects workflow, very specific to the tools and operating systems I use on my laptop and phone (Linux Debian and Android operating systems, with [Obsidian](https://obsidian.md/)/[Syncthing](https://syncthing.net/)/[Helix](https://helix-editor.com/)/[Automate](https://llamalab.com/automate/) setups). + +I apply the agnostic [GTD](https://en.wikipedia.org/wiki/Getting_Things_Done) and [PARA](https://fortelabs.com/blog/para/) methodologies to this project. + +## What happens + +**On Linux**, in the terminal, you are prompted for a project name, then it opens the Project Initiation Document template (+example-project.md) with the cursor at the "Objectives" section, ready to write what the project is about. A project folder has been created in the `YYYYMMDD-lower-case-project-slug-name` format. + +**On Android**, when opening the home screen shortcut, you'll be prompt with project name and project description, which will be used to create the project directory and update the PID. It will then open the PID.md in Obsidian with that data pre-populated. + +If you have syncthing set up correctly, folders will be created in the same spot if you do these steps on either Linux or Android. + +## Notes + +I don't anticipate anyone actually following this setup, but it may give some ideas on what can be done. + +The PID-example.md is the actual Project Initiation Document I used for this project. It contains a bit more info. + +These are my unedited working files so if you actually intend on using them, you'll need to make changes to suit your file and folder structuring. diff --git a/create-project.flo b/create-project.flo new file mode 100644 index 0000000..cf8c412 Binary files /dev/null and b/create-project.flo differ diff --git a/create-project.py b/create-project.py new file mode 100755 index 0000000..7b23403 --- /dev/null +++ b/create-project.py @@ -0,0 +1,19 @@ +from datetime import datetime +import os +import pytz + +config_dir = '/home/zkbro/02-Areas/notes/templates/' +projects_dir = '/home/zkbro/01-Projects/' +current_date = datetime.now().astimezone(pytz.timezone('Pacific/Auckland')).strftime('%Y%m%d') +project_name = input("Name of project: ") +project_name_lower = project_name.replace(" ","-").lower() +new_dir = current_date + "-" + project_name_lower +full_path = projects_dir + new_dir +new_pid = full_path + "/+" + project_name_lower + ".md" + +os.makedirs(full_path, exist_ok=True) +os.system(f'cp "{config_dir}PID-template.md" "{new_pid}"') +os.system(f'sed -i "3s/$/{project_name}/" {new_pid}') +os.system(f'$EDITOR {new_pid}:7') # :7 will only work with the helix text editor, opening the file at line 7, ready for a brief description of the project. + +print(project_name, "project created at", full_path)