Concept for events in Diaspora
I am doing my master thesis at TU Dresden right now. The subject is federated events in distributed social networks, speaking: implementing events into Diaspora. There have been many requests for that feature and I am desperately willing to contribute to the project myself.
This thread should be about discussing my concept, so that it can later on actually be included into Diaspora.
I have read this and will try to keep in mind the advices in there.
My concept is different in a major issue, though: I am not planning to implement events like a poll, as @jaywink stated, but as a separate object not related to a post. This will have several advantages, first of all an event may be owned by multiple users. This is crucial because there might be multiple real-life hosts as well.
There should be another box in the sidebar called "My events", which has a small monthly calendar view for a users upcoming events and a "create new" button.
Creating an event will be in a separate view, that will be reachable by default REST-style route
/events/new. The interface should be not much different than the one for a post, except that we need more input fields. An event will have a name, a location, a datetime object (later to be extendable by "all day", "end", "multiple days", etc) and a description. Images may be added to an event just like to a post.
The description may hold tags, so that the event can be categorized and filtered into topics.
In the stream an event will be shown just like a regular post, just having some more key data templated next to it in a certain way.
Participation to an event should be done analogous to liking a post. In fact, this may even be the same code, just that it would not say "like" but "attending" in the frontend. From my experiences on other sites, most people who do not plan to attend an event, just ignore it, so there is no need for a "not attending" feature for now. This is to be discussed, though.
Analogous, inviting people may work the same way as resharing a post plus mentioning users that are to be invited. This is viewable within the chosen aspect.
As stated, multiple users may host an event, so there must be some way to add more users to it. I am not sure yet, how this should be done and would ask you for your thoughts.
Finally, an event should be available as iCalendar format, so that a user can subscribe to the Diaspora events he will be attending using his favorite calendar tool.
Those are my first conceptual thinkings about Diaspora events. Please feel free to comment, advise, criticize and tear it apart. As @jaywink stated, its best to come up with plans at an early stage to have it done right in the long run.