Coder Social home page Coder Social logo

edfloreshz / done Goto Github PK

View Code? Open in Web Editor NEW
274.0 6.0 23.0 4.75 MB

The ultimate task management solution for seamless organization and efficiency.

Home Page: http://done.edfloreshz.dev/

License: Mozilla Public License 2.0

Rust 77.79% CSS 0.61% Shell 0.70% Meson 3.19% Fluent 16.82% Nix 0.88%
todo gtk gtk4 gtk-rs relm4 linux hacktoberfest rust to-do to-do-app

done's Introduction

I’m trying to work full time on open source to create tools, content and applications that benefit the community at large 🦀

Here's some of the things I do:

  • 🔴 Live streams on Twitch
  • 🎥 Video tutorials on YouTube
  • ✍🏼 Articles about technology and programming on Devloop
  • 💻 Projects and apps on GitHub

You can reach me at

Read more on my website →.

done's People

Contributors

aaronerhardt avatar albanobattistella avatar categulario avatar daudix avatar edfloreshz avatar figsoda avatar gageberz avatar ingrownmink4 avatar inson1 avatar isabellabreder avatar kedap avatar knedl1k avatar rene-coty avatar soumyadghosh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

done's Issues

[feat] AppImage support

Would be nice to have this as "AppImages" release. AppImage is a community project & supports almost all linux distributions without the need for a centralized store.

Thanks🙏🏿

Quick creation buttons

Enable functionality for the quick creation buttons.

  • Add to my day
  • Set time
  • Set due date
  • More details

More details should include a section to add steps.

Image

Add WebDAV Support

Describe the feature you'd like
A clear and concise description of what you want to happen.

I'd like to see my Done tasks sync with my WebDAV server (like Nextcloud).

Additional context
Add any other context or screenshots about the feature request here.

This would allow me to sync my tasks to my Nextcloud which syncs with my iPhone's Reminders app.

Redesign for the task viewer

Description

Currently, Done has four buttons on the side of each task: rename, favorite, edit, and delete. I propose combining these actions into a single "Edit" button that activates the task editor in the split view. The rename and favorite features are already in this split view, so it makes sense to consolidate all editing functionality there. We can add the delete button at the bottom of the task editor in the split view (this would also prevent the user from hitting the delete button instead of the edit button when they want to edit a task).

To further enhance the usability of the app, it would be beneficial to display key task details on the left side of the edit button. For instance, we could show the due date and importance level. To make the interface even more user-friendly, we could have the due date display as "Today" or "Tomorrow" if applicable instead of the actual date (this wouldn't be necessary in the Today view accessible from the sidebar, for obvious reasons). By displaying important task information in this way, users can quickly check critical details without having to open the task editor, saving them time and effort.

Here a list to resume everything:

  • Edit Button: Combine rename, favorite, edit, and delete buttons into a single "Edit" button and move the delete button to the task editor.
  • Key Task Details: An area on the left side of the Edit button that displays critical task details such as due date and importance level (display closest due dates as "Today" or "Tomorrow" instead of the actual date for better user experience, except in the Today view).

Additional context

I love this project and it's progress, since the last update a few days ago, this is now my Todo list manager of choice. I'm still not a developer (I'm currently studying at college), but when I get enough experience with Rust and development in general, I will gladly contribute to this project. For now this is one of the things I can do.

"Add new task list" button crashes app

Describe the bug
Crashes when clicking "Add new task list" button twice.

To Reproduce
Steps to reproduce the behavior:

  1. Click "Add new task list" - Does nothing
  2. Click "Add new task list" again - Crashes

Expected behavior
The "Add new task list" button creates a new task list.

Desktop (please complete the following information):

  • OS: Fedora Silverblue 38
  • Version: 0.1.4

Additional context
Installed using Flatpak

[user@localhost ~]$ flatpak run dev.edfloreshz.Done 
2023-04-25T16:08:42.915569Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::sidebar::model::SidebarComponentModel" id="0x7ffe4a3591a8"}: relm4::component::r#async::builder: new
2023-04-25T16:08:42.915588Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::sidebar::model::SidebarComponentModel" id="0x7ffe4a3591a8"}: relm4::component::r#async::builder: enter
2023-04-25T16:08:42.915596Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::sidebar::model::SidebarComponentModel" id="0x7ffe4a3591a8"}: relm4::component::r#async::builder: exit
2023-04-25T16:08:42.915601Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::sidebar::model::SidebarComponentModel" id="0x7ffe4a3591a8"}: relm4::component::r#async::builder: close time.busy=8.73µs time.idle=26.0µs
2023-04-25T16:08:42.958253Z  INFO update_with_view{input=SelectSmartList(All) component="done::app::App" id="0x7ffe4a3590e0"}: relm4::component::r#async::builder: new
2023-04-25T16:08:42.958269Z  INFO update_with_view{input=SelectSmartList(All) component="done::app::App" id="0x7ffe4a3590e0"}: relm4::component::r#async::builder: enter
2023-04-25T16:08:42.958340Z  INFO update_with_view{input=SelectSmartList(All) component="done::app::App" id="0x7ffe4a3590e0"}: relm4::component::r#async::builder: exit
2023-04-25T16:08:42.958347Z  INFO update_with_view{input=SelectSmartList(All) component="done::app::App" id="0x7ffe4a3590e0"}: relm4::component::r#async::builder: close time.busy=71.1µs time.idle=25.1µs
2023-04-25T16:08:42.958471Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::content::model::ContentModel" id="0x7ffe4a358f50"}: relm4::component::r#async::builder: new
2023-04-25T16:08:42.958477Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::content::model::ContentModel" id="0x7ffe4a358f50"}: relm4::component::r#async::builder: enter
2023-04-25T16:08:42.958498Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::content::model::ContentModel" id="0x7ffe4a358f50"}: relm4::component::r#async::builder: exit
2023-04-25T16:08:42.958503Z  INFO update_with_view{input=SelectSmartList(All) component="done::widgets::content::model::ContentModel" id="0x7ffe4a358f50"}: relm4::component::r#async::builder: close time.busy=20.3µs time.idle=12.5µs
2023-04-25T16:08:42.958600Z  INFO update_with_view{input=SetSmartList(All) component="done::widgets::smart_lists::widget::SmartListContainerModel" id="0x7ffe4a359470"}: relm4::component::r#async::builder: new
2023-04-25T16:08:42.958607Z  INFO update_with_view{input=SetSmartList(All) component="done::widgets::smart_lists::widget::SmartListContainerModel" id="0x7ffe4a359470"}: relm4::component::r#async::builder: enter
2023-04-25T16:08:42.958613Z  INFO update_with_view{input=SetSmartList(All) component="done::widgets::smart_lists::widget::SmartListContainerModel" id="0x7ffe4a359470"}: relm4::component::r#async::builder: exit
2023-04-25T16:08:42.958617Z  INFO update_with_view{input=SetSmartList(All) component="done::widgets::smart_lists::widget::SmartListContainerModel" id="0x7ffe4a359470"}: relm4::component::r#async::builder: close time.busy=6.15µs time.idle=11.1µs
2023-04-25T16:08:45.097619Z  INFO update_with_view{input=AddTaskList("New list") component="done::widgets::lists::model::TaskListsModel" id="0x7ffe4a359150"}: relm4::component::r#async::builder: new
2023-04-25T16:08:45.097646Z  INFO update_with_view{input=AddTaskList("New list") component="done::widgets::lists::model::TaskListsModel" id="0x7ffe4a359150"}: relm4::component::r#async::builder: enter
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/widgets/lists/widget.rs:139:42
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2023-04-25T16:08:45.097850Z  INFO update_with_view{input=AddTaskList("New list") component="done::widgets::lists::model::TaskListsModel" id="0x7ffe4a359150"}: relm4::component::r#async::builder: exit
2023-04-25T16:08:45.097864Z  INFO update_with_view{input=AddTaskList("New list") component="done::widgets::lists::model::TaskListsModel" id="0x7ffe4a359150"}: relm4::component::r#async::builder: close time.busy=203µs time.idle=45.7µs
thread 'main' panicked at 'The runtime of the component was shutdown. Maybe you accidentally dropped a controller?: AddTaskList("New list")', /run/build/done/vendor/relm4/src/channel/component.rs:66:34

Reminders

We need a way to set the time of a reminder.

Any plans to make android version?

Is your feature request related to a problem? Please describe.
This FR is not related to any particular issue.

Describe the solution you'd like
Publishing built APKs in Releases.

Describe alternatives you've considered
None, i guess.

Implement install button

Implement functionality for the install button in the Preferences window.

It should download the binary and execute it once placed in ~/.local/share/done/bin

table lists already exists

Describe the bug

I installed the app a while ago and wanted to try it today.
Starting the app fails.

Same issue as #100 but I don't think it should have been closed.

To Reproduce

I don't know.

Expected behavior

The app should never fail to start.

Additional context

sonny@porygon ~ [1]> flatpak info dev.edfloreshz.Done

Done - To-do lists reimagined

          ID: dev.edfloreshz.Done
         Ref: app/dev.edfloreshz.Done/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 0.1.7
     License: MPL-2.0
      Origin: flathub
  Collection: org.flathub.Stable
Installation: user
   Installed: 5,4 MB
     Runtime: org.gnome.Platform/x86_64/43
         Sdk: org.gnome.Sdk/x86_64/43

      Commit: 33daf6f6299cb32aaf62f4e071ad0d5e9cbd5c4060857076f39d1e4344b02a42
      Parent: 7bbb588a1f4912d23e8bb3843de3cd494bea6654b43ae2b1a04de924179ecf56
     Subject: v0.1.7 (e536dbbf)
        Date: 2023-05-22 02:04:38 +0000

Looks like a migration issue

sonny@porygon ~ [1]> flatpak run dev.edfloreshz.Done
Error: Failed to run 2023-05-16-035137_create_lists with: table lists already exists

Use tasks provided by Evolution

Is your feature request related to a problem? Please describe.
Evolution provides tasks, calendars and contacts for applications. These can be both local and remote. I am unable to see, edit or delete tasks listed in Evolution in Done.

Describe the solution you'd like
I would like to see, edit and delete tasks as provided by Evolution in Done.

Describe alternatives you've considered
Done could use its own backend-services to speak with e.g. Nextcloud or tasks.org, but this seems redundant given Evolution already provides these services.

Additional context

Update a service

Add a button to update the services inside the preferences pane.

  • The update button should only appear only when the version of the locally installed plugins is different than the one in the server, this should be checked once the app starts and with another button to find updates.
  • The find updates button should download the plugin list from the server, compare it with the local one and mark the ones with updates, then update the UI.
  • Once the update button is clicked it should stop the service, start downloading the new version and replace it with the old one, then start the service again.

Weird positioning

Hello!

Just a small issue with some elements :) Happens with French translation.

image

Tasks do not actually delete

Steps to reproduce

  1. Create few tasks
  2. Click delete on these tasks, they will disapear
  3. Change view to some other list
  4. Change view back to previous and tasks are still present

Fix icon on About page

The app icon is not showing correctly. It only happens during development, once the app is installed through Flatpak, it finds the icon.

Image

Delete a service

Add a button to delete a service inside the preferences pane, it should be to the left of the enable switch.

Image

This will stop the service and then remove it from the installation path, update the preferences to mark the plugin as disabled and not installed, then ask the sidebar to remove the service.

[feat] Notifications

Describe the feature you'd like
When setting a reminder, the app should send notifications.

Additional context
Possible crate to use: notify-rs

Move database to local-plugin

Currently, the database needed for local-plugin is located in the app's config directory. We need to move this file to it's own directory, preferably ~/.local/share/local-plugin

Add steps to tasks

Add a list of sub-tasks inside the details pane of a task, it should have an add button and a list of sub-tasks.

How to build and run in development

I realized that the readme lacks instructions on how to compile/run the application from the repo. I tried simply running cargo run but the app failed at runtime with some file not found error.

The second time I tried cargo run it failed with:

Error: Failed with: no such table: __diesel_schema_migrations

Enable Smart Lists

Need to implement smart lists

  • All
  • Today
  • Starred
  • Next 7 Days

Need to figure out a way to group providers, lists and tasks.

Image

Cant open the app - Failed table lists already exists

Describe the bug
Just reinstalled the app and by running on a terminal i get the following error

/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=done --file-forwarding dev.edfloreshz.Done @@u %u @@
Error: Failed to run 2023-05-16-035137_create_lists with: table lists already exists

To Reproduce
Install an older version (I suppose)
Try to open the app
App never opens

Expected behavior
The app launched normally

Screenshots

Desktop (please complete the following information):

  • OS: Fedora 38
  • Browser Firefox
  • Version 0.1.7

[feat] Back up local tasks

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

[feat] Add sound on task completion.

The WIndows To-Do app has a really satisfying sound when you mark a task as completed. Because of that people are more inclined to complete a task because of the sweet sweet dopamine of that sound.

Currently the uncomfortable silence of this app just does not do it for me.

Update Turkish translation

We need to update the i18n files to prepare for the next release.

Required files:

Everything that is still in English requires translation, po files require no changes.

Suggested translator: @sabriunal

Offer option to reset settings

Offer an option in Preferences to reset the app, this will remove everything from the app's directory: ~/.local/share/done and recreate it.

Task details pane

Implement task details pane.

It should have a way to set every property supported by a task.

The pane should slide open from the right.

Add EteSync Support

Describe the feature you'd like
Add EteSync to the list of supported syncing services.

https://www.etesync.com/

Additional context
EteSync is an open-source "secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars, tasks and notes." There aren't any Linux desktop tasks apps that support EteSync apart from Evolution that I can find, and I think it's obvious why Evolution might not be everyone's first choice. EteSync's entire ethos makes a lot of sense for Linux users, but I think it's too new for any projects to have adopted it so far. It would be awesome to see Done implement this.

[fix] Notes field in task details should be a text area

Describe the feature you'd like
The notes field in the task details view should be a text area (a multiline text input). A note is often a long text so it is not very practical to be forced to scroll horizontally to see the whole note.

Additional context

Screenshot from 2023-06-09 20-58-44

Option to delete created lists

Describe the bug
You can't delete a list

To Reproduce
Steps to reproduce the behavior:

  1. Right Click on the list that you want to delete
  2. Nothing happens

Expected behavior
Should display a small menu that gives the option to delete and rewrite a list created by the user.

Desktop (please complete the following information):

  • OS: Manjaro GNOME

Nextcloud sync doesn't install

Log:

2023-04-19T18:05:36.699907Z ERROR update_with_view{input=InstallPlugin(DynamicIndex { inner: 3 }, Plugin { id: "nextcloud", name: "Nextcloud", description: "Nextcloud tasks are stored here.", icon: "", port: 4004, version: "0.1.0", download_url: "https://github.com/done-devs/nextcloud-plugin/releases/download/v0.1.0/nextcloud-plugin", process_name: "nextcloud-plugin", lists: [] }) component="done::widgets::preferences::model::PreferencesComponentModel" id="0x7ffd8d8f9e00"}: done::widgets::preferences::helpers: Failed to install plugin: This service is unavailable.

It tries to download from https://github.com/done-devs/nextcloud-plugin/releases/download/v0.1.0/nextcloud-plugin, but there are no releases on https://github.com/done-devs/nextcloud-plugin

Color scheme set delay

The app sets the color scheme way to late in the app lifecycle, we need to do it before it launches.

Error compiling `File storage/database.rs does not exist.`

Describe the bug
When I try to run: meson . _build --prefix=/usr I get the following error:

src/meson.build:11:0: ERROR: File storage/database.rs does not exist.

It also happens when I click build on Gnome Builder

I'm on main git hash: a521f76f729b6428cd6096165be6add9fd05d8b1

Double Titlebar buttons

Describe the bug
Done has double title bar buttons when titlebar is on the left...

To Reproduce
Steps to reproduce the behavior:

  1. Set window's titlebar buttons to the left
  2. Open Done

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot from 2023-01-04 13-31-25

Desktop (please complete the following information):

  • OS: Vanilla OS 22.10
  • Gnome: 43.1
  • X11

Add tags for tasks

Tags need to be added to tasks, they should appear in the list view of the content component and inside the details pane for tasks.

[feat] Add Todoist support

Describe the feature you'd like
Would be awesome to have support for todoist as a service! With list and task syncing

[feat] Allow reordering of tasks and subtasks

Describe the feature you'd like
It would be nice to have the option to reorder tasks and subtasks (or just the subtasks), which would make modifying step-by-step subtasks easier.

Additional context
Currently, the only way to change the order of tasks is to individually change them, which is tedious.

[feat] Support for iCalendar files and CalDAV

Is your feature request related to a problem? 😢 Please describe.
done doesn't have any standard method to save and open todo data. To sync them between my different devices (where done might not be usable) and multiple different management tools, we need one.

Describe the solution you'd like 🤔
Implementing the standard iCalendar files support, maybe optionally by enabling an option and specifying a directory to read from and write to, or specifying a CalDAV server to read from and write to.
Most other todo tools and services support iCalendar and also CalDAV.

CalDAV is the main syncing method for a lot of task managing tools including: Nextcloud Tasks, Apple's ICloud and Google Calender ...

This will almost support all task managing cloud services as wanted in the README.md To do list.

Additional context 📝
icalendar rust library might help implementing this.
Related issues: #11.

App becomes unresponsive after a while

Once the app starts, after a few clicks the app becomes unresponsive, the close button no longer works after this happens.

This is reportedly caused because of async work inside the task list factory.

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.