hay-kot / homebox

Homebox is the inventory and organization system built for the Home User
https://hay-kot.github.io/homebox/
GNU Affero General Public License v3.0
2.63k stars 189 forks source link

Recurring maintenance schedule/reminders #516

Open dima-ser opened 1 year ago

dima-ser commented 1 year ago

What is the problem you are trying to solve with this feature?

We can schedule maintenance and it's great but we have to do it one at a time. I'd love to be able to set up a maintenance schedule (e.g., every 6 months) and have a report showing my upcoming maintenance for my items.

What is the solution you are proposing?

When adding a maintenance entry, provide a "recurring" option and ability to specify recurrence (every X days/months/years)

What alternatives have you considered?

External calendar, but I'd love to have everything in Homebox.

Additional context

No response

Contributions

agrrajag commented 1 year ago

On a similar note for this...

We have sections on assets like Warranty, Purchase, Sell. It may be good to add a section for Maintenance which would include:

A section could also be added under attachments for Maintenance-related files

From there, future development could include this data in the automatic recurring scheduling of maintenance.

lennon101 commented 1 year ago

+1 for this feature. It was pretty much the first issue I ran into

jjmoffitt commented 10 months ago

In addition, it would be great if there was an ical integration or something so I can add it to my shared calendars.

The goal is that I can have my maintenance schedules in homebox, I can use either my calendar or a "upcoming maintenance" page that shows me a list of all scheduled things coming up, then track history of completed on the item page exactly like it is now. Unfortunately, notifications on the due date are useful for some things, but not super useful for something like AC/Heat maintenance where I need to call a vendor to come out.

Still loving this as is. Thanks!

erahhal commented 8 months ago

Also the very first issue I ran into within minutes of installation. In fact it's my core use case. Package looks great so far, thanks for the nice work.

rasmusson commented 7 months ago

Agree with @erahhal, this is my main usecase for something like homebox

rasmusson commented 7 months ago

Hi @hay-kot I have some hope that I could do some work on this. I have worked as a developer in my past but never used go or vue, but Im guessing I'll get into it. Should we have discussions on implementation here? I have not contributed to github projects before

th3lon3w0lf commented 7 months ago

+1 for this feature. This tool is awesome and so far, the only missing piece to me is this.

hay-kot commented 7 months ago

@rasmusson

I haven't looked much into implementing this. Here's some general thoughts I have

  1. We can't/shouldn't populate all the items in the database, especially if the interval is infinite. We'd likely need to compute evens that happen in the future either on some kind of interval or when the previous task is completed.
  2. It might make sense to store this as a complexity different entity and treat the current elements as "notes" on the maintenance. In reality we can treat these more like calendar events than a maintenance event if that makes sense.
  3. I'm not sure what the UI should look like, If anyone in this thread has examples of this that they like, please provide some screenshots.
erahhal commented 7 months ago

Yeah, you wouldn't want to enumerate the dates and store them, as it makes editing difficult. You could follow how other calendars do it, by using the iCal standard. There appear to be a couple libraries in golang that assist with this:

https://github.com/arran4/golang-ical

https://github.com/teambition/rrule-go

And here's a good stackoverflow post that describes how to solve this problem in general:

https://stackoverflow.com/questions/85699/whats-the-best-way-to-model-recurring-events-in-a-calendar-application

erahhal commented 7 months ago

Regarding the UI, it doesn't need to be that complicated. I can imagine it like this:

giogua commented 3 months ago

+1!