2014-11-15 99 views
0

我正在爲客戶端構建一個簡單的調度應用程序。它允許教師爲學生創建作業日曆。我希望能夠讓學生一次將所有作業添加到他們的日曆中。假設在4周內共有20項任務。該功能允許學生下載單個文件或遵循特定的提要,一次將所有20個作業添加到他們的日曆中。將多個數據庫記錄導出到iCal或gCal

在我的腦海裏,這將是一個單一的iCal文件,但我不知道iCal是如何工作的。或者,每個課程/course/basket-weaving-101_51/都會有一個可以遵循的RSS源/course/basket-weaving-101_51/cal/

有沒有人有這方面的經驗,或可以提供指導?

回答

1

是的,一個通過url接受參數的提要程序可以用來提供一個可訂閱的日曆提要,無論你希望的細節級別如何。我說可以訂閱,在學生一級.../student_id_or_name?feed = ics將爲學生提供最便捷的解決方案。他們可以訂閱一次,然後隨着時間的推移,他們註冊所有課程的所有課程作業可能會自動顯示,因爲他們的日曆應用會刷新Feed。

單個作業也可以提供一個'事件'的提要。但是這可能應該導入他們的主日曆,而不是訂閱!

注意訂閱與導入不同 - 您的幫助說明需要明確說明,因爲它取決於用戶對提要執行的操作。

導入(或添加到日曆)是一次性的,不會隨新事件/分配而更新。

訂閱作爲一個單獨的日曆我發現更好,因爲大多數日曆應用程序會讓您在需要時檢查和取消選中日曆。我有mykids時間表訂閱(和公衆假期等),但這是一個非常繁忙的觀點,所以我經常爲了一個更清晰的視圖解決它們 。

+0

這聽起來像我在找什麼。根據教師所做的更改更新日曆項目的能力很有吸引力。所以你認爲一個可訂閱的日曆可以讓學生「導入」多個課程?我在這裏使用通用術語中的導入。 – commadelimited

+0

當然,是的,您必須在選擇學生日曆Feed的事件時有正確的邏輯。大多數日曆應用程序將允許用戶訂閱,並定期刷新日曆。如果您導入事件,刷新不會發生 - 那麼就好像一個人創建了自己的副本。使用Google日曆或智能手機來證明自己的概念應該相當快。 – anmari

1

您需要熟悉不同的日曆客戶端(outlook,webmail)對ical的處理,才能決定如何最好地定位它們。一般來說,他們有兩種治療模式:「接受邀請」和「訂閱互聯網日曆」。

「接受邀請」的一大優勢是您的活動進入用戶的日曆,並生成提醒等等,就好像用戶創建了活動一樣。缺點是您需要通過電子郵件一次發送一個「事件」邀請,尤其是在Outlook中,他們可能需要在郵件出現在日曆中之前查看爲郵件。如果您發送了20個或更多的作業,這可能會讓收件人感到垃圾郵件。

「訂閱互聯網日曆」有點誤導性,因爲ical feed不是feed。你把「整個日曆」放在一個網站上,而客戶端則是網站。 Outlook和網絡郵件客戶端通常很樂意顯示這些日曆,但將這些事件「導入」用戶自己的日曆中有點笨拙。 Gmail和Webmail默認在同一個網格上顯示信息。 Outlook爲每個日曆顯示一個新的網格。

訂閱方案的修改稍微複雜一些。您可能需要爲受影響的學生重新生成整個日曆,而在邀請方案中,您只需發送一封包含已更改事件的郵件。即使如此,如果你有一個包含課程,學生和註冊的數據庫,你可以做一個不錯的小應用程序,爲每個學生生成一個ical,用他們的學號將其命名,並將其包含在日曆文件夾中。學生一次訂閱http://myuniversity.com/calendars/12345.ical,每個學期所有的作業都會自動進入他們的網絡日曆。

請注意訂閱鏈接。如果數以萬計的學生訂閱(極點)動態生成的日曆,那麼您將會進行大量不必要的處理,並且很可能會導致性能頭痛。您希望生成靜態文件,然後讓您的Web服務器與客戶端協商是否需要重新發送。

+0

這聽起來像你在第5段的建議是我想要的。 .ical文件可以根據請求動態生成,也可以在某些事件觸發後生成,然後在服務器上緩存。無論哪種方式,用戶得到他們想要的。我認爲這是我想要進入的方向。生成一個iCal文件很簡單嗎?這只是XML的權利?我只是遵守規範,我很好? – commadelimited

+0

只要訂閱鏈接,這是一個全新的應用程序,爲客戶打造大學。縮放是一個問題,至少在幾個月內我們不會有少數問題。 – commadelimited

+0

您可以緩存學生ics飼料(它們獨特的網址),只有在日曆應用「輪詢」ics飼料時發生變化才能更新以避免額外的不必要處理。我同意發送邀請感覺像垃圾郵件,並不是每個人都知道如何「接受」邀請 - 即使使用谷歌日曆通過Gmail將邀請發送到其他谷歌郵件帳戶,它也不會一直工作順利。 – anmari

相關問題