Meteor-Mentor / meteorU

5 stars 3 forks source link

calendar #8

Open sakulstra opened 8 years ago

sakulstra commented 8 years ago

I think it would be good to have built in calendar where we list the mentor hangout(https://github.com/Meteor-Mentor/meteor_mentor/issues/1) but perhaps other things like coding meetups in the future.

Therefore i present two options:

  1. using google calendar via api
  2. the more complex/fun way

1) We could have a public calendar and simply add the events to it by making use of some api calls (my be interesting for some users and could be one of the tutorials) 2) Here we can use @serkandurusoy's beloved date manipulations for recurring events and stuff like that (could become an awesome package maintained by meteor-mentor).

Complex events like "every 6 days but not on .. and .. till ..", or "ever week until infinity" will be the most problematic thing in the system. We could do this with two approaches with there very own dis-/advantages. I don't know which is the "better one" so i'll present both and we can discuss them in the next session.

Generating on client

Having a somehow complex event-datastructure on the server which allows as keeping syncing efforts to a minimum and generating the events on the client in a local database, perhaps even using grounddb - this will be a complex task with a lot of date calculation on every client?

Generating on server

We unfold recurring events and create them as static events on the server. Wont allow us to have events to "infinity".

Mixed

Having a complex database on the server, but also a flatter one, so the server could generate the events when requested, but only publishes the flat database.

I actually have a running calendar project with the first approach, but now when thinking about it the mixed one seems more intelligent as the server could pre generate the data and not every client has to do it on it's own. We definitely have to discuss that.

[edit] we should additionally check out the google apis to see if we can use the second approach with "import into calendar" feature.

serkandurusoy commented 8 years ago

I think we should have a built in calendar but we can also have google calendar integration so that our users can import the calendar entries into their google calendars!

Regarding the featureset of the calendar, I think it can be kept fairly simple since we won't probably have recurring, infinite, all-day etc events. Our "scheduling" feature would then be enough exercise for date/time calculations.

As for offline, I think that should be considered a complete separate site-wide feature of its own