GithubHelp home page GithubHelp logo

aapis / klockwork Goto Github PK

View Code? Open in Web Editor NEW
6.0 3.0 0.0 6.74 MB

KlockWork: A new way to organize yourself

Home Page: https://apps.apple.com/ca/app/klockwork/id1665392450?mt=12

Swift 100.00%
swiftui swift5 macos-app coredata-swift productivity productivity-app

klockwork's Introduction

KlockWork (formerly DLPrototype)

The productivity app for ADHD people. Well that's the goal, anyways.

Major Features

  • Simple task tracking
  • Simple note taking
  • People, Companies, Projects and Jobs. These are your high level organizational items.
  • Lastly, the activity log (Today view) where you log what you're working on.

See the wiki for more details.

Dashboard view

klockwork's People

Contributors

aapis avatar prieber-yp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

klockwork's Issues

TableDetails feature - timeline view

TableDetails should show a simple timeline (worked on TASK from X to Y, for each task). This would be helpful to provide a daily report (i.e. in standups?). Perhaps TableDetails should be implemented on a whole new view, "Standup" (?) or "Daily report" (?) and include some aggregate information about the preceding day.

Link aggregator view

Pull any links you add into records, tasks, etc into a list. Date added, job ID, and where it came from (record/task/note link) would be good info for this aggregated view. Should support search by date and link content.

Note versions

DOD

  • Each time we save a note it creates a new version, storing the content in another entity
  • View each version
  • Restore a version to current

Share tasks

Add a button for sharing/exporting task data. Tasks could probably export as markdown? Though plain text would also work. This should be tied into some new method for handling exports which uses the project configuration to modify what is shared.

As an employee, I'd like to be able to share what I'm currently working on with my manager as a list.

DOD

  • Functional share/export button on TaskView
  • Functional share/export button on Today view

Simple note taking

I write all my notes in markdown so all I really need is a plain text field.

DOD

  • CoreData integration
  • Note CRUD
  • Basic editing/list interfaces (standard lib views are fine)

Preferences per-client/company

Some mechanism for configuring things like banned words, export formats, and anything else a client may want that would be specific to that company's processes.

Sample story

  • Google doesn't like when my time logs contain "fuck" and "balls", the software should remove these words when this "workflow" is enabled.
  • The client whose job ID I am logging time for doesn't like when I use words like "broken" or "its all going to hell" so replace these words/phrases with artful euphemisms.

Thoughts

A record-like feed that functions more like a private social media feed. Maybe you can subscribe to RSS feeds, post updates or rants, but its all private and never exported. Not sure this would be a good feature for this app, maybe it should be a whole app by itself, but storing "thoughts" as a related entity would be useful for personal record keeping.

Link/button that takes you to a customized Find view called "Context"

As a user who has a real problem remembering things, I want to see some kind of view that brings all the related objects together and lists everything (contents, versions, etc), relates it all to the specific times at which each entity was created, and displays the information using time-oriented charts and tables.

Ideally this could use the upcoming Find view, or create a new one called something like "Context". Should be attached to each record in the Today view. This could also lead to redevelopment of the Calendar functionality.

Dependencies

  • Will likely piggy-back on the Find view code, so maybe this is a good task to take on after b73 launches.

Rough implementation details

  • Jobs
    • list of days representing when records associated to each job was posted
    • Associated notes
    • Associated plans
  • Notes
    • List of versions

DOD

  • Button added to the Today view next to each record
  • New/modified Find view
  • New UI design
  • Add to inspector panel
  • Supports Notes
  • Supports Jobs
  • Supports Records
  • Supports Tasks
  • Supports People
  • Supports Companies

Auto save and refresh

CoreData objects should auto-save and auto-refresh (where applicable). UI should wait for sync to complete.

Today "action" buttons

Context-sensitive action buttons that create pre-defined records. Things like "lunch", "meeting done", etc. Located directly below the message entry field. Other buttons could be suggested based on the day's activities.

Add "SR&ED" flag to Job entity

Should be a setting on the job that allows you to flag it as qualifying for SR&ED. One could imagine future features where a project allows configuration of these types of flags, in case SR&ED is not applicable for all users.

Quick notes

Note content that is stored and versioned but doesn't have a title and lives in a different. Kind of like a write-once, then read-only note. Use case is for copy/pasting records to time tracking services.

User entity object

Allows you to reference people using @name syntax. Supported through the creation of a new user entity. In the short term this can be hardcoded in the app.

Projects

Top level data structure. Jobs belong to projects, and jobs connect all the other data together.

Potential features

  • Configure custom fields that will be added to the create views for every content type
  • Enables job management

Add view status strip

  • Average number of words/characters in the "document"
  • Number of items associated with each job
  • ??

Maybe the ability to copy those data points as well?

Different types of export options in Today

  • Export button could highlight all record groups and allow you to export just some of them, or all of them at once (as the current export button does).
  • Allow export to CSV

Split view-view

Configurable split view. There's a very rudimentary version already available as an experimental feature, basically improve this to support any content type.

Calendar strip UI updates

  • Today should be locked to the far RIGHT position (because we're looking BACK a week).
  • Add badge for the number of records associated with each day (done in build 22).
  • Date picker should modify calendar strip. If you select a day from a previous week, that week should be loaded into the strip.

Ability to associate records, notes, tasks (etc) to each other

Some use case(s):

  • I want to attach a note to a record so I can easily find important or just extended information
  • I want to track changes on a note associated with a record and have the differences/timeline show in a view somewhere
  • I want each task to be associated with a record's job ID

Job entity type

Something like this:

struct Job: Identifiable {
    let key: Int
    let url: String
    let completed: Bool
    let id = UUID()
}

struct Entry: Identifiable {
    let timestamp: String
    let job: Job
    let message: String
    let id = UUID()
}

Purpose is to store a list of job-related data and expose it to the table(s) so we can (in the short term) add a "click link to view job" button.

Managing jobs will be a new NavigationView. Existing job list on Add view will be modified to include the list of ALL jobs as well as the ones in today's log.

In the short term this will require a new log file. Will eventually integrate with sqlite.

Note templates

Support creating notes based on user-created templates.

"This week" calendar view

Basically, just a strip of buttons that visually represent the current week and allow you to copy the data for each day directly from that interface.

Calendar 2.0

  • List out all tasks for each day (in like a "day view", not at the root)
    • Tasks would be listed like calendar events, showing duration

Convert Today view to use CoreData

Implement a new version of PlainText/Records that modifies data within CoreData instead. Implement this in the Today view to read and write data as required.

Simple to-do list functionality

As a user I'd like to be able to assign n+ items to a given task ID, then be able to automatically pull this information out and report on it later.

  • Record an entry (hit plus button), show some kind of UI which allows you to associate new TODO items.
  • Each record in the list should also receive this "plus" icon, which changes whether there are associated TODOs under that task ID.
  • When you click on this icon under a record in the list, show some kind of UI allowing you to edit all TODOs associated with this task ID.
  • TODOs are associated to a task ID so for each record we show all the TODOs for that ID.
  • Add another top level tab which would basically be a list of task ID + description with child items for each TODO
  • Top level tab interface should also allow for CRUD operations on TODO items. "Categories" would be pulled from the current day's task list.

Task list

DOD

  • Task object CRUD
  • Stored in CoreData

Global search/data viewer

Similar to how the old Search view worked except it could allow you to run NSPredicate queries, filter by search terms/dates/jobs/etc.

Simple duration tracking

My workflow at the moment is to note when I'm starting an activity and when it is done. Would be nice if, when entering "done", the most recent record with the same job ID were updated with the duration rounded up to the nearest ProjectConfig (new) duration "window" (1, 5, 10, 15, 30, 60 min options).

For example, if you start a meeting at 2:00 and record "done" at 2:10 on a project where the "duration window" is 15 mins, the record representing the start of the meeting is edited to include something like "[Duration: 0.25hr]". The "done" record is not created.

Could also accomplish this using a new button on each row. Not sure what icon but the button help could be "Mark activity complete".

Add a "company" level above projects

Data should be associated with a company so you can track data for multiple organizations at a time. This would be useful for freelancers and FTE who use the app thru multiple companies.

Cleanup codebase, perf test

  • Replace all data store instantiations with environment objects
  • implement helper/data store methods in place of legacy code that hasn't been upgraded yet
  • Standardize data sort and order parameters across the app

Timeline view

As a user I want to see a view that shows me all the objects created and updated within a specific timeframe.

Needs to be fleshed out more.

Job entity must enforce unique JID's

Newly created jobs can create the same job ID again, but with a new colour. All records attached to a given job ID should be coloured the same across the app.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.