Skip to content
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

[FEATURE REQUEST] - Allow Ryot to track anything #73

Open
IgnisDa opened this issue May 27, 2023 · 20 comments
Open

[FEATURE REQUEST] - Allow Ryot to track anything #73

IgnisDa opened this issue May 27, 2023 · 20 comments
Labels
feedback-required Requires feedback from the community to decide the correct course of action investigate This will require some effort to find ways to do this pro This would be part of the pro offering

Comments

@IgnisDa
Copy link
Owner

IgnisDa commented May 27, 2023

The idea was from Reddit.

Ryot be extended to track other types of items. For example:

I (and many others) need a whisky tracker xD (desired/tasted/owned/planned bottles etc). Some people would want a cigar tracker.
Ideally, there should be a YAML config that one could use to create a tracker for items they need; and a common shared database of such "userconfigs".
Even better, one could provide external APIs in YAMLs for auto-fill.


I do not plan to work on this anytime soon since it would be a big undertaking, and I would like to finish the fitness tracking. But I am creating this issue to gather feedback.

@IgnisDa IgnisDa pinned this issue May 27, 2023
@IgnisDa IgnisDa added the feedback-required Requires feedback from the community to decide the correct course of action label May 27, 2023
@spiral6
Copy link

spiral6 commented May 27, 2023

This would be a great idea. I would find this one very useful for my uses.

@IgnisDa IgnisDa unpinned this issue Jun 7, 2023
@IgnisDa IgnisDa pinned this issue Jun 7, 2023
@filcuk
Copy link

filcuk commented Aug 5, 2023

This would be great. Configurable fields (image/gallery, url, description, tags, coordinates) would be good, or just enough generic ones - is that what you meant by user configs?

One of the things I've been wanting to track for a long time is notable places visited.
Add a galery, map link, tags (has bench, good for picnic), review (3/5 too overgrown), etc.

Tracking research papers, publications or website articles would be nice too.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Aug 5, 2023

I plan to have a google forms like builder that will allow one to create tables, add image/url/text fields and so on.

@Batman313v
Copy link

Original post at #4

I would love to see some type of food/ snack/ grocery tracker with a "ratings" system so I could easily look of something up for when I don't remember if my girlfriend and/ or I like that flavor/ meal/ option. Would be nice

Suggestion

Food / Snack / Meal

These could either be combined or placed under something like

  • Food

    • Snack
    • Meal

Options

Some quick ideas of what it could include

  • Ratings

    • Add ratings with Stars and details to easily see what was thought after the last time it was eaten
  • Info

    • Add information for a "food item" like nutrition info, Calories (Maybe be implemented with fitness?)

    • Recipe

      • Steps in a check list
      • Ingredients
    • Upload Photos?

Story

I'm not big into food so there are most definitly things that could be added to this that I havn't thought of but I thought of the idea while standing in the store and after realizing they were out of my favorite flavor of an item I couldn't remeber which of the other options I didn't like as to avoid accidentally getting that one. So when I got home I jumped on reddit in search of a solution and came across ryot. While not a solution for the food problem I loved the Idea of an all in one tracker so here I am adding a suggestion to the list 😁

To add on to this I decided to come up with an example tracker.yaml for this use case. This is by no means what the final will probably look like as this example will more than likely be too specific for general use.

name: Snack Tracker
navigation:
  name: Food
  icon: mdi:food 						# This is for refrencing the 'food' icon in the Material Design Icons library similar to HASS
  - tab:
    name: Snacks
    config: snacks.yaml

snacks.yaml

# I'm assuming itemConfig wouldnt need to have everything defined for example 
# I would assume most if not all tracker items would have things like: 
# Title, Description, Image, Sub heading (Movies have the category - runtime - year) 
itemConfig:
# These would be used to create the tabs inside the item view and In this case I would assume there are 
# both generics like: input, markdown, api, etc. As well as more specific ones like review that would have 
# the logic pre-programed into it so it matches the rest of ryot.
  - overview								# Markdown?
  - review									# Implement the same review system as the other trackers for consistency
  - input									# A generic Input thats tab gets named Comment
    name: Comment
# This is a very rough idea in my head. It would be nice to someone configure it so that the 
# JSON data could be displayed maybe using HTML, or Markdown or something.
  - api
    endpoint: https://api.example.com/foodstuff/snack?id=generic_chips

This would obviously need some type of add button to store custom items in a database of some type. Maybe Mongo? Or some other NOSQL DB?

@IgnisDa
Copy link
Owner Author

IgnisDa commented Aug 26, 2023

This looks pretty nice.

How would API integration work here?

This would obviously need some type of add button to store custom items in a database of some type. Maybe Mongo? Or some other NOSQL DB?

I think we can leverage JSON fields. No need to introduce an additional component. I want to keep Ryot as lean as possible.

@Batman313v
Copy link

How would API integration work here?

This is where things get a little fuzzy in my head. I'm trying to thing of some system that would allow users to basically display text from the respons JSON. For example if the response for the example snack api was

{
  "snack": {
    "name": "Chips"
    "calories": 125
    "sugar": "2mg"
    "flavor": "BBQ"
  }
}

Then the user could setup some type of config like:

- api
  endpoint: https://api.example.com/foodstuff/snack?id=generic_chips
  display:
    - "Flavor: {snack['flavor']}"
    - "Calories: {snack['calories']}"

I am not sure of the best way to use the variables inside the YAML but as an example I used { } inside the string.
I don't think it needs to be super complicated. For Example it could look like:


Flavor: BBQ

Calories: 125




This would obviously need some type of add button to store custom items in a database of some type. Maybe Mongo? Or some other NOSQL DB?

I think we can leverage JSON fields. No need to introduce an additional component. I want to keep Ryot as lean as possible.

That would definitely be better. Thats sorta on the same line I was thinking with Mongo as it uses BSON (Basically JSON) for storage.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Aug 26, 2023

Huh interesting. I like the idea but I think it would be pretty difficult to implement and get right.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Aug 26, 2023

From @mmarquezs

Basically it would be cool if there was a way to like track anything, like a generic tracker. So you define what you track, of course there wouldn't be fancy posters if is media related, or whatever but it would be super flexible.
Like if I want to track Idk all the bars I went to or whatever, like a free form of kinds for tracking stuff you have done, watched, visited, etc.
main idea is that if the app doesn't support something, well a suggestion can be done as this but meanwhile anybody could track anything without waiting for the suggestion to be implemented, yeah it migh not sync automatically or have the nices look, or require some manual editing but it would work. And if the API allows it maybe can be automated.

@fudnet
Copy link

fudnet commented Aug 26, 2023

Agreed, would love to see the ability to track almost anything. Make hierarchical methods of tracking items. For example, magazines which have years/volumes, issues, etc. Have user definable fields/tags that allow for things like adding subjects, whether that issue is in the collection or not, has it been read, etc. Also, the ability to attach media to each item such as a photo or cover image.

@Ardakilic
Copy link

How about travels / visits? People could mark cities of a country as visited, or even specific locations, such as district, or pinpoint locations etc. Multiple visits could also be tracked.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Nov 19, 2023

Once this is implemented, you will be able to make custom schemas for tracking anything. So yeah travel locations is an excellent idea. I plan to create a separate repo for commonly used schemas.

@TWART016
Copy link

TWART016 commented Jan 1, 2024

How would API integration work here?

This is where things get a little fuzzy in my head. I'm trying to thing of some system that would allow users to basically display text from the respons JSON. For example if the response for the example snack api was

{
  "snack": {
    "name": "Chips"
    "calories": 125
    "sugar": "2mg"
    "flavor": "BBQ"
  }
}

Then the user could setup some type of config like:

- api
  endpoint: https://api.example.com/foodstuff/snack?id=generic_chips
  display:
    - "Flavor: {snack['flavor']}"
    - "Calories: {snack['calories']}"

I am not sure of the best way to use the variables inside the YAML but as an example I used { } inside the string. I don't think it needs to be super complicated. For Example it could look like:

Flavor: BBQ

Calories: 125

This would obviously need some type of add button to store custom items in a database of some type. Maybe Mongo? Or some other NOSQL DB?

I think we can leverage JSON fields. No need to introduce an additional component. I want to keep Ryot as lean as possible.

That would definitely be better. Thats sorta on the same line I was thinking with Mongo as it uses BSON (Basically JSON) for storage.

Maybe look at Tandoor Recipe.
https://github.com/TandoorRecipes/recipes

There is a project about importing foods and there values
https://github.com/TandoorRecipes/open-tandoor-data

@dpkonofa
Copy link

I would also like to see this but even just for the things that RYOT can already track. For example, I am keeping track of movies through RYOT but want to be able to tag movies with custom tags or info - such as whether I own it digitally or physically on disc. If I own it physically on disc, I want to be able to tag or tell RYOT somewhere whether the disc is a steelbook, a normal disc, a 4k disc, a criterion version, etc. From what I can see in the demo instance, I can create collections for each of these but then there's no way to see what collections a movie is part of in the movie's details. Being able to extend or modify the item templates is really what I'm looking for and that seems like it would also be extensible to being able to track anything.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Jan 16, 2024

such as whether I own it digitally or physically on disc

There is a "Mark as owned" button under "More actions" in the actions tab.

Not sure why the collections are not showing up in the media details. I think you should open another issue for that.

@dpkonofa
Copy link

such as whether I own it digitally or physically on disc

There is a "Mark as owned" button under "More actions" in the actions tab.

I think you misunderstood me. I want to keep track of the distinction of whether I own it physically or digitally, not just whether I own it. And the collections thing was a workaround that I was using to not being able to add tags based on that ownership. As I mentioned, I would like to be able to specify what edition or variant a movie is as those would be different depending on whether it’s a physical or digital release. Right now, RYOT has no way to do that that I can see.

@IgnisDa
Copy link
Owner Author

IgnisDa commented Jan 16, 2024

I agree. Can you open a separate issue for this so that we can discuss this better?

@IgnisDa IgnisDa unpinned this issue Feb 18, 2024
@IgnisDa IgnisDa added the pro This would be part of the pro offering label Apr 17, 2024
@lapius
Copy link

lapius commented May 7, 2024

Is this moving somewhere?

@IgnisDa
Copy link
Owner Author

IgnisDa commented May 7, 2024

It was moved to a discussion.

@IgnisDa IgnisDa changed the title Allow Ryot to track anything [FEATURE REQUEST] - Allow Ryot to track anything May 11, 2024
@IgnisDa
Copy link
Owner Author

IgnisDa commented Jul 16, 2024

From a Discord conversation:

i would say if you are planning on tracking everything with Ryot, then tracking my kids time would also be nice to have.. like time spent on youtube, tiktok, playing games, been able to see all that would be nice

@IgnisDa IgnisDa added the investigate This will require some effort to find ways to do this label Aug 28, 2024
@IgnisDa IgnisDa pinned this issue Aug 28, 2024
@IgnisDa IgnisDa unpinned this issue Oct 19, 2024
@IgnisDa IgnisDa pinned this issue Oct 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback-required Requires feedback from the community to decide the correct course of action investigate This will require some effort to find ways to do this pro This would be part of the pro offering
Projects
None yet
Development

No branches or pull requests

10 participants