20 Jun 2009

Serwis do organizowania spotkań

Gdy zachodzi potrzeba organizacji seminarium, zebrania lub narady. Trzeba wszystkich uczestników o tym powiadomić, a później śledzić ich odpowiedzi - czy aby przyjdą czy nie.

Wymagania funkcjonalne

Pomysł jest prosty - stworzony serwis powinien pozwalać na:
  • Definiowanie zebrań/seminariów
  • Możliwość wysłania zaproszeń na spotkanie mailem
  • Śledzenie odpowiedzi i potwierdzeń przybycia
  • Każde wydarzenie powinno być widoczne na mapce wraz z dokładnym adresem i terminem oraz krótkim opisem
  • Łatwe definiowane listy osób (automatyczne rozpoznawanie emaila, imienia, itp.) tak, żeby wejście "Alicja Paderewska ala@emptyhost.pl" było poprawnie rozpoznane
  • Możliwość importu danych osób z plików VCF (VCard) i CSV (np. z Gmaila) lub innych kont pocztowych
  • Jeżeli podczas spotkania planowany jest poczęstunek, to poszczególne osoby powinny mieć możliwość zapisywania się na określone grupy dań np. pizze wegetariańską.
  • System powinien mieć możliwość definiowania eventów cyklicznych
  • System powinien mieć możliwość definiowania grup do których będą później rozsyłane spersonalizowane wiadomości o jakimś wydarzeniu - inaczej się zaprasza na to samo spotkanie kolegów z liceum, a inaczej nauczycieli z tejże szkoły
  • Powinien zostać stworzony zestaw znaczników np $(FIRST_NAME) - zamienianych na odpowiednie wartości pozwalając spersonalizować wiadomości
    Cześć Tomek!
     
    Chciałbym Cię zaprosić na ... całe wydarzenie odbędzie się 4 lipca w ...
    Na miejscu przewidywany jest poczęstunek, jeśli jesteś chętny na udział w tym spotkaniu
    proszę kliknij poniższy link
    
    http://imprezowywhatever.pl/invite/confirm/rdq2e1
    
    pozdrawiam,
    Tomek.
  • Odpowiedź na takie zaproszenie powinna być następująca:
    • Tak - będę,
    • Nie będzie mnie,
    • Przypomnij mi później o tym na X dni przed wydarzeniem (domyślnie 3 dni)
  • Jeśli zaproszenie było zaakceptowane na więcej niż 5 dni przed jego terminem, powinien być wysyłany mailing przypominający o wydarzeniu np 2 dni przed
  • Możliwość ściągnięcia wydarzenia w formacie iCal + eksport do Remember The Milk + eksport do Kalendarza Google
  • Możliwość brandingu serwisu
  • Każdy z listów powinien mieć stopkę 'Nie chce być więcej powiadamiany o wydarzeniach organizowanych przez tego użytkownika', przy czym taki user dostaje info, że osoba już nie jest zainteresowana tego typu eventami.

Wymagania niefunkcjonalne

  • Serwis powinien być napisany możliwie jak najprościej
  • Całością powinien mieć możliwość zarządzania pojedynczy administrator - brak innych użytkowników w systemie
  • Dobrze by było gdyby aplikacja nie miała potrzeby korzystania z bazy danych SQL - jeżeli już jest to wymagane niech to będzie baza plikowa np SQLite
  • Jeżeli serwis nie wymaga bazy wszystkie informacje powinny być przechowywane w plikach XML
  • Możliwość definiowania zewnętrznych kont pocztowych do wysyłania informacji o wydarzeniach (buzz words: SSL, LOGIN, POP before SMTP)
  • Wysyłanie mailingu powinno być realizowane asynchronicznie - bo to jednak trochę może potrwać ...
  • Prosta instalacja, patrz Wordpress - wrzucenie plików po ftp oraz edycja jednego pliku konfiguracyjnego - brak kreatorów! Koniecznie powinien być dołączony przykładowy plik konfiguracyjny, albo dwa.

Narzędzia i technologie jakich ja bym użył

  • PHP
  • XHTML
  • CSS
  • XML
  • Ewentualnie mod_rewrite - ale lepiej nie ;)
  • Jeżeli baza danych to SQLite3 oraz PDO w PHP

Swoją drogą tak patrząc na te wymagania, uważam że przy odpowiednim zacięciu i chęciach możliwe było by napisanie tego projektu w 4 dni (możliwie, że zbyt optymistycznie jestem nastawiony). Niby coś takiego jest napisane, ale Maciej Swoboda twierdzi, że całość jest niedopracowana i trochę jest to niezgodne z moimi pomysłami ;). Niemniej jednak, na pewno przy tworzeniu takiego systemu warto zainteresować się meeterem.

ps: Jakby tu wpadła ekipa meetera - to dajcie znać jak wypuścicie projekt jako OpenSource (fajna by była licencja BSD) ;).

5 comments:

  1. mhm cool. Ale. Zawsze mam jakieś ale ;) - czym to sie różni od outlooka lub nawet samego google kalendarza ? przecież każdy event może mieć miejsce i dodatkowo rozsyłać zaproszenia. Oprócz tego outlook (nie wiem jak gcal) ma możliwość wzięcie pod uwagę zasobów takich właśnie jak sala konferencyjna itd.

    ReplyDelete
  2. nie mam Outlooka pod Linuxem (może to zmienię) :| - hmm, tak na moje rozumienie Outlook ma jeszcze problem ze śledzeniem (tak mi się zdaje) ile osób tak naprawdę wpadnie nam "na imprezę" (a to zaczyna stanowić problem ile jedzenia zamówić) - jako tako Outlooka nie mam - tylko jakiś "Outlook Web Access", a tam to raczej ograniczone opcje są ;) - no i pewnie żeby skorzystać z tych opcji w pełnym Outlooku wszyscy których zapraszasz muszą go mieć.

    W ogóle jak masz na podorędziu taki program to wyślij mi zaproszenie na fikcyjny meeting - chętnie zobaczę jak to wygląda :).

    ReplyDelete
  3. jasne - mam :) w pracy, więc po weekendzie no problem. Działa to całkiem dobrze. Ale jak chcesz zobaczyć więcej ficzerów przez OWA, musisz użyć tej paskudnej przeglądarki obsługującej ActiveX ;)

    ReplyDelete
  4. Tak sobie myśle, że jakby ktoś chciał zrobić taki serwis to powinien się poważnie zastanowić nad tym, bo istnieje już Oiola: http://oiola.com/ - spełnia niemal wszystkie wymagania :).

    ReplyDelete
  5. [; no i jest kolejny spełniający chyba te wymagania: http://www.timebridge.com/

    ReplyDelete