JacobEvelyn / friends

Spend time with the people you care about. Introvert-tested. Extrovert-approved.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reminder to contact a friend

210ethan opened this issue · comments

commented

My idea is simple: allow reminders about specific friends. For example, if I'm talking to John Doe and he has a big event on December 11, I can enter: "friends remind John Doe December 11 2020 big meeting with boss about his promotion". This could create a one-time cron job that pops up, then delete it afterwards? Not sure how it would work.

I normally enter things like this on Google Calendar, but using friends would make it much easier.

I will be donating in the coming months. This is a wonderful tool. Thanks creating and developing it.

Thanks for the suggestion, @ethanmorse! This is a really cool idea.

I'm a bit wary to have friends creating and deleting cron jobs because that can get into the complexities of how different users and OSes manage their crontab (though I'm not an expert here—please let me know if there's a standard interface for this sort of thing that makes it less brittle).

How would you feel about some sort of friends today command (very open to other names!) that gives you things like:

  • upcoming friend birthdays (#176)
  • upcoming friend reminders (i.e. your suggestion)
  • the output of friends suggest

And then the README could instruct folks to have cron run friends today every day (as I do with friends suggest). Does that seem like a good approach to you?

commented

I'm not sure of a standard interface.

friends today and the cron approach looks perfect. Excellent solution.

Great! I'm happy to work on that (likely this weekend) but don't want to step on your toes if you were hoping to take a shot at it (and I'd be happy to provide guidance). Either way works for me; just let me know!

commented

I think it'd be much better if you were to work on it. I have zero experience with Ruby and am not in a position with career nor life to work on it properly. I've donated $50 in the meantime.

Thanks so much for the donation, @ethanmorse. It really means a lot. Some family things came up this weekend that slowed this down a bit but I am working on it. I'll likely tackle #176 first as I think that will help clarify how the user experience might work.

As I think about this I have a few questions on my mind that I'd love your input on:

  1. If I do friends remind and add a reminder, should the reminder:
    1. auto-delete itself when it's overdue? Or only delete itself when the user says so—if so, what's the API for that?
    2. be able to be rescheduled? If so, what's the API for that?
    3. be able to automatically recur? If so, what's the API for that?
  2. Are birthdays really just a special case of reminders, or should they be separate (i.e. friends set birthday)?
commented

Great questions. Excuse my lack of programming knowledge—I'm really only familiar with basic Python and HTML.

1i. Auto-delete should be fine if it can be rescheduled.

1ii. Yes, it should be able to be rescheduled. Not sure the best way to do this. Could each friends remind be given a tag/id that can be referenced for rescheduling? For example, friends remind Call Jacob about new friends features on October 1 is the first reminder, so it would be given id r1 (or similar). If I wanted to reschedule our call, friends remind reschedule r1 October 3. Reminders can be referenced through a simple friends list reminders.

1iii. Yes, I like the recurrences. friends remind recur r1 7. The number after the reminder id is numbers of days until it repeats again. Alternatively, putting a single date like friends remind recur r1 October 2 will set that reminder for that date every year thereafter.

  1. I think birthdays can be a special case. See 1iii for example. I suppose if it's not too difficult separating them may be better and simpler (for the user, not necessarily for you :) ).

Thanks for the input, @ethanmorse! I want to stew on this a bit more—I'm a little wary of building something overly complex in the first version, but I'll see what I can come up with!