GithubHelp home page GithubHelp logo

erudition / minder Goto Github PK

View Code? Open in Web Editor NEW
10.0 10.0 0.0 28.38 MB

Assistant & life planner for individuals with weak Executive Functions. (Pre-alpha)

Home Page: https://erudition.github.io/Minder

License: GNU General Public License v3.0

Elm 90.95% HTML 0.38% CSS 1.44% JavaScript 3.65% Shell 0.22% SCSS 0.23% TypeScript 2.77% PowerShell 0.02% Scheme 0.11% Java 0.18% Makefile 0.06%
android calendar cross-platform real-time time-tracker todo-list

minder's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

minder's Issues

In-app search engine

Every object in the app should be subject to full-text search. Ideally this is all done within Elm.

The most relevant text search libraries are:

https://package.elm-lang.org/packages/jxxcarlson/elm-search/latest/
Searches text like the one below but also dates, no special features.

https://package.elm-lang.org/packages/billstclair/elm-id-search/latest/
Can just filter records by their strings, so may be useful for autocomplete tagging of tasks or contexts or people

https://package.elm-lang.org/packages/jxxcarlson/elm-text-search/latest/
Does everything the above can do, Covers all the basics, allows negation and logical operators, not much fuzziness features

https://package.elm-lang.org/packages/rluiten/elm-text-search/latest/
inspired by lunr, probably the most powerful option, includes fuzziness features!

Store tasks in Dictionary instead of List

Our tasks have unique IDs, which best fits the data structure Dict, while Lists could hypothetically contain two tasks with the same ID by some mistake. Choosing a data structure that naturally enforces this would make this impossible. Lists also preserve order, which has no meaning in our application since the tasks are always ordered while being put on the screen. (Do Dicts preserve order too?)

I need this!

Hello there!

I have ADD and I'm on my way to build my own WearOS app too.
(with Svelte and NativeScript)

In fact, I'd love to build tons of apps for my dear watch.

Is there an APK of your app somewhere that I could try? Just playing around.

Migrate to Elm-Land

Since this project started there has been a development in the Elm community that matches the systems I've had to build myself in terms of making an Elm Single-Page App: Elm-Land.

https://elm.land/

With Elm Land, I can scaffold new pages with one command, ideas I implemented like Shared and Effect modules come by default, and routing is done for me. And it's all in Vite, the engine I'm using anyway!

Migrating to Elm Land will also allow me to more readily publish the libraries I built for this app, as they can be more easily made compatible with not just this particular app (with its complex interdependencies) but in fact any elm-land app (e.g. since an elm-land app will have an Effect module).

To be done:

  • Confirm that all of the custom Vite configuration I use is supported by Elm-land (so far it seems no).
  • Start the migration, which may have to involve starting a new elm-land project from scratch and copying over all the code...

Smart Auto-planning with search algorithms / scoring engine

To figure out the best times to do things

  • within the constraints of when they can be done
  • with consideration of buffers required to guarantee deadlines are not missed
  • by placing them in the free time that is associated with the lowest procrastination rate
  • observing importance levels and prioritizing necessities
  • grouping together tasks of similar activity to minimize context switching
  • grouping tasks of similar place to minimize travel
  • adjusting autoplans in real time as the user moves around plans manually
  • account for automatic breaks during longer work sessions
  • promote oscillation (taking frequent movement breaks rather than bulk exercise)

... we need a scoring/search algorithm that considers all the needs to be met, in what order, and then places them somewhere on the timeline, with the ability to shift already-placed items to optimize for the bigger picture.

Here are the best two problem solving libraries I've found in Elm so far:

https://package.elm-lang.org/packages/davidpomerenke/elm-problem-solving/latest/
Lets you visualize the progress! In a bunch of ways. Supports Depth-first search, breadth-first search, uniform-cost search (Dijkstra's algorithm), greedy search, and best-first (A*) search. Seems ideal but

https://github.com/the-sett/ai-search
...this one has most of the same algorithms yet includes iterative deepening - I can stop and resume the search at any time, rather than being stuck with no results till the end. Hmmm. Also some of these algos might be better...
Supports
Beam Search [https://en.wikipedia.org/wiki/Beam_search]

B* [https://en.wikipedia.org/wiki/B*]

SMA* [https://en.wikipedia.org/wiki/SMA*]

Fringe Search

Use CSS Grid

Change your Activity List styles to

ul class="activity-list" style="display: grid;grid-auto-flow: dense;grid-template-columns: repeat(auto-fill, minmax( 100px, 1fr));grid-gap: 3px;"

This allows the activity-list to grow and expand dynamically to fill the screen. This also allows for dynamic grid-gaps

The Result is this:
image

Vs current version
image

Allow Due dates without specific time

This could be implemented in a bulky way with a (Date, Maybe Time) or a (DateTime, isTimeSpecified) but it would be the most useful to, as allowed in the ISO 8601 spec that standardizes the format for dates and times, use the time 24:00 to mean the end of a day (as opposed to midnight that begins it) as an equivalent but differentiable value to midnight of the next day.

However, first the elm-time library we use must support that feature:
elm-community/elm-time#76
...lest we use raw ISO8601 Strings for everything.

Descriptive Reminders

Reminders should show details about the upcoming task, and encouragement messages.

Github milestone

You should provide some milestones for Docket.
i.e. Convert to Native
Or some of Docket's upcoming plans you have. That would be nice!

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.