GithubHelp home page GithubHelp logo

Setup modes about taskmaster HOT 17 CLOSED

ctengel avatar ctengel commented on August 22, 2024
Setup modes

from taskmaster.

Comments (17)

ctengel avatar ctengel commented on August 22, 2024

This is essential to make this work and be worthwhile

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

If we are committed to this mode - should we simplify tm.py, then add DB storage layer, then build API around tm.api?

The "timelines" concept is much less complex here, and indeed in "simplified mode" already existing.

Basically:

  • List => the DB table itself (perhaps with a list column/filter)
  • Item => the Todo Item with ways to go into DB format or JSON/API format
    • Don't fear marshmellow
  • Timeline => simplify to DateTime (and have some way to import complex datetime if needed)
    • Backwards-compatibility doesn't have to be part of the MVP. Since today we are just using text files for the most part

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Interactive CLI may serve as good MVP for some of these, especially Triage.
See:

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

ncurses Urgent Important ABC Frog - just push a key 0/1/2... Timing
Shift key for filter/sort
Enter to confirm, escape to cancel

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Now focused on server side. APIs to add from #4

  • GET /tasks/ - Filters - closed, triage, scheduleable, followupable
  • GET /tasks/?search=
  • GET /tasks/id/similar
  • POST /tasks/id/action - Duplicate

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

As needed to accomplish this goal...

  • More fields in the DB and API model
  • replicate any legacy taskmaster code

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Hide closed by default, but allow including or only

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Next steps:

  1. Review notes and above to document lifecycle in README
  2. Establish M.V.P.
  3. Create issues for all beyond M.V.P. (see also #10 )
  4. Document any APIs needed to make MVP happen
  5. Enable or uncomment any DB fields needed to make MVP happen
  6. Write server code to make MVP happen
  7. Write client library code to effectively communicate in a mode-native way with server for MVP
  8. Establish whether MVP mode is quickest via User Interface:
    • #9 Interactive CLI
      • or just Basic CLI
    • #12 and/or #11
      • static HTML with JS that calls API?
      • Flask WebGUI front end that leverages client library API
      • separate Flask GUI code from API, abstracting out key operations from both (not preffered)
  9. Note that existing or new issue here
  10. Close this issue

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

MVP:

  • collect => triage => schedule => warm => close
  • no multiple users
  • no dependencies
  • triage and schedule together?
  • no upsert

APIs

  • triage mode, stage mode, warm mode

DB

  • wakeup
  • staged/warm
  • due???
  • poms/urgent/important/pri??

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Also

  • frog
  • GET /tasks/?mode=triage/schedule/stage/execute

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Lots of issues with dates - flask-restx should be handling - but is it?

Also timezone...

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

https://www.fullstackpython.com/flask-views-methodview-examples.html

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024
  • GET /tasks?mode=frog ?
  • the test is essentially run a task through all the steps, using the client lib, and check each "mode" to ensure it is where it's expected but not where it isn't
  • which all begs the question - should the task listing item simply just TELL us which mode(s) it is in... i.e. have simple python logic that does same thing as SQL logic and some assertion to ensure that it always matches

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

https://flask.palletsprojects.com/en/2.0.x/testing/

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Modes:

  • all (N/A)
  • closed (closed != NULL)
  • open (closed == NULL)
  • execute (warm == True; closed ==NULL)
  • stage (closed == NULL; wakeup <= NOW)
  • schedule (closed == NULL; warm == False; wakeup == NULL)
  • triage (closed == NULL; no poms, no urgent, no importan)

Assign a primary "state" to each:

  • if closed, closed
  • if warm, warm
  • if wakeup <= NOW, awake
  • if wakeup > NOW, sleep
  • if pomodoros != null, urgent !=null, important != null, triage
  • else, schedule

from taskmaster.

ctengel avatar ctengel commented on August 22, 2024

Next steps:

  1. Finish basic manual testing, using #28
  2. Close this issue
  3. Build some import #13
  4. Mode CLI #9
  5. Rest of milestone including #12 and #32
  6. Close milestone
  7. Do rest including #11

from taskmaster.

Related Issues (20)

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.