NoiseCal

From Noisebridge
Jump to navigation Jump to search

This page describes the specifications and implementation of NoiseCal, a calendaring solution that adheres to Noisebridge's practices and principles.

Folks

Specifications

Requirements

  • Publicly editable
  • Unregistered editable
  • Revert edits
  • Publicly linkable
  • Has the usual variety of calendar layouts (day, week, month, list)
  • Events have a time, duration, description, recurrence, location
  • Exports to iCalendar (RFC 5545)
  • Widget on the wiki homepage
  • Free, as in free speech and free beer
  • Hosted locally

Bonus points

  • Can use wiki logins or some other kind of identification in addition to anonymous
  • Events have a field for which room/area of NB
  • Calendars show which room/area of NB
  • open source or some other moral superiority
  • easy publishing to email (for nb-announce, for instance)
  • misc bells and whistles
  • RSS feed
  • Some kind of reputation system, likely usernames. Edits can be associated with usernames.
  • Tagging/Categorizing of events are useful so as to group similar events. There's a lot going on at NB! IE: "5MoF", "Conlang", "Not Happening on a Regular Basis", "Reoccuring"

Überbonus Point

  • Views based on tags. IE, view all room reservations for the next day/week/month on a calendar with the tag "Dark Room" or "Project Euler Group", or the word "foo" mentioned anywhere in the entry (this last one

might make searches expensive).

  • Printable tag views. IE, I can print out all the room reservations for "Dark Room" this week and put it on the door (which will instantly be made out of date when the first edit comes along, phoey). This feature also lets conferences at NB self-schedule and you have an instantly printable/viewable calendar.

Implementation

We are still at the brainstorming and exploring phase.

There is some code on github but it's expected to be in great flux.

* thatha's repo
* radii's repo

Meeting Notes

2010-01-23 15:00

  • We will base our work on the Calendar MediaWiki extension by Kenyu73.
  • Replace PrefixSearch with a category search. (Fetch all events from Category:Event.)
  • Parsing
    • We shall use a human-readable wiki-ish format.
      • Every section titled Event Details shall contain details of a NoiseCal event. The section shall contain a list of key-value pairs of the form: * Key: Value.
      • Keys and values are case-insensitive.
      • Valid keys, for now, are: "Description" (required), "When" (required), "Where", "Recurring", "Organizer". Values of "When" must be valid ISO8601 timestamps.
    • We parse out the event on save, and add categories as a layman's index. (Does this make sense?)
    • Add parsing for time.
    • Add recurring events. (this needs more thought)
    • Validate stuff (on ArticleSave). If you clicked save, but your NoiseCal-related edits do not validate, you will get a preview with an error message--as specific as possible. We could render events "in the wild" via ViewHook?.
    • Let event description be wherever in the article (currently the first line of an event article is the description).
  • Multiple events per wikipage.
  • iCalendar (RFC 5545)
    • iCalendar export
    • Use ObjectCache for caching
    • How does iCalendar deal with past events? Do iCalendar feeds always export the entire history of a calendar?
    • We should have a way to restrict an iCalendar feed to the past n months and to the past m months in the future. Defaults should be n=1 and m=3.