-
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Write a design for the possible solution #50
Comments
Step 1: CaptureCapturing information will be When I encounter some information that I want to capture, I don't want to lose UI/UXI think However, an even cleaner version is possible where I don't see the previously Which means, it's possible to further improve the UI/UX for an even better So, at the core, The input reader and the renderer should be able to receive and acknowledge Input reading should have the highest priority and rendering should be The information will be submitted in plain text format to keep things simple. The input (both title and body) will be raw i.e. no special format, syntax, The Sometimes I might want to skip the capture step and go directly to the next step. AvailabilityWhen I need to capture information,
The preferred method of sync/communication will be using websocket because it The information will be captured (queued) as |
Step 2: ClarifyOnce I capture enough information that might have some meaning for me, when I I can delete the information that has no meaning for me. Others are actionable. For each actionable item, if it's something trivial, I need to finish it right I need to prepare well so that I can skip the turning into task step for as The tasks could be stored as UI/UXThe UI will display the information one by one, each for max 2 minutes. I can In any case, I need to mark it as "Done" before the timeout, else it will get In order to turn some information into a "Task" I need to define the following:
The information should get auto-attached to the task. There will be customizable shortcuts to perform actions like making API calls, When the in basket is empty, it will remind me to check other sources like mobile, |
Step 3: OrganizeOnce I know what to do and how to do, I need to decide if I should and when to
These can be actual folders inside UI/UXA bunch of folders. Some will be there by default but can be deleted. Others |
Step 4: ReflectThis is where tasks get priorities based on the 6 horizons of focus:
The horizons can be defined in different folders like UI/UXThis step requires maximum visibility to all the tasks that need to be done. |
Step 5: EngageNow that the priorities are defined, it's time to engage and start doing. At UI/UXThis is a list of TODOs auto arranged by the calculated priority. All I need to |
Let's iterate on the design and try looking from another angle. |
What if we generalise the process and make it implementation independent? I think we can reduce the whole thing into a simple concept of a version Let's see how. CoreThe core is the storage that stores information, labels, properties and So, at minimum the core exposes api to:
InformationInformation is something we capture, often not knowing what it really is, or LabelAs per the core, labels are unique entities (defined as PropertyA property is also something that can be attached to an information. But unlike RevisionEach change to the information will contain a revision (basically a UTC ResponsibilitiesThat's all the core does, i.e. store data. The actual logic will be implemented PlatformA platform lets the user interact with the storage. But it does a lot more InformationThe platform knows the format of the information. It also formats the Labels & PropertiesThe platform can define what some labels and properties mean, how they For e.g. A platform can define a label called Platforms can also let the users define custom labels and properties, and define RevisionThe platform can utilise the revision fields to sync data between multiple ResponsibilitiesThe platform takes most of the responsibility to allow interaction between the The platform can also define or allow the users to define what happens when The platform can also implement support for calender, project The only requirements expected from a platform is to utilise the core storage UserDepending on what the platform enables, the user can also utilize the system However, it'd be great if the platform allows the users to collaborate and |
Benefits of the setting explained above:
Drawback: Most are related.
|
Example storage using plain files and folders (git optimized): /wrksp1/information/123/rev1/data |
The simplest way is to dump everything in a yaml file like mind already does. |
Standard for labelsA label should confirm to the format: e.g. The Now, the actual label can be defined using lower-case, hyphen ( Standard for propertiesSimilar to labels, properties also confirm to the This separation of platform and user defined labels is necessary to avoid conflict, where the user means one thing and the platform understands another. For e.g. the word This also makes it easy to migrate from one platform to another without losing functionality, because it will be easy for the migration tools to rename the We could also introduce A better alternative would be to introduce |
Next: #51 |
Write a design for the possible solution we came up with in #49.
Ref: #46
The text was updated successfully, but these errors were encountered: